
CloudFront から東京リージョンの ALB への応答時間を VPC オリジン・HTTP/HTTPS・Origin Shield で比べてみた
はじめに
CloudFront の VPC オリジンを使うと、プライベートサブネットに置いた ALB を CloudFront のオリジンにできます。
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 がリクエストを受けてからレスポンスの最後のバイトを出力キューに書き込むまでの時間です。
エッジは 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 月にデュアルスタックへ対応しました。
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 で利用することもあわせてご検討ください。









