---
title: パブリックサブネットを持たない Web配信基盤の現在地
tags: 
author: [Ryo Suzuki](https://docswell.com/user/suzryo)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJW1L1PKE2.jpg?width=480
description: JAWS festa 2026 登壇資料
published: November 07, 26
canonical: https://docswell.com/s/suzryo/KDMX88-2026-11-07-160134
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJW1L1PKE2.jpg)

パブリックサブネットを持たない
Web配信基盤の現在地
— CloudFront VPCオリジンの仕組みと2026/7/16障害を解説します
クラスメソッド株式会社
鈴木 亮（@suzryo）
SHIFT トラック ｜ 2026/11/07 15:05〜15:20
#jawsug #jawsfesta2026


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EZPMPKNJ3.jpg)

CloudFront の後ろに
ALB を置いていますか？


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y76MNMQ9EV.jpg)

VPCオリジンを
使っていますか？


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G75Z5ZRDJ4.jpg)

3月の私
3月の JAWS DAYS で、この構成を紹介しました。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9J2RNR4M7R.jpg)

7/16に止まったのはVPCオリジンだけ
• 3月から約4か月後の7/16、16:45頃（JST）から、国内外の
多くのWebサービスが閲覧しづらい状態に
• S3オリジンや Public ALB を使っていたサイトは、無事だっ
た
• DevelopersIO も、影響を受けた側だった


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DEYDPDMPEM.jpg)

そもそも、
パブリックサブネットって
何のためにあったの？


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJN656WMJ8.jpg)

CloudFront だけを通すための Public ALB
CloudFront 以外からのアクセスを防ぐために、自前で組んでいたもの:
• Public ALB 用の WAF
• セキュリティグループ: CloudFront の IP 一覧だけ許可
• ALB のリスナールール: 合言葉のカスタムヘッダーを検証


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE9LYLXW73.jpg)

ALBはプライベートのまま
入口は CloudFront だけ。インターネットに開いた口が、なくなります。
Public ALB 用の WAF、CloudFront の IP を許可するセキュリティグループ、ヘッダーを
検証する ALB ルール。全部要らなくなりました。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE8X6X2RJD.jpg)

なんで、みんな
そっちに向かったの？


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LEL898227R.jpg)

二重管理もPublic IPv4も要らない！
• CloudFront と Public ALB の両方で、WAF や防御設定を持
たなくてよくなる
• 台数が増えても、Public IPv4 が増えない


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JM6Z689EW.jpg)

で、CloudFront と
ALB の間は、
誰がつないでるの？


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PJRP6P59E9.jpg)

預けた区間
この区間を、AWS に預けています。VPCオリジンは、CloudFront からオリジンへの接
続経路そのものを預ける機能です。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PEX3M3K3JX.jpg)

預けた区間は、見えるが、触れない
• 通り道は、AWS が利用者のサブネットに作る ENI
（service-managed ENI）。コンソールで見える
• ただし、メトリクスは提供されない。VPC フローログで推
測はできるが、観測の手がかりは乏しい
• 設定は、利用者側では触れない


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3EKYGY5NJD.jpg)

7/16、
何が起きたの？


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L739N9KZ75.jpg)

16:53、正常率が急落した
AWS の報告では16:45に始まり、自社ログでは16:53から異常が見えました。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/87DGWG347G.jpg)

原因は預けた区間の中にあった
AWS の最終報告が示した原因は、VPCオリジン接続を管理するフリートが、内部の制約に達
したことです。ルーティング構成を配るシステムが、更新データを読み込めませんでした。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJP3934VE8.jpg)

タイムアウトの考慮が漏れていました
•
VPCオリジンが無応答のとき、約30秒待ってから切り替わった（Origin Group: プライマ
リ = VPCオリジン、セカンダリ = Cloudflare Workers）
•
P95（遅い側5%の境界）は約30.4秒。標準ログだけでは、どのタイムアウトかは判別でき
なかった
•
最初から入れておくもの: 待ち時間（タイムアウト）の設計と、標準ログ v2
•
詳しくは DevelopersIO の記事に書いています


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2EV4M4XRJQ.jpg)

障害のタイムライン
16:45
AWS の報告で、VPCオリジン利用環境の5xxが増え始める
16:53
自社ログで、エラーが増え始める
18:42
迂回経路で動的機能が復旧
20:18
AWS の最終報告が示す影響の終了


# Page. 19

![Page Image](https://bcdn.docswell.com/page/57G1G1V6EL.jpg)

迂回路を40分で作った
•
18:03、原因は未確定。VPC の中は正常、S3 オリジンも正常
•
外から VPC に入る箇所（VPCオリジンか、東京の IGW）を疑った
•
東京の本番 VPC は触らず、バージニアに VPC と Public ALB を作った
•
18:42、迂回経路で動的機能が復旧


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EQDXD62JP.jpg)

で、
それでも預けていいの？


# Page. 21

![Page Image](https://bcdn.docswell.com/page/KJ4Z6Z4P71.jpg)

預けられる根拠は12年の実績
経験と調査で知る限り、CloudFront 自身の問題で広範囲に止まったのは、2014年11月
27日（日本時間の午前、約90分間）の DNS 障害以来、約12年ぶりです。
2020年9月26日には、日本のエッジロケーション1か所で約1時間、エラーが出ました
（DevelopersIO に調査記事）。
これはVPCオリジン固有の数字ではなく、CloudFront 全体の実績です。7/16 を6時間、
2020年9月と2014年11月を各1時間の停止とみなして数えると:
期間
総時間
稼働率
1年
8,760時間
99.931%
約6年（2020年9月から）
53,592時間
99.987%
約12年（2014年11月から）
104,712時間
99.992%


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LE1RVR4XEG.jpg)

VPCオリジンがIPv6に対応！
• 2026年10月15日にデュアルスタックに対応し、CloudFront から
ALB まで End-to-End で IPv6 が使える
• 7月の原因は、VPCオリジン接続を管理するフリートが内部の制
約に達し、ルーティング構成を配るシステムが更新データを読み
込めなかったこと（AWS の最終報告）
• 対策の詳細は非公開。ただ、原因を放置したまま機能を足すとは
考えにくい（個人の見解）


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GEW1L1XK72.jpg)

大きな追加遅延は見えなかった
• 8構成・5万件強の応答時間を実測した（2026/11/03公開）
• Origin Shield なしの平均で、Public ALB との差は最大でも約10ms（欧州・
HTTPS で +10.6ms）


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47ZPMP6NE3.jpg)

内側はHTTPでもいい？
• CloudFront から ALB までは、AWS の中で閉じた経路
• 速さを優先するなら、内側を HTTP にする選択肢もある
• HTTPS が必須なら、Origin Shield で遅延を縮められる


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ6MNM297V.jpg)

ECS Gatewayと組むと楽！
• 2026年10月20日に発表された Amazon ECS Gateway は、
ALB を複数の ECS サービスで共有できる（1つの ALB を最
大25サービス）
• 入口は VPCオリジンに一元化したまま、コンテナの配信基
盤を組みやすくなる


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ5Z5Z2DE4.jpg)

1つのリージョンの
VPC＋ALB を
CloudFront で
公開するなら、
まずは VPCオリジンから
始めてみませんか？


# Page. 27

