CloudFront で特定のリクエストを処理したエッジロケーションを確認する方法を教えてください

2021.08.23

困っていた内容

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	123.123.123.123	GET	(以降略)

アクセスログのx-edge-locationフィールドには、リクエストを処理したエッジロケーション(例:NRT51-C2)が記載されています。そのため、アクセスログからリクエストを処理したエッジロケーションを確認することができます。エッジロケーションは3文字の空港コード(IATA)と任意の数字で構成され、現時点で東京の場合はNRT、大阪の場合はKIXが設定されています。

IATA空港コードの一覧 - Wikipedia

また、リクエスト時のレスポンスヘッダー(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) の空港コードに対応します。(これらの略語は今後変更される可能性があります。)