CloudFront で特定のリクエストを処理したエッジロケーションを確認する方法を教えてください
困っていた内容
CloudFront を使用したウェブサイトで一部のお客様から「表示に時間がかかる」とお問い合わせを頂きました。予期しないエッジロケーションへのルーティングが原因の可能性があるため、リクエストが処理されたエッジロケーションを確認する方法を教えてください。
トラフィックが予期しない CloudFront エッジロケーションにルーティングされる問題のトラブルシューティング
どう対応すればいいの?
アクセスログのx-edge-location
フィールドをご確認ください。
#Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method (以降略) 2021-08-01 01:01:01 NRT51-C2 456 192.0.2.100 GET (以降略)
アクセスログのx-edge-location
フィールドには、リクエストを処理したエッジロケーション(例:NRT51-C2
)が記載されています。そのため、アクセスログからリクエストを処理したエッジロケーションを確認することができます。エッジロケーションは3文字の空港コード(IATA)と任意の数字で構成され、現時点で東京の場合はNRT
、大阪の場合はKIX
が設定されています。
また、リクエスト時のレスポンスヘッダー(x-amz-cf-pop
)でもエッジロケーションは確認できます。
$ curl --head https://xxxxx.cloudfront.net HTTP/2 200 content-type: text/html content-length: 155 date: Tue, 01 Aug 2021 01:01:01 GMT last-modified: Tue, 01 Aug 2021 01:01:01 GMT server: AmazonS3 x-cache: Miss from cloudfront via: 1.1 xxxxxxxxxxxxxxx.cloudfront.net (CloudFront) x-amz-cf-pop: NRT51-C2
参考資料
x-edge-location
リクエストを処理したエッジロケーション。各エッジロケーションは、3 文字コードと、割り当てられた任意の数字で識別されます (例: DFW3)。通常、この 3 文字コードは、エッジロケーションのっ地理的場所の近くにある空港の、国際航空運送協会 (IATA) の空港コードに対応します。(これらの略語は今後変更される可能性があります。)