目次
AWSで低コストにサイトを作るガイド
周辺資料: 学習インデックス · AWSサービス選定ガイド · AWS Well-Architected チェックリスト
概要
初期PVが少ないサイトをAWSで作るときに、運用費をできるだけゼロに近づけるための判断材料をまとめた資料。
この資料では、静的サイト と 動的サイト を分けて、低コスト構成・固定費が出やすい構成・おすすめ案を整理する。
料金情報とサービス仕様の確認日: 2026-04-27
AWSの料金体系は更新されるため、最終見積もり前に公式Pricingページで再確認すること。
結論
最初におすすめの判断
| 目的 | おすすめ構成 | 理由 |
|---|---|---|
| 会社サイト、LP、ポートフォリオ、ブログなど | 静的サイト: Amplify Hosting または S3 + CloudFront | サーバ常駐費がなく、低PV時の固定費を抑えやすい |
| フォーム送信、会員機能、管理画面、API連携が必要 | 動的サイト: Amplify Hosting or S3/CloudFront + API Gateway + Lambda + DynamoDB | アクセスが少ない間は従量課金中心で済む |
| とにかく月額固定費を避けたい | EC2 / ECS常時起動 / RDS常時起動は避ける | 低PVでもサーバ料金が発生しやすい |
ひとことで言うと
- 静的サイトならAWSでかなり安くできる
- 動的サイトでもサーバーレスなら低PV時はかなり安く始めやすい
- 完全な0円はドメイン代やDNS代で崩れやすい
提案サマリ
経営・事業側に伝えるなら
| 方式 | 初期コスト感 | 月額固定費 | 開発速度 | 将来拡張 |
|---|---|---|---|---|
| 静的サイト | 最小 | 最小 | 速い | 中 |
| 動的サイト(サーバーレス) | 低い | かなり低い | 速い | 高い |
| EC2/RDS中心 | 高い | 高くなりやすい | 中 | 高い |
提案メッセージ
- まずは 固定費が出にくい構成 で公開する
- ユーザー数が増えてから、必要な機能にだけ課金対象を足す
- 最初からサーバ常駐型にすると、PVが少なくてもコストが先に立ちやすい
1. 静的サイト
向いているケース
- コーポレートサイト
- サービス紹介ページ
- LP
- 更新頻度が低いブログ
- 問い合わせフォームを外部サービスで済ませるサイト
おすすめ構成
案A: Amplify Hosting
ユーザー
↓
Amplify Hosting
└─ CDN(CloudFront)
flowchart LR
U["ユーザー"] --> A["AWS Amplify Hosting"]
A --> C["CloudFront CDN"]
C --> S["静的ファイル(HTML/CSS/JS/画像)"]
向いている人
- いちばん簡単に公開したい
- HTTPS、CDN、デプロイをまとめて扱いたい
- Git連携で更新したい
メリット
- AWS公式でも、S3上の静的サイトに対して Amplify Hosting を推奨
- CloudFrontベースのCDNが含まれる
- HTTPSを使いやすい
- カスタムドメイン接続がしやすい
- 少量トラフィックなら無料枠や低額運用に寄せやすい
注意
- ビルド課金、CDN保管、転送量課金がある
- 無料枠の内容は時期によって変わる
- WAFを付けると固定費が増えやすい
案B: S3 + CloudFront
ユーザー
↓
CloudFront
↓
S3
flowchart LR
U["ユーザー"] --> C["CloudFront"]
C --> OAC["OAC"]
OAC --> S3["S3 Bucket"]
向いている人
- できるだけ素朴な構成にしたい
- 仕組みを理解しながら組みたい
- Amplifyより細かく制御したい
メリット
- S3は最低利用料金がなく、保存量とリクエスト中心の課金
- CloudFrontで高速配信しやすい
- 低PVならかなり安く抑えやすい
注意
- AWS公式のS3ドキュメントでは、静的ホスティング用途に Amplify Hosting を推奨している
- CloudFrontでS3を安全に公開するなら、S3 website endpoint ではなく S3 bucket origin + OAC を使う構成が扱いやすい
- S3 website endpoint単体はHTTPSまわりや公開設定で不利になりやすい
OACとは
OAC は Origin Access Control の略で、CloudFront から S3 オリジンへ安全にアクセスするための仕組み。
何のために使うか
- S3 バケットをパブリック公開しないため
- CloudFront 経由のアクセスだけを許可するため
- 直接S3 URLを叩かれる構成を避けるため
この資料の構成での意味
ユーザー
↓
CloudFront
↓ 署名付きアクセス
S3(非公開)
この形にしておくと、ユーザーはCloudFront経由でサイトを閲覧し、S3は非公開のまま保てる。
OAIとの違い
OAIは従来方式OACはより新しい方式- 新しく構成するなら、基本的には
OAC前提で考えるとよい
静的サイトでの料金感
前提
- 以下は 2026-04-27 時点 で確認したAWS公式Pricingをベースにした概算
- 税別。日本の請求先では消費税の影響がありうる
- 無料条件は 新規AWSアカウントかどうか と 選ぶ料金プラン で変わる
公式上の主な料金メモ
- Amplify Hosting は確認時点で、新規AWS顧客向け無料枠として
ビルド 1,000分/月、CDN保管 5GB/月、データ転送 15GB/月などが案内されている - Route 53 の Hosted Zone は確認時点で 最初の25ゾーンまで 1ゾーンあたり月額 0.50 USD
- Route 53 では、CloudFront など特定AWSサービスに向けた Alias A/AAAA クエリは通常のDNSクエリ課金対象外のケースがある
具体的な単価
| サービス | 単価の目安 | 無料条件 |
|---|---|---|
| Amplify Hosting build | 0.01 USD/分 |
新規AWS顧客は 1,000分/月 まで無料 |
| Amplify Hosting CDN保管 | 0.023 USD/GB-月 |
新規AWS顧客は 5GB/月 まで無料 |
| Amplify Hosting データ転送 | 0.15 USD/GB |
新規AWS顧客は 15GB/月 まで無料 |
| Amplify SSR request | 0.30 USD/100万リクエスト |
新規AWS顧客は 50万リクエスト/月 まで無料 |
| S3 Standard 保管 | 0.023 USD/GB-月 |
新規AWS顧客は Free Tierクレジット適用対象 |
| S3 Standard GET | 0.0004 USD/1,000リクエスト |
小規模ならほぼ無視できる水準 |
| S3 Standard PUT/LIST | 0.005 USD/1,000リクエスト |
小規模ならほぼ無視できる水準 |
| CloudFront Flat-rate Free plan | 0 USD/月 |
1M requests/月 と 100GB transfer/月 を含む |
| Route 53 Hosted Zone | 0.50 USD/月 |
基本は無料ではない |
無料になりやすいアクセス規模の目安
以下は、1ページビューあたり転送量 300KB をざっくり前提にした目安。
| 構成 | 無料になりやすい目安 | ボトルネック |
|---|---|---|
| Amplify Hosting | 約 50,000 PV/月 まで |
15GB/月 の転送量 |
| CloudFront Flat-rate Free plan | 約 100,000 PV/月 まで |
1M requests/月 を先に踏みやすい |
| S3単体のリクエスト課金 | 数万〜数十万PVでは小さい | 転送量の方が先に効きやすい |
アクセス数の見方
15GB ÷ 0.3MB ≒ 50,000 PV100GB ÷ 0.3MB ≒ 333,000 PV- ただしCloudFront Free planは
1M requests/月制限があるため、1PVあたり10リクエスト なら約100,000 PV/月が先に上限になりやすい
月額試算の目安
前提:
- 1PVあたり
300KB - 1PVあたり 10リクエスト
- カスタムドメイン費、Route 53、WAFは含めない
静的サイト: Amplify Hosting想定
| 月間PV | 転送量の目安 | 無料枠との関係 | 月額イメージ |
|---|---|---|---|
10,000 PV |
約 3GB |
15GB無料 の範囲内 | ほぼ 0 USD |
100,000 PV |
約 30GB |
15GB を超過 |
超過分 15GB × 0.15 = 約2.25 USD |
1,000,000 PV |
約 300GB |
無料枠を大きく超過 | 285GB × 0.15 = 約42.75 USD |
補足:
- 保管が
5GB未満、ビルドが1,000分/月未満なら、その部分は無料枠内に収まりやすい - そのため、小規模サイトでは 転送量が主な課金ポイント になりやすい
静的サイト: CloudFront Free plan想定
| 月間PV | リクエスト数の目安 | 転送量の目安 | 無料枠との関係 | 月額イメージ |
|---|---|---|---|---|
10,000 PV |
約 100,000 req |
約 3GB |
1M req / 100GB 以内 |
0 USD |
100,000 PV |
約 1,000,000 req |
約 30GB |
ちょうど無料枠近辺 | 0 USD |
1,000,000 PV |
約 10,000,000 req |
約 300GB |
無料枠超過 | Free plan では収まらない |
補足:
- CloudFront Free plan は 完全従量課金の見積もり ではなく、無料の枠付き定額プラン
- 小規模サイトにはかなり相性がよい
- ただし利用条件やアカウント種別の前提があるため、開始時にプラン条件を確認する
注意
- CloudFront の Flat-rate Free plan は、2025-11-18 に発表された新しい料金体系
- AWSドキュメント上では、CloudFront Flat-rate Plans は AWS Free Tier の Free Plan アカウントでは使えない 旨の記載がある
- そのため、新規アカウントのFree Plan で始める場合は Amplify Hostingの無料枠 の方がわかりやすい
- 既存アカウント や
Paid Planで始める場合は、CloudFront Free plan がかなり強い候補になる
固定費をほぼ避けるコツ
- サーバを置かない
- DBを置かない
- WAFを最初から付けない
- CloudWatchの詳細ログをむやみに増やさない
- カスタムドメインが不要なら、まずはAWS提供ドメインで検証する
固定費になりやすいもの
| 項目 | 備考 |
|---|---|
| ドメイン取得費 | 年額でほぼ必ず発生 |
| Route 53 Hosted Zone | 月額課金あり |
| AWS WAF | 小規模サイトでも固定費が目立ちやすい |
静的サイトのおすすめ結論
- 最短で公開したいなら Amplify Hosting
- 構成をシンプルに保ちつつ自分で制御したいなら S3 + CloudFront
- 初期PVが少ないなら、静的サイトが最も“0円に近い”
静的サイトの採用判断
| 条件 | 判断 |
|---|---|
| HTML/CSS/JSだけで成立する | 静的サイトで始める |
| 更新が月数回以下 | 静的サイトが特に有利 |
| 問い合わせは外部フォームでよい | 静的サイトで十分 |
| 管理画面や会員機能がない | 静的サイトを優先 |
2. 動的サイト
向いているケース
- 問い合わせフォームの送信を自前実装したい
- ログイン機能が必要
- ユーザーごとに表示が変わる
- 管理画面が必要
- APIを提供したい
おすすめ構成
案A: フロント静的 + サーバーレスAPI
ユーザー
↓
Amplify Hosting または CloudFront + S3
↓
API Gateway (HTTP API)
↓
Lambda
↓
DynamoDB
flowchart LR
U["ユーザー"] --> F["フロント(S3 + CloudFront または Amplify)"]
F --> API["API Gateway HTTP API"]
API --> L["Lambda"]
L --> D["DynamoDB"]
L --> S["S3(画像・添付)"]
この構成が低コスト向きな理由
- 常時起動サーバが不要
- API Gateway はリクエスト課金
- Lambda は実行回数と実行時間課金
- DynamoDB on-demand は使った分だけ課金
向いている機能
- フォーム送信
- 軽い会員機能
- 小規模な管理画面
- MVP
- 初期トラフィックが読めないサービス
案B: Amplifyを入口にしてバックエンドもサーバーレス化
ユーザー
↓
Amplify Hosting
↓
API / Functions / Data
├─ Lambda
└─ DynamoDB など
向いている人
- フロントと公開導線をまとめたい
- AWSの細かい配線を最初は減らしたい
注意
- 便利なぶん、機能追加で周辺サービスが増えると見通しが悪くなることがある
- 最初は最小構成で始めるのが安全
動的サイトで避けたい構成
EC2単体
- PVが少なくてもインスタンス料金が発生
- OS保守が必要
- 「まず安く始めたい」という条件とズレやすい
RDS / Aurora を最初から使う
- RDBが必要な理由が強くない限り、初期固定費が重い
- 小規模MVPなら DynamoDB や外部BaaS の方が軽いことが多い
ECS/Fargate常時起動
- コンテナ常駐コストが発生しやすい
- 低PVスタートでは過剰になりやすい
動的サイトの料金感
前提
- 以下は 2026-04-27 時点 で確認したAWS公式Pricingをベースにした概算
- 動的サイトでは、
API GatewayとLambdaとDynamoDBの3つを主に見る - 初期PVが少ないなら、無料または数ドル未満に収まりやすい
公式上の主な料金メモ
- API Gateway は確認時点で、新規AWS顧客向け無料枠として
HTTP API 100万リクエスト/月が案内されている - Lambda は確認時点で、
100万リクエスト/月と400,000 GB-秒/月の無料利用枠が案内されている - DynamoDB on-demand は 使った分だけ課金 で、トラフィックが少ない初期段階と相性がよい
具体的な単価
| サービス | 単価の目安 | 無料条件 |
|---|---|---|
| API Gateway HTTP API | 1.00 USD/100万リクエスト |
新規AWS顧客は 100万リクエスト/月 まで無料 |
| Lambda request | 0.20 USD/100万リクエスト |
100万リクエスト/月 まで無料 |
| Lambda compute | 0.0000166667 USD/GB-秒 |
400,000 GB-秒/月 まで無料 |
| DynamoDB on-demand write | 0.625 USD/100万write |
小規模なら数円〜数百円に収まりやすい |
| DynamoDB on-demand read | 0.125 USD/100万read |
小規模ならかなり安い |
| DynamoDB storage | 0.25 USD/GB-月 |
Free Tierの説明では 25GB が案内されている |
| CloudWatch Logs | 利用量課金 | ログを増やしすぎると地味に効く |
無料になりやすいアクセス規模の目安
以下は、1PVあたりAPI呼び出し1回、Lambda 128MB・100ms をざっくり前提にした目安。
| 構成 | 無料になりやすい目安 | 先に効きやすい上限 |
|---|---|---|
| API Gateway HTTP API | 約 100万 API calls/月 |
APIリクエスト数 |
| Lambda | 約 100万 calls/月 まではかなり無料に乗りやすい |
通常は request 無料枠 |
| DynamoDB | 数十万〜数百万件/月でも安い | 実データ量が少なければほぼ課金小 |
Lambdaの無料枠の見方
Lambdaはリクエスト数だけでなく、メモリ × 実行時間 でも決まる。
例:
128MB・100msの関数
1回あたり 0.0125 GB-秒
400,000 GB-秒 無料枠なら理論上 約3,200万回 分の計算量512MB・500msの関数
1回あたり 0.25 GB-秒
無料枠では理論上 約160万回
つまり、初期の軽いAPIなら、たいていは Lambda compute より先に API Gateway の100万回無料枠が目安 になる。
月額イメージ
| 利用規模 | 想定例 | 月額イメージ |
|---|---|---|
| とても小さい | 10,000 PV/月, API 10,000回, 軽いLambda |
ほぼ 0 USD |
| 小さい | 100,000 PV/月, API 100,000回 |
多くの場合 0 USD 近辺 |
| 増え始め | 1,000,000 PV/月, API 1,000,000回 |
無料枠次第。超えても 数USD から始まりやすい |
DynamoDBの具体例
- 100万 write で
0.625 USD - 100万 read で
0.125 USD - たとえば 10万 write + 10万 read/月 なら、DynamoDB本体はかなり小さい金額で収まりやすい
月額試算の目安
前提:
- 1PVあたり API 1回
- Lambdaは
128MB / 100ms - DynamoDBは
1 read + 1 write / API - 画像配信などの大きい転送量は除く
動的サイト: API Gateway + Lambda + DynamoDB
| 月間PV | API回数 | 無料枠との関係 | 月額イメージ |
|---|---|---|---|
10,000 PV |
10,000 calls |
API Gateway / Lambda無料枠内 | ほぼ 0 USD |
100,000 PV |
100,000 calls |
まだ無料枠内 | ほぼ 0 USD |
1,000,000 PV |
1,000,000 calls |
API Gateway / Lambda無料枠の上限近辺 | 0〜数USD 程度に収まりやすい |
100万PV時のざっくり内訳
前提:
- API 100万回
- DynamoDB 100万read + 100万write
- Lambda
128MB / 100ms
概算:
- API Gateway HTTP API: 新規AWS顧客なら無料枠内、超過後は
約1.00 USD/100万回 - Lambda request: 無料枠内、超過後も
約0.20 USD/100万回 - Lambda compute: この前提では無料枠内に収まりやすい
- DynamoDB write: 約0.625 USD
- DynamoDB read: 約0.125 USD
このため、100万PV規模でも設計が軽ければ、動的部分だけなら数USD前後で始まることが多い。
低コストに寄せやすい構成
| 層 | 推奨 | 理由 |
|---|---|---|
| フロント | Amplify Hosting または S3 + CloudFront | 常駐サーバ不要 |
| API | API Gateway HTTP API | REST APIより安く設計しやすい場面が多い |
| 実行基盤 | Lambda | 使った分だけ課金 |
| DB | DynamoDB on-demand | アクセスが少ない間の無駄が少ない |
| 画像/添付 | S3 | 低コストで拡張しやすい |
課金が膨らみやすいポイント
- 大きい画像や動画の配信
- APIの無駄なポーリング
- 詳細ログの出しすぎ
- スパムやBotアクセス
- 認証やメール送信など周辺機能の足し算
動的サイトのおすすめ結論
- 動的機能が必要でも、最初は serverless 一択で考える
- 特に初期PVが少ないなら、API Gateway + Lambda + DynamoDB が本命
- EC2/RDSは、利用量が増えて要件が固まってから再検討で十分
動的サイトの採用判断
| 条件 | 判断 |
|---|---|
| フォーム送信や管理画面が必要 | 動的サイト |
| 会員ごとに表示が変わる | 動的サイト |
| 初期アクセスが少ない | サーバーレスを優先 |
| DBが必要だがRDB要件が薄い | DynamoDBから始める |
3. 静的サイトと動的サイトの比較
| 観点 | 静的サイト | 動的サイト |
|---|---|---|
| 初期コスト | 非常に低い | 低いが静的よりは高い |
| 月額固定費 | 最小にしやすい | 構成次第で抑えられる |
| 運用難易度 | 低い | 中 |
| 表現力 | 限定的 | 高い |
| 拡張性 | 外部サービス連携前提で高い | 高い |
| 0円に近づけやすさ | 最も高い | サーバーレスなら可能 |
4. 迷ったときの選び方
パターン1: まず公開できればよい
- Amplify Hosting
パターン2: 会社サイトやLPだけでよい
- 静的サイト
- 候補:
Amplify HostingまたはS3 + CloudFront
パターン3: フォームだけ必要
- フロントは 静的
- フォーム送信だけ API Gateway + Lambda
パターン4: 会員機能やDBが必要
- 動的サイト
- ただし EC2/RDSではなく serverless から始める
5. 実務向けおすすめ案
最小コストを狙うなら
おすすめ1: 静的サイト
- Amplify Hosting
または
- S3 + CloudFront
対象
- コーポレートサイト
- サービス説明ページ
- ポートフォリオ
おすすめ2: 動的サイト
Amplify Hosting
+ API Gateway (HTTP API)
+ Lambda
+ DynamoDB on-demand
+ S3
対象
- 小規模Webサービス
- 検証版
- MVP
6. 実装ひな型
Terraformの最小構成ひな型も同じワークスペースに追加している。
- 静的サイト: static-site/README.md
- 動的サイト: dynamic-site/README.md
ひな型の方針
- Route 53 と独自ドメインはあえて含めない
- WAF や詳細ログも初期構成から外す
- 固定費より従量課金を優先
- あとで足しやすい最小構成にする
7. コストを抑える運用ルール
- まずは東京リージョンなど1リージョンに絞る
- CloudWatch Logs の保持期間を短く設定する
- DynamoDB は最初から on-demand を使う
- 画像は圧縮してからアップロードする
- WAFや高度な監視は、必要になってから追加する
- 予算アラートをAWS Budgetsで最初に入れる
8. 導入ステップ
- まずは静的で成立するかを確認する
- 静的で不足する機能だけを動的に切り出す
- 先に予算アラートを設定する
- 独自ドメインは公開直前まで後回しでもよい
- 月次で転送量・ログ量・API回数だけを見る
9. 最終判断
いちばんおすすめ
- 静的で済むなら静的サイトにする
- 動的機能が必要なら serverless で作る
- “固定費が出るサービス” を初期段階で入れない
この条件ならこうする
- 初期PVが少ない
→
Amplify HostingかS3 + CloudFront - 問い合わせや簡単な管理機能も必要 → 静的フロント + API Gateway + Lambda + DynamoDB
- 月額を限りなく0にしたい
→
EC2 / RDS / 常時起動コンテナは避ける
参考リンク
- AWS Amplify Pricing
- Hosting a static website using Amazon S3
- Deploying a static website to AWS Amplify Hosting from an S3 general purpose bucket
- Deploying a static website to Amplify from an Amazon S3 bucket
- Amazon CloudFront: Restrict access to an Amazon S3 origin
- Amazon CloudFront pricing
- CloudFront flat-rate pricing plans
- Amazon API Gateway Pricing
- Create AWS Lambda proxy integrations for HTTP APIs in API Gateway
- AWS Lambda Pricing
- Amazon DynamoDB pricing
- DynamoDB on-demand capacity mode
- Amazon Route 53 pricing
- AWS Free Tier