【2026年版】AWS S3 + CloudFrontで静的ウェブサイトを公開する方法|OAC対応・月額100円以内構成

aws s3 cloudfront static website 2026
🔧 インフラエンジニア歴12年
☁️ AWS実務2.5年・Azure経験あり
🖥️ Xserverでブログ運用中

個人ブログ規模の静的サイトをHTTPS付きで公開するなら、S3 + CloudFront + OAC + ACM + Route53の最小構成が最適。月額数十円で運用可能で、Pagespeed Insightsで90点以上を狙えます。

UdemyでAWSハンズオン講座を見る※ セール時最大90%OFF・30日間返金保証あり

「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分です。

1 S3バケット作成+HTMLアップロード

リージョンは東京(ap-northeast-1)で、パブリックアクセスは全ブロック維持。CloudFront経由でのみアクセスさせるため。

2 OAC(Origin Access Control)作成

CloudFrontコンソール → セキュリティ → オリジンアクセスからコントロール設定を新規作成。「常にリクエストに署名する」を選択。

3 CloudFrontディストリビューション作成

オリジンはREST APIエンドポイントバケット名.s3.amazonaws.com)を指定。静的ホスティングエンドポイントは選ばない。

4 バケットポリシー貼り付け

ディストリビューション作成後にCloudFront側で自動生成されたバケットポリシーをコピーし、S3バケットに適用する。これを忘れるとAccess Deniedが発生する。

5 ACM証明書発行(us-east-1必須)

CloudFrontで使うACM証明書は必ずバージニア北部(us-east-1)リージョンで発行する。東京リージョンの証明書は選べない。

6 Route53でAレコード

ホストゾーンにAレコード(エイリアス)を作成し、CloudFrontディストリビューションを指定。DNS浸透まで5〜30分。

月額コストはいくら?

個人ブログ規模(月10GB配信)なら月額数十円〜100円程度に収まります。S3ストレージが数円、CloudFront転送が数十円、ACM・Route53は無料枠でカバーできます。

サービス 月額目安
S3(ストレージ) 数円
CloudFront(10GB配信) 20〜50円
ACM証明書 無料
Route53(ホストゾーン) $0.50(約75円)
UdemyでAWS実践コースを学ぶ※ クレジットカード不要で講座サンプル視聴可能

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暗号化バケットでも利用可能です。

1 新規OACを作成

CloudFrontコンソールで新しいOAC設定を作成する。署名動作は「常に署名する」を選択。

2 ディストリビューションのオリジンを更新

既存のオリジンを編集し、OAIからOACに切り替え。バケットポリシーも新しいOACのプリンシパルに更新する。

まとめ:個人ブログなら最小構成で月100円以内

  • S3+CloudFront+OACの3点セットがHTTPS静的サイトの最適解
  • ACM証明書はus-east-1で発行するのが鉄則
  • Access DeniedはほぼOAC自動生成ポリシー未適用が原因
  • 月額数十円〜100円で個人サイト運用が可能
  • 既存OAI環境はOACへの移行を推奨
UdemyでAWS資格対策を始める※ セール時最大90%OFF・モバイル学習対応

FAQ

CloudFrontなしでS3単体公開ではダメ?
HTTPSが使えず、S3のSEO評価も低くなるためおすすめしません。CloudFrontを前段に置くだけでHTTPS化・CDN・キャッシュの恩恵が得られます。コスト差は月数十円程度です。
Next.js/Astro等のSSGフレームワークも公開できる?
可能です。next exportastro buildでstatic出力をS3にデプロイ、GitHub ActionsでCI/CD自動化するのが定石ワークフローです。
トレイリングスラッシュ問題はどう解決する?
CloudFront Functionsで/about/about/index.htmlへのリライト処理を書くのが標準的解決策。月100万リクエストまで無料です。
www有無のリダイレクトは?
www有り→無しに統一するなら、別途www.example.com用S3バケットを作成し、リダイレクト先としてexample.comを設定する構成が一般的です。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次