仮想ホスト形式のS3 URLを解析する
最も一般的なS3 URL形式で、バケット名がホスト名の一部になっている形式を解析する方法を学びます。仮想ホスト形式URLからバケット、キー、リージョンを抽出します。
Virtual-Hosted Style
詳細な説明
仮想ホスト形式:デフォルトのS3 URL形式
仮想ホスト形式は、Amazon S3の推奨かつデフォルトのURL形式です。この形式では、バケット名がS3エンドポイントホスト名のサブドメインとして表示されます。
URL構造
https://BUCKET.s3.REGION.amazonaws.com/KEY
例
https://my-app-assets.s3.us-west-2.amazonaws.com/images/logo.png
解析されたコンポーネント
| コンポーネント | 値 |
|---|---|
| バケット | my-app-assets |
| キー | images/logo.png |
| リージョン | us-west-2 |
| スタイル | 仮想ホスト形式 |
なぜ仮想ホスト形式なのか?
AWSが仮想ホスト形式をデフォルトにしたのには複数の理由があります:
- DNSベースルーティング — S3はホスト名のバケット名に基づいて正しいリージョンのエンドポイントにリクエストをルーティングできます。
- SNIサポート — バケット固有の証明書によるHTTPSが可能になります。
- パス形式の非推奨化 — 2020年9月以降、新しく作成されたバケットはグローバルエンドポイントへのパス形式リクエストに対して仮想ホスト形式のみをサポートします。
重要な注意事項
- バケット名はDNS準拠である必要があります:小文字、アンダースコアなし、3〜63文字。
- ドットを含む古いバケット名(例:
my.bucket.name)は、証明書のワイルドカードマッチングの制限により、HTTPS経由の仮想ホスト形式で動作しない場合があります。 - リージョン部分はリージョナルエンドポイントでは必須ですが、グローバルエンドポイント(
s3.amazonaws.com)使用時はオプションです。
ユースケース
CloudFrontオリジンURLのバケット名とリージョンが実際のS3バケット設定と一致しているか確認して、アクセス拒否エラーをデバッグする。