CloudFront から東京リージョンの ALB への応答時間を VPC オリジン・HTTP/HTTPS・Origin Shield で比べてみた

CloudFront から東京リージョンの ALB への応答時間を VPC オリジン・HTTP/HTTPS・Origin Shield で比べてみた

CloudFront からオリジンへの応答時間を、VPC オリジンの有無、HTTP/HTTPS、Origin Shield の有無を組み合わせた 8 構成で、地域別に比べました。VPC オリジンによる差は最大でも約 10 ms、Origin Shield は HTTPS で最大約 500 ms 短縮しました。
2026.11.03

はじめに

CloudFront の VPC オリジンを使うと、プライベートサブネットに置いた ALB を CloudFront のオリジンにできます。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-vpc-origins.html

CloudFront からオリジンまでの通信遅延を調べるため、VPC オリジンの有無、HTTP と HTTPS、Origin Shield の有無を組み合わせた 8 構成を用意し、エッジの地域別に応答時間を比べました。

検証環境

比較する構成

比較する構成は、ALB の種類(Public ALB、VPC オリジン経由の internal ALB)とオリジンプロトコル(HTTP、HTTPS)の組み合わせです。Origin Shield(なし、ap-northeast-1)も加えて、8 本のディストリビューションを用意しました。

# ALB の種類 オリジンプロトコル Origin Shield
1 Public ALB HTTP なし
2 Public ALB HTTP ap-northeast-1
3 Public ALB HTTPS なし
4 Public ALB HTTPS ap-northeast-1
5 VPC オリジン(internal ALB) HTTP なし
6 VPC オリジン(internal ALB) HTTP ap-northeast-1
7 VPC オリジン(internal ALB) HTTPS なし
8 VPC オリジン(internal ALB) HTTPS ap-northeast-1

全構成に共通する設定は次のとおりです。

  • キャッシュポリシーは Managed-CachingDisabled を指定し、すべてのリクエストがオリジンへ転送されるようにしました。
  • ALB はリスナールールで固定レスポンスを返すように設定しました。
  • HTTP の構成では、ALB の既定の DNS 名をオリジンに指定しました。
  • HTTPS の構成では、ACM 証明書を付けたカスタムドメインを Route 53 に登録し、そのドメインをオリジンに指定しました。

計測方法

リクエスト元は Route 53 ヘルスチェッカー(HTTP、30 秒間隔)です。

集計には CloudFront 標準ログのうち sc-status が 200 の行を使い、time-taken を ms に換算しました。time-taken は、CloudFront がリクエストを受けてからレスポンスの最後のバイトを出力キューに書き込むまでの時間です。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logs-reference.html

エッジは x-edge-location の先頭 3 文字で、US、EU(DUB)、GRU(サンパウロ)、SYD(シドニー)、SIN(シンガポール)、NRT(東京)の 6 地域に分けました。約 4 時間測定しました。

計測結果

地域別の応答時間

地域ごとの time-taken の平均(ms)です。表中の Shield は Origin Shield(ap-northeast-1)の有無です。オリジンプロトコルが HTTP の場合です。

地域 Public ALB / Shield なし VPC オリジン / Shield なし Public ALB / Shield あり VPC オリジン / Shield あり
US 236.7 238.6 125.4 125.8
EU 407.3 412.6 212.5 215.2
GRU 517.1 519.5 270.4 269.3
SYD 221.2 222.3 117.3 120.8
SIN 137.1 140.6 78.1 81.6
NRT 12.2 9.2 8.9 10.3

オリジンプロトコルが HTTPS の場合です。

地域 Public ALB / Shield なし VPC オリジン / Shield なし Public ALB / Shield あり VPC オリジン / Shield あり
US 356.2 359.6 128.3 127.7
EU 612.6 623.2 216.5 214.2
GRU 773.8 783.6 272.9 272.2
SYD 327.1 333.2 123.9 125.9
SIN 206.5 210.9 80.1 78.9
NRT 13.9 13.0 11.3 9.4

計測した 200 応答は 5 万件強です。2 つの表から、次の 3 点が確認できます。

  • VPC オリジンの有無で、応答時間に目立った差は見られません。差は最大でも約 10 ms です。
  • HTTP より HTTPS のほうが遅く、その差は東京から遠い地域ほど大きくなります。
  • Origin Shield は、東京から遠い地域ほど応答時間を大きく縮め、短縮幅は HTTPS で最大約 500 ms に達します。

IPv6 用のオリジンドメインを指定した場合

比較の条件

CloudFront の VPC オリジンは、2026 年 10 月にデュアルスタックへ対応しました。

https://dev.classmethod.jp/articles/aws-cloudfront-vpc-origin-dualstack/

CloudFront からオリジンへの接続を IPv6 にした構成を 2 本追加し、IPv4 の場合と応答時間を比べました。

IPv6 接続は、次の手順で用意しました。

  • ALB をデュアルスタックにし、IPv6 アドレスを持たせました。
  • オリジンドメインに AAAA レコードだけを登録し、ALB の IPv6 アドレスへ向けました。これにより CloudFront はオリジンを AAAA で名前解決し、IPv6 で接続します。
  • 比較対象の IPv4 構成は、同じ ALB を A レコードのオリジンドメインで指定したものです。

追加した 2 本は Public ALB と VPC オリジンで、どちらも HTTP、Origin Shield なしです。

計測結果

全 POP と NRT の time-taken(ms)です。

構成 全 POP avg 全 POP P95 全 POP P99 NRT avg NRT P95 NRT P99
Public ALB、IPv4 248 521.2 528.5 13 37 39
Public ALB、IPv6 249 522.2 532.2 12 38 40
VPC オリジン、IPv4 252 525.4 535.4 10 40 72
VPC オリジン、IPv6 253 526.4 538.1 10 38 71

CloudFront からオリジンへの接続を IPv6 にしても、応答時間は IPv4 とほぼ同じでした。

まとめ

CloudFront から ALB への経路そのものは確認できません。ただし、Route 53 ヘルスチェッカーによる time-taken を数時間測定した限りでは、VPC オリジンを使っても応答時間は変化しないことを確認できました。

CloudFront のオリジンに ALB を置く構成で、メインリージョンが東京など 1 リージョンで完結する場合は、VPC オリジンをまずご検討ください。VPC リソースのマルチリージョン展開や、gRPC、Lambda@Edge のオリジン系トリガーを使わない場合は、VPC オリジンに追加料金はかかりません。VPC オリジンは、不要な露出経路を減らせます。

また、遅延の削減手段として、Origin Shield の採用や、オリジンプロトコルの HTTP 化の効果も確認できました。オリジンまで HTTPS で暗号化したい場合も、増える遅延は Origin Shield で補えます。AWS 内に閉じたエンドツーエンドの通信暗号化までは必要としないワークロードで、遅延削減を優先する場合は、VPC オリジンを HTTP で利用することもあわせてご検討ください。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事