S3静的ウェブサイト・CORS・イベント通知
静的ウェブサイトホスティング、HTTPSとCloudFrontの関係、CORS、オブジェクトイベントからSNS・SQS・Lambda・EventBridgeへの通知をまとめます。
静的ウェブサイトホスティング
バケットの 静的ウェブサイトホスティング を有効にすると、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など複数宛先に設定できる
このトピックの学習を完了しますか?
完了状態はいつでも切り替えられます
同じサービスの関連トピック
S3 / EBS / EFS ストレージ に関連するトピックを続けて確認できます。