仮想ホスト形式の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が仮想ホスト形式をデフォルトにしたのには複数の理由があります:

  1. DNSベースルーティング — S3はホスト名のバケット名に基づいて正しいリージョンのエンドポイントにリクエストをルーティングできます。
  2. SNIサポート — バケット固有の証明書によるHTTPSが可能になります。
  3. パス形式の非推奨化 — 2020年9月以降、新しく作成されたバケットはグローバルエンドポイントへのパス形式リクエストに対して仮想ホスト形式のみをサポートします。

重要な注意事項

  • バケット名はDNS準拠である必要があります:小文字、アンダースコアなし、3〜63文字。
  • ドットを含む古いバケット名(例:my.bucket.name)は、証明書のワイルドカードマッチングの制限により、HTTPS経由の仮想ホスト形式で動作しない場合があります。
  • リージョン部分はリージョナルエンドポイントでは必須ですが、グローバルエンドポイント(s3.amazonaws.com)使用時はオプションです。

ユースケース

CloudFrontオリジンURLのバケット名とリージョンが実際のS3バケット設定と一致しているか確認して、アクセス拒否エラーをデバッグする。

試してみる — AWS S3 URL Parser

フルツールを開く