グローバルS3エンドポイントを使用したパス形式URL

リージョンなしのグローバルs3.amazonaws.comエンドポイントを使用したパス形式S3 URLを解析します。us-east-1以外のバケットのリダイレクト動作を理解します。

Path Style

詳細な説明

グローバルエンドポイントでのパス形式

パス形式URLがリージョンプレフィックスなしのグローバルエンドポイント(s3.amazonaws.com)を使用する場合、動作はバケットの場所によって異なります。

URL構造

https://s3.amazonaws.com/BUCKET/KEY

https://s3.amazonaws.com/shared-assets/fonts/inter-variable.woff2

解析されたコンポーネント

コンポーネント
バケット shared-assets
キー fonts/inter-variable.woff2
リージョン (未指定)
スタイル パス形式

リダイレクト動作

グローバルエンドポイントへのパス形式リクエストの場合:

バケットリージョン 動作
us-east-1 リクエストは直接処理 — リダイレクトなし
その他のリージョン S3がリージョナルエンドポイントへの301 Moved Permanentlyを返す

仮想ホスト形式のリダイレクトとの違いに注意:パス形式は永続的な301リダイレクトを返し、仮想ホスト形式は一時的な307リダイレクトを返します。

301リダイレクトレスポンス

HTTP/1.1 301 Moved Permanently
Location: https://s3.eu-west-1.amazonaws.com/shared-assets/fonts/inter-variable.woff2

これが重要な理由

  • キャッシュ: CDNやブラウザが301リダイレクトを永続的にキャッシュする場合があり、バケットが移動または削除された場合に問題が発生する可能性があります。
  • CORS: リージョナルエンドポイントでCORSが設定されていない場合、リダイレクトがクロスオリジンリクエストを壊す可能性があります。
  • パフォーマンス: リクエストごとに追加のラウンドトリップがレイテンシーを増加させます。

本番URLではこれらの問題を回避するために常にリージョンを明示的に指定してください。

ユースケース

eu-west-1にデプロイされたアプリケーションがグローバルエンドポイント経由でS3アセットを取得する際に高レイテンシーが発生する理由を診断し、301リダイレクトチェーンが不要なラウンドトリップを追加していることを発見する。

試してみる — AWS S3 URL Parser

フルツールを開く