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

当ページのリンクには広告が含まれています。
aws s3 cloudfront static website 2026
🔧 インフラエンジニア歴12年(2026年時点)
☁️ AWS実務4年目(2026年時点)・Azure経験あり
🖥️ Xserverでブログ運用中

個人ブログ規模の静的サイトをHTTPS付きで公開するなら、S3 + CloudFront + OAC + ACM + Route53の最小構成が最適。主な費用はRoute 53の約75円/月(CloudFrontの転送は常時無料の枠の中)で運用でき、Pagespeed Insightsで90点以上を狙えます。

UdemyでAWSハンズオン講座を見る※ 単品購入した講座は条件を満たせば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円以内に収まります。CloudFrontの従量課金は、毎月1TBの転送と1,000万リクエストまで常時無料なので転送は0円で、主な費用はRoute 53のホストゾーン(月$0.50=約75円)とS3の保存料(数円)です。ACMの証明書はCloudFrontで使うなら無料です(2026年10月時点の公式)。

サービス 月額目安
S3(ストレージ) 数円
CloudFront(10GB配信) 0円(毎月1TB・1,000万リクエストまで常時無料)
ACM証明書 無料
Route53(ホストゾーン) $0.50(約75円・日割りなし)

CloudFrontには定額のプランもあります。Freeプラン(ディストリビューション1つにつき月$0)は、月100GB・100万リクエスト・S3の保存5GBまでで、Route 53のDNSやTLS証明書も含むプランの1つです(公式)。小さなサイトなら、従量課金の常時無料の枠と比べて選べます。

UdemyでAWS実践コースを学ぶ※ 単品購入した講座は条件を満たせば30日以内に返金可・購入前に一部レクチャーを無料プレビューできます

Access Deniedが出る時の原因と対処は?

よくある原因はバケットポリシーの貼り忘れです。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資格対策を始める※ 単品購入した講座は条件を満たせば30日以内に返金可・購入前に一部レクチャーを無料プレビューできます

FAQ

CloudFrontなしでS3単体公開ではダメ?▼
S3の静的ウェブサイトのエンドポイントはHTTPSが使えないためおすすめしません。CloudFrontを前段に置くだけでHTTPS化・CDN・キャッシュの恩恵が得られます。小さなサイトなら、CloudFrontの転送は常時無料の枠(毎月1TB)に収まります。
Next.js/Astro等のSSGフレームワークも公開できる?▼
可能です。next exportやastro buildでstatic出力をS3にデプロイ、GitHub ActionsでCI/CD自動化するのが定石ワークフローです。
トレイリングスラッシュ問題はどう解決する?▼
CloudFront Functionsで/about → /about/index.htmlへのリライト処理を書くのが標準的解決策。常時無料の枠は月200万回の呼び出しまでです(2026年10月時点の公式)。
www有無のリダイレクトは?▼
www有り→無しに統一するなら、別途www.example.com用S3バケットを作成し、リダイレクト先としてexample.comを設定する構成が一般的です。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITインフラエンジニア歴12年、クラウド(AWSがメイン、一部Azure)の実務は4年目(いずれも2026年時点)。社会人向けの3DCGスクールを2026年9月に卒業。Windows 11 + RTX 4070 Ti SUPER の自宅環境で実際に手を動かしながら、インフラ・クラウド・AI・3DCGの技術記事を書いています。

コメント

コメントする

CAPTCHA


目次