[レポート] NET331 -AWS Transit Gateway の紹介 #reinvent

本記事は、AWS re:Invent 2018 のセッション 「NET331 - Introducing AWS Transit Gateway」のレポートです。

AWS Transit Gateway は昨日リリースされたばかりの激アツ、ホヤホヤのサービスです!

[新機能]激アツ!AWS Transit Gatewayが発表されました!VPC間、オンプレミスとVPC間をもっと簡単に接続!! #reinvent

To deliver your applications to millions of users you need to scale your network across thousands of VPCs. AWS Transit Gateway helps scale your workloads and vastly simplifies how you connect your AWS networks. AWS Transit Gateway also makes it easier to connect your on-premises networks across those VPCs. Using secure operational controls, you can implement and maintain centralized policies to connect Amazon VPCs with each other and with your on-premises networks. This session will enable you to get started quickly and get an insight into the various capabilities that AWS Transit Gateway introduces.

  • スピーカー
    • Steve Seymour - Principal Solutions Architect, AWS
    • Thomas Spendley - GM, AWS VPN

レポート

Transit Gateway て何?

何千もの VPC とオンプレミスネットワークを相互接続できるようにする新しいサービス

  • VPC を大規模に相互接続する
  • エッジ接続を統合する
  • ルーティングドメインの柔軟性

従来は大規模ネットワークでは VPN や Peering など複雑につなげる必要がありました。

でも、Transit Gateway を使うとこんなにスッキリします。

迅速かつ簡単な導入

マルチ VPC で、Any-to-Any なネットワークに 1 つの VPN 接続を行うシナリオで、コンソール画面の説明がありました。手順としては下記のとおり。

  • Transit Gateway アタッチメントの作成
  • アタッチメントタイプは VPC を選択し、アタッチする VPC および、サブネットを選択
    • サンプルケースではそれぞれ異なる VPC のサブネット、10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16, 10.4.0.0/16 を使用しています。
  • 各 VPC テーブルに 10.0.0.0/8 の宛先に、Transit Gateway の ID tgw-xxxxx を指定

  • VPN 接続は、アタッチメントタイプ VPN を選択し、アタッチするカスタマ-ゲートウェイを指定

  • VPN 同様に Config をダウンロードして適用

どのように機能しているのか?

AWS Transit Gateway のキーコンセプトは、以下のとおり

  • アッタチメント
  • ルートテーブル
    • 関連付け
    • 伝播

デフォルトではすべてのアタッチメントは、単一の TGW ルートテーブルに関連付けられている。すべての Transit Gateway が同じ単一の TGW ルートテーブルにルートを伝播している。

Moving beyond the basics

もし TGW ルートテーブルが 2つ あったらどうしますか?3つ あったらどうしますか?

  • 各アタッチメントは、それ自身のルートテーブルに関連付けられている
  • att-red は tgw-rtb-c に伝播する
  • att-blue は tgw-rtb-c に伝播する
  • 緑の VPN アタッチメントは tgw-rtb-c に関連付けられている
  • tgw-rtb-a と tgw-rtb-b の両方に経路を伝播する
    • しかし、tgw-rtb-a と tgw-rtb-b の両方に経路を伝播する

ルートテーブル

  • ネクストホップを定義することができる(アタッチメント)
  • 静的エントリをルートテーブルに配置できる
  • ブラックホールルートを作成することができる
  • 静的/ブラックホールエントリは、伝播されたルートよりも優先される
  • デフォルトでは、TGW には1つのルートテーブル
  • デフォルトでは、すべてのアタッチメントは同じルートテーブルに関連付けられる
  • デフォルトでは、すべてのアタッチメントが同じルートテーブルに伝播される
  • デフォルトでは、すべてがすべてにルーティングできる(Any-to-Any)
  • TGW に複数のルートテーブルを持つことができる
  • アタッチメントは 1つ のルートテーブルにのみ関連付けることができる
  • アタッチメントはルートを複数のルートテーブルに伝播できる
  • Configuration を使用すると、ルーティングの完全な制御が可能になる

ルーティングについて考える方法

  • 双方向のトラフィックフローを考慮する
  • ネクストホップについて何が決定されたか
  • パス内の各ホップを視覚化するのに役立つ

ルートのフロー

言葉で説明するには難しいですが、画を見ていただければすんなり理解できると思います。

Transit Gateway アーキテクチャ

  • any-to-any がデフォルト
  • 共有エッジ接続
  • 隔離

隔離したい時は TGW ルートテーブルでルーティングを書かなければ良いようです。(そりゃ、そうだ。)

他のトランジットゲートウエイアーキテクチャ

本セッションでは以下、3つの紹介でした。

  • Any-to-Any デフォルト
  • 共有エッジ接続
  • 隔離された VPC

その他の詳細な内容は、「NET402- Transit Gateway:Reference Architecture for Many VPC's」のセッションのようです。。

  • 共有VPC
  • VPC 上の複数の Transit Gateway
  • DirectConnect (パブリック仮想インターフェイス経由で VPN を使用)
  • 高帯域幅 VPN 接続 - 1.25Gbps以上
  • ファイアウォールまたは NAT ゲートウェイ の集中型アウトバウンド
  • インタフェースエンドポイント/ PrivateLink への集中型アクセス
  • アプライアンス上でルートと ECMP を注入するために VPN を使用する

VPC アタッチメント

  • Transit Gateway は Regional オブジェクトです
  • VPC ルートテーブルの単一のターゲット
  • ただし、使用している AZ を特定する必要があります
  • どのサブネットを使用すべきか?
    • AZ あたり 1つ
    • 新しいサブネットを作成する
      • VPC に入るトラフィックのネクストホップをきめ細かく制御できます
    • 必要に応じて既存のサブネットを使用

インバウンドルーティング

ネクストホップルーティング - NATゲートウェイ

  • AZの独立性を考慮する
  • 各 TGW に接続されたサブネットの個別のインバウンドルートテーブル
  • AZ ごとに別々のターゲット

ネクストホップルーティング - インターフェイスエンドポイントとPrivateLink

  • ルーティング設定は不要!
    • エンドポイントは VPC CIDR の範囲内にあります
  • DNSはインターフェイスのエンドポイントに解決する必要があります
  • Route 53 Resolver の使用を検討する

ネクストホップルーティング - ミドルボックス

  • EC2 ENI のターゲットを持つインバウンドルートテーブル
  • 別のサブネットでホストされているミドルボックス
  • TGW のターゲットを持つアウトバウンドルートテーブル
  • 単一障害点!
  • NAT-GW パターンと一致し、AZを展開できます
  • トラフィックフローが非対称である可能性があります

その他の機能

VPN アタッチメント

  • 標準のAWS VPN設定オプション
    • 動的(BGP)
    • 静的
  • コンソールから設定例をダウンロードする
  • イコールコストマルチパス(ECMP)]

ECMPとは

  • 複数の VPN 接続 - それぞれが1.25 Gbpsをサポート
  • すべての接続に同じ IP プレフィックスをアドバタイズする
  • これにより、同じコストで複数のパスが作成されます
  • イコールコストマルチパス
  • vpn 帯域幅のスケールアップを可能にする
  • オンプレミスネットワークへの接続に使用
  • ミドルボックス、マーケットプレイス・アプライアンス/サービス挿入に使用

DNS

  • TGW に接続されているすべての VPC で DNS 解決がサポートされています
  • パブリック DNS 名をプライベートIPに解決するサポート
  • Route 53 Resolver のエンドポイント。

マルチアカウントプロセス

  • 所有者が Transit Gateway を作成します。
  • リソースアクセスマネージャ(RAM)を使用する - リソース共有を作成する
  • Transit Gateway をリソースシェアに含める
  • それを使用できるプリンシパルを指定する
    • 特定の AWS アカウント
    • 特定の AWS Organizations または OU 内のアカウント
  • 参加者は共有 Transit Gateway に対してアタッチメントを作成する
  • 所有者はアタッチメントを受け入れる(または自動承認する)
  • 注:参加者はルートテーブルを変更できません

Transit Gatway は、他の AWS サービスと統合して使用する

価格

  • 1時間あたり のアタッチメントごとに課金される
  • マルチアカウント設定の場合、アタッチメントが承認されると請求が開始される
  • Amazon VPC または AWS Site-to-Site VPN から AWS Transit Gatewayに送信された各ギガバイトにデータ処理料金が適用される

使えるリージョン

東京はまだのようですね、、。

制限

  • Transit Gateway アタッチメント数:5000
  • ルート数:10,000
  • ルートテーブル数:20

For The Future

  • ダイレクトコネクト・アタッチメント
  • Transit Gateway リージョン間ピアリング
  • 高度なルーティング機能の追加

さいごに

AWS Transit Gateway は、これまでの AWS ネットワークの常識を覆すサービスであることは間違い無さそうですね!マルチアカウントでは AWS RAM が必要になりますが、ひとまず単一アカウント内で使うのであれば、意識するのはルートテーブルくらいで、とても容易に使えそうですね!

以上!大阪オフィスの丸毛(@marumo1981)でした!