個人ブログ規模の静的サイトをHTTPS付きで公開するなら、S3 + CloudFront + OAC + ACM + Route53の最小構成が最適。月額数十円で運用可能で、Pagespeed Insightsで90点以上を狙えます。
「VPSや共有レンタルサーバーは月額1,000円以上かかる」「個人ポートフォリオサイトを最小コストで運用したい」――そんなニーズはありませんか?
本記事を読むと、S3 + CloudFrontでHTTPS対応の静的サイトを公開する最小構成、Access Denied対策、OAI→OAC移行、月額コストの実測値まで一通りわかります。
なぜS3単体ではなくCloudFrontを噛ませる?
S3の静的Webサイトホスティング機能はHTTPS非対応で、CDN効果もありません。CloudFrontを前段に置くことでHTTPS化・グローバルキャッシュ・OACによるS3直接アクセス禁止の3つを同時に実現できます。
| 構成 | HTTPS | CDN | セキュリティ |
|---|---|---|---|
| S3単体 | × | × | パブリック公開 |
| S3+CloudFront(OAI) | ○ | ○ | 旧式(非推奨) |
| S3+CloudFront(OAC) | ○ | ○ | S3直接アクセス禁止 |
構築の6ステップは?
「①S3バケット作成」「②OAC作成」「③CloudFrontディストリビューション作成」「④バケットポリシー貼り付け」「⑤ACM証明書発行(us-east-1必須)」「⑥Route53でAレコード」の6ステップ。所要時間は約60分です。
リージョンは東京(ap-northeast-1)で、パブリックアクセスは全ブロック維持。CloudFront経由でのみアクセスさせるため。
CloudFrontコンソール → セキュリティ → オリジンアクセスからコントロール設定を新規作成。「常にリクエストに署名する」を選択。
オリジンはREST APIエンドポイント(バケット名.s3.amazonaws.com)を指定。静的ホスティングエンドポイントは選ばない。
ディストリビューション作成後にCloudFront側で自動生成されたバケットポリシーをコピーし、S3バケットに適用する。これを忘れるとAccess Deniedが発生する。
CloudFrontで使うACM証明書は必ずバージニア北部(us-east-1)リージョンで発行する。東京リージョンの証明書は選べない。
ホストゾーンにAレコード(エイリアス)を作成し、CloudFrontディストリビューションを指定。DNS浸透まで5〜30分。
月額コストはいくら?
個人ブログ規模(月10GB配信)なら月額数十円〜100円程度に収まります。S3ストレージが数円、CloudFront転送が数十円、ACM・Route53は無料枠でカバーできます。
| サービス | 月額目安 |
|---|---|
| S3(ストレージ) | 数円 |
| CloudFront(10GB配信) | 20〜50円 |
| ACM証明書 | 無料 |
| Route53(ホストゾーン) | $0.50(約75円) |
Access Deniedが出る時の原因と対処は?
9割はバケットポリシー未貼り付けが原因。CloudFront側で自動生成されたJSONポリシーをS3バケットの「アクセス許可」タブに貼り付けることで解決します。
それでもAccess Deniedが続く場合は「S3 Block Public Accessが過剰に設定されていないか」「OACのAccountIDがバケットポリシーのものと一致しているか」を確認してください。
OAIからOACへの移行手順は?
既存環境がOAI(Origin Access Identity)の場合、AWS推奨のOAC(Origin Access Control)への移行を強く推奨します。OACはAWS Signature Version 4署名に対応しており、SSE-KMS暗号化バケットでも利用可能です。
CloudFrontコンソールで新しいOAC設定を作成する。署名動作は「常に署名する」を選択。
既存のオリジンを編集し、OAIからOACに切り替え。バケットポリシーも新しいOACのプリンシパルに更新する。
まとめ:個人ブログなら最小構成で月100円以内
- S3+CloudFront+OACの3点セットがHTTPS静的サイトの最適解
- ACM証明書はus-east-1で発行するのが鉄則
- Access DeniedはほぼOAC自動生成ポリシー未適用が原因
- 月額数十円〜100円で個人サイト運用が可能
- 既存OAI環境はOACへの移行を推奨
FAQ
CloudFrontなしでS3単体公開ではダメ?▼
Next.js/Astro等のSSGフレームワークも公開できる?▼
next exportやastro buildでstatic出力をS3にデプロイ、GitHub ActionsでCI/CD自動化するのが定石ワークフローです。トレイリングスラッシュ問題はどう解決する?▼
/about → /about/index.htmlへのリライト処理を書くのが標準的解決策。月100万リクエストまで無料です。www有無のリダイレクトは?▼
www.example.com用S3バケットを作成し、リダイレクト先としてexample.comを設定する構成が一般的です。

コメント