🚀

Amazon CloudFront 同一オブジェクトへの同時リクエスト (リクエストを折りたたむ)を図解

2024/07/16に公開

AWSの公式ページに記載されている同一オブジェクトへの同時リクエスト (リクエストを折りたたむ)について

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-traffic-spikes

まず、CloudFrontのキャッシュ動作について、、、
CloudFrontエッジロケーションがオブジェクトのリクエストを受け取り、オブジェクトが現在キャッシュされないまたは有効期限が切れている場合、CloudFrontはすぐにオリジンにリクエストする。
(図解するとこんな感じ↓。オリジンはなんでもいいです。図ではALBとEC2を使用)

その次の文章、、、
ただし、同一オブジェクトへの同時リクエストがある場合、CloudFrontが最初のリクエストへのレスポンスを受信する前に、同一オブジェクトへの追加のリクエストがエッジロケーションに届く場合、CloudFrontは一時停止してから、追加のリクエストをオリジンに転送する。
この短い一時停止により、オリジンでの負荷を減らすことができる。
CloudFrontは、一時停止中に受け取ったすべてのリクエストに、元のリクエストからのレスポンスを送信する。これはリクエストの折りたたみと呼ばれる。
CloudFrontのログでは、最初のリクエストは、x-edge-result-typeフィールドでMissと識別され、おりたたまれたリクエストはHitとして識別される。

図解するとこんな感じ

※CloudFrontのビヘイビアの設定でキャッシュと設定した場合は、これに該当しない。(つまり、ヘッダー、クエリー、Cookieをすべてオリジン転送)

Discussion