S3静的ウェブサイト・CORS・イベント通知

静的ウェブサイトホスティング、HTTPSとCloudFrontの関係、CORS、オブジェクトイベントからSNS・SQS・Lambda・EventBridgeへの通知をまとめます。

学習順Step 25 / 46サービスStorage試験ドメインパフォーマンス

静的ウェブサイトホスティング

バケットの 静的ウェブサイトホスティング を有効にすると、index ドキュメントエラードキュメント を指定して、HTML・画像・JS などを ウェブサーバーなし で配信できます。エンドポイント URL の形式はリージョンにより ダッシュ形式かドット形式 かが異なる点が資料に出てくることがあります。

メリットは運用が軽く、S3 の耐久性・スケールをそのまま使えることです。制約として、PHP などサーバーサイドの実行はできず、バケットのウェブサイトエンドポイント単体では TLS を終端できない ため、HTTPS 配信には CloudFront や別のプロキシ を前段に置く構成が一般的です。

公開配信では ブロックパブリックアクセスの解除バケットポリシーでの s3:GetObject 許可 など、意図した通りの公開範囲になるよう設計します。

独自ドメインと DNS

Route 53エイリアスレコード で、ドメインを S3 のウェブサイトエンドポイントに向ける構成が試験に登場します。バケット名とドメイン名を揃える 必要があるパターンなど、要件に応じた制約を確認します。

CORS(クロスオリジンリソース共有)

ブラウザから 別オリジン の S3 に JavaScript でアクセスするとき、CORS 設定で許可する オリジン・メソッド・ヘッダ をバケットに宣言します。プリフライト(OPTIONS) が発生するケースでは、実際の GET/PUT に先立って許可応答が必要です。設定ミスはブラウザ側でブロックされ、403 やネットワークエラーとして表れます。

イベント通知

オブジェクトの 作成・削除・復元 などをトリガーに、SNS・SQS・Lambda・EventBridge へ通知できます。サーバーを常時起動せずに アップロード駆動のパイプライン(サムネイル生成、ウイルススキャン、ETL のキック)を組む際の基本パターンです。配信の 再試行・重複 の扱いは宛先サービスの特性に依存するため、下流は 冪等 に設計するのが安全です。

関連サービス

グローバル配信やキャッシュは CloudFront、メッセージ連携の詳細は SQS / SNS のトピックとあわせて学習するとよいです。

重要ポイント

  • ウェブサイトエンドポイントは静的コンテンツ向けでサーバーサイド実行はない
  • バケット単独のウェブサイトエンドポイントはHTTPSを終端できないためTLSは別途CloudFront等
  • ブロックパブリックアクセスと読み取りポリシーを意図どおりに揃える必要がある
  • CORSはブラウザのクロスオリジンアクセスを許可リストで制御する
  • イベント通知はSNS・SQS・Lambda・EventBridgeなど複数宛先に設定できる

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます