今日のお話は知らなくてもAWSのエキスパートになれます。AWSの界隈で生きていけます。
「なぜ、こうなるのか?」を説明できるようになる話です。
1つのパケットがどのように通信を行うか物理層まで追いかける
同一リージョン・同一CIDR・同一IP。物理ネットワークの常識では説明できない。
VPC用 / EBS用 / インスタンスストレージ用 / システム制御用。PCIe接続でI/Oと仮想化をオフロード。
本日の主役はNitro Card for VPC
ファームウェアを検証し、不揮発領域への書き込みを制御。「AWS自身も顧客データに触れない」を支える
CPU・メモリ割当てなど最小限のみを担当。I/Oの仮想化は持たない。ベアメタルではこれ自体が不在
APIエンドポイントの起点で、Nitroカード・ハイパーバイザー・セキュリティチップのコーディネートやハードウェアのコントローラーを担う
従来ハイパーバイザが担っていた機能を、専用ハードウェアへ分解・移譲したのがNitro System
「ENIをアタッチする」= 物理カードに論理ステートを流し込む操作
「VPC X の 10.0.2.8 (ENI)」→「物理ホスト N」を知る巨大な対応表。リージョンの全ENIを収容
パケット単位の問い合わせは不可能。Nitro Cardsが対応表をキャッシュし、ルックアップはローカルで完結
ENIの移動 (付け替え・フェイルオーバー) は即座にプッシュ配信。TTL切れを待つDNS型とは違う
※ 実装技術は非公開。本スライドは公開情報 (re:Invent 2015 NET403) に基づく動作モデル。
パケット転送の判断に使われる以上、ミリ秒級のDB(ex. DynamoDB)では成立しない — と推論だけは可能。
AWS上のネットワークは大量の仮想化(カプセル化)で成り立つ
物理網に「10.0.1.5」単独では流れていない — だから同一CIDRでも衝突しない
実体が見えない、落ちない。なぜIGWは単一障害点にならないのか?
デカプセル化 + NAT / 逆方向はカプセル化して世界に戻す
IGWは装置ではなく、水平スケールするBlackfootフリートへの「論理ポインタ」
固定IP・即応・ソースIP保持 — プロキシでは説明できない。この差はどこから?
プロキシは「接続」を持つ。Hyperplaneは「フローの合意」を持つ — よって固定IPも即応可能。
| サービス | Hyperplaneとしての実体 |
|---|---|
| NAT Gateway | フロー単位のアドレス変換 |
| Network Load Balancer | フロー単位のターゲット分散 |
| Transit Gateway | VPC間のルーティング |
| PrivateLink | VPC間のフロー橋渡し (だからNLBが前提) |
| EFS マウントターゲット | VPCへのフロー投影 |
| Lambda VPC接続 (2019〜) | 共有ENI経由のNAT |
各サービスは同じ内部サービスの異なる実装
外部ネットワークとの「翻訳」
フローの高速・高可用処理
BlackfootとHyperplaneという2つの内部サービスに支えられている。
1つ以上のデータセンター群。電源・冷却・網が独立した障害ドメイン
メトロ圏の冗長ダークファイバー。sub-msの安定遅延
AWS専有バックボーン (インターネット非経由)。自社設計ルーター + 100GbE
AWSのネットワークを支える内部サービスを知るとVPCはこう見えてくる
もっと知りたい人はこんな動画を(昔のre:Inventの資料を中心に)