![Page Image](https://bcdn.docswell.com/page/LE39N91QE5.jpg)

……と言いつつ、DevelopersIOは10月に「VPCオリジンを卒業」しました
• ここまでVPCオリジンを推してきましたが、DevelopersIO自身は2026年10月に
VPCオリジンを卒業しました
• 約10か月稼働した「VPCオリジン ＋ Internal ALB ＋ ECS」構成から、2026/10/
12 GAの AWS Lambda Web Functions へ全面移行完了
• なぜ卒業したのか？（VPCオリジンへの不満ではない）
•
アクセス解析の結果、DevelopersIOへのリクエストの2/3以上が海外からだったため
•
特定リージョン（東京）のVPCに縛られず、グローバル展開できるより良い仕組みへ乗
り換えた


# Page. 28

![Page Image](https://bcdn.docswell.com/page/8EDGWGXWEG.jpg)

なぜマルチリージョン化が必要だったのか？（AI検索と5リージョン化）
• AI検索の復旧・普及によるトラフィック構造の激変
•
北米（特に東海岸）やEUから、数十並列のリクエストが相当数発生する状況に
•
北米やEUのリージョンで直接オフロードできれば、東京リージョンは無事でいられる
• オハイオも追加し「5リージョン展開」へ
•
東京・バージニア・オハイオ・オレゴン・フランクフルトの5リージョンで稼働
•
現在、東京リージョンの稼働割合は全体の約25%程度にまで分散！
•
コンテナイメージもECSも内部ALBも不要になり、北米・欧州のキャッシュミス応答
は 3.3〜12.2倍高速化


# Page. 29

![Page Image](https://bcdn.docswell.com/page/V7P393PXJ8.jpg)

副産物：NAT GatewayのIP集約による「CMSスロットリング問題」の解消
• 従来（ECS ＋ プライベートサブネット構成）の課題
•
プライベートサブネットのECSから外部CMSへAPI通信する際、出口の NAT Gateway
のIPアドレスに集約されていた
•
AI検索ボット等の数十並列リクエストでキャッシュミスが重なると、CMS側のIP制限
でスロットルして配信エラーに至っていた
• Lambda Web Functions化による解消
•
5リージョンへ分散し、NAT Gatewayによる単一IP集約から脱却したことで、CMSのIP
スロットリング問題がほぼ解消！


# Page. 30

![Page Image](https://bcdn.docswell.com/page/2JV4M4237Q.jpg)

【補足①】キャッシュ機構の刷新：Lambda Web Functions + Valkey Serverless
※ローカルキャッシュからの移行と高速化
• 移行前（ECS on EC2 Spot）：
•
EC2のインスタンスストアおよびメモリで独自のキャッシュ機構を実現していた
• 移行後（Lambda Web Functions ＋ Valkey Serverless）：
•
ステートレスなLambdaから Valkey Serverless を利用する構成へ刷新
•
キャッシュヒット率は約90% を達成！
•
さらに SWR（Stale-While-Revalidate）による時差更新 なども実装し、CMSへの負荷
を抑えつつパフォーマンスを大きく向上


# Page. 31

![Page Image](https://bcdn.docswell.com/page/5EG1G1RYJL.jpg)

【補足②】Lambda Web Functions 移行前後の定量比較データ
指標
インフラ構成
ビルド時間 (prd中央
値)
デプロイ時間 (prd中
央値)
移行前：ECS (EC2 Spot) + VPCオ 移行後：Lambda Web Functions
リジン
VPC + Internal ALB + ECS (東京1 ZIP on S3 + グローバルエンドポイ
リージョン)
ント (5リージョン)
123.9 秒
62.8 秒
256.0 秒
76.2 秒
北米・欧州キャッシュ
0.4 〜 1.2 秒 (中央値)
ミス応答
月額コスト概算
(5リージョン)
約 222 USD
0.075 〜 0.178 秒 (3.3〜12.2倍高
速)
約 200 USD 前後


# Page. 32

![Page Image](https://bcdn.docswell.com/page/4JQDXDV67P.jpg)

【補足③】Lambda Web Functions 運用上の知見（クォータと監視）
• サービスクォータの挙動
•
`us-east-1` の vCPU 引き上げ申請は「not adjustable」で受け付けられなかった
•
公式ドキュメントの通り、vCPUとリクエストレートのクォータは利用状況に応じて
AWS側が自動で引き上げる仕様
• オブザーバビリティ（応答時間の計測）
•
`AWS/Lambda/Web` の標準メトリクスでは応答時間を取得できない
•
OTLP Traces endpoint へトレースを送り、`aws/spans` を CloudWatch Logs Insights
で集計して可視化


# Page. 33

![Page Image](https://bcdn.docswell.com/page/K74Z6ZMME1.jpg)

【補足④】VPCオリジン × IPv6検証（NRT P99等の詳細数値）
• IPv6オリジンドメイン指定時の `time-taken`（HTTP / Origin Shieldなし / 単位:
ms）
• 全POPの平均・P95・P99ともに、Public ALBとVPCオリジン、IPv4とIPv6でほ
ぼ同等のパフォーマンスを記録
構成
全POP
全POP
全POP
avg
P95
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


# Page. 34

![Page Image](https://bcdn.docswell.com/page/LJ1RVR8YJG.jpg)

参考リンク 1/4: 7/16 の障害
そのとき・そのあと
CloudFront VPCオリジン障害をInter-Region VPCピアリングで迂回してみた
•
当日の迂回
•
約30秒の待ち
CloudFront VPCオリジン障害（2026-07-16）で約30秒のタイムアウト待
ちが発生していたことをログから確認してみた
•
設定とログ
CloudFront VPCオリジンのフェイルオーバー待機時間を本番ログから最適化
してみた
•
stale-if-error CloudFrontのstale-if-errorはオリジンタイムアウト時にいつstaleを返すか検
証してみた


# Page. 35

![Page Image](https://bcdn.docswell.com/page/GJW1L1Z1E2.jpg)

参考リンク 2/4: VPCオリジンの今、その後
VPCオリジンの今
•
IPv6
VPC origin がデュアルスタックをサポート。CloudFrontのオリジンリクエストが
ALB まで IPv6 で届くか試してみた
•
応答時間
CloudFront から東京リージョンの ALB への応答時間を VPC オリジン・HTTP/
HTTPS・Origin Shield で比べてみた
•
ECS Gateway Amazon ECS の新機能 「ECS Gateway」 を試してみた
DevelopersIO のその後
•
Lambda 化
DevelopersIO のバックエンドを ECS から Lambda Web Functions に移行し
て、マルチリージョン化してみた
•
5リージョン化 Lambda Web Functions のリージョンを 4 つから 5 つに入れ替えてみた
（オハイオ追加）


# Page. 36

![Page Image](https://bcdn.docswell.com/page/4EZPMP1XJ3.jpg)

参考リンク 3/4: AWS 公式ドキュメント
VPCオリジン
•
仕組みと制約
Restrict access with VPC origins（Amazon CloudFront）
•
2026年10月 Amazon CloudFront announces dual-stack support for VPC origins
•
2026年10月20日
Introducing Amazon ECS Gateway: A fully-managed ingress solution for
ECS services
補足（オリジンが Lambda の場合の OAC）
•
Function URL Restrict access to an AWS Lambda function URL origin（Amazon
CloudFront）
•
Web Function Restrict access to an AWS Lambda Web Function origin（Amazon
CloudFront）


# Page. 37

![Page Image](https://bcdn.docswell.com/page/Y76MNMLPEV.jpg)

参考リンク 4/4: 稼働率の根拠
稼働率の根拠
•
SLA Content Delivery Network SLA（Amazon CloudFront）
•
2020年9月26日
2020年9月26日CloudFront障害中のアクセスログを調査してみた
•
2014年11月27日
AmazonのCloudFrontの障害規模はどれくらいだったのか？
（GIGAZINE）


