AWS Transit Gateway のユースケースを探る

こんにちは、ももんが大好きのトランです。みなさんいかがお過ごしでしょうか?

きょうは、AWS re:Invent 2018 で発表されたばかりの AWS Transit Gateway (以下 Transit Gateway) でユースケースを探ってみたいと思います。

AWS Transit Gateway - Amazon Web Services

 

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

[AWS] 新機能 Transit Gateway にVPNで接続する #reinvent

Transit Gateway とは何か

これまで、複数の VPC の間で接続性を確保したい場合は VPC ピア接続を行うのが一般的でした。一方、VPC ピア接続は直接接続された VPC の間の接続性を提供するものであり、ある VPC を経由して他の VPC に到達するようなことができません。このため、VPC が 3 つ以上ある場合はメッシュ状に VPC ピア接続を行うことで接続性を確保していました。 また、同様に ある VPC をハブに見立てて VPN 接続を行ったオンプレミスからピア接続先の別の VPC に到達することもできないため、オンプレミスからそれぞれの VPC に VPN 接続を行ったり Transit VPC を用意したりしていました。

 

Amazon VPC Peeringの技術的考察と留意点

 

Transit Network VPC (Cisco CSR) - Transit Network VPC (Cisco CSR)

本日発表された Transit Gateway は、このような制約を部分的に克服するものです。具体的には、以下のような形でハブ+スポーク型のトポロジーを実現できるようになります。

  • VPC と Transit Gateway を関連付けるだけで、同じ Transit Gateway に関連付けられた他の VPC のリソースにアクセスできます
  • 新しい VPN 接続と Transit Gateway を関連付けるだけで、同じ Transit Gateway に関連付けられた他の VPC のリソースにアクセスできます
  • Direct Connect (仮想インターフェイス) と Transit Gateway を関連付けるだけで、同じ Transit Gateway に関連付けられた VPC のリソースにアクセスできます*
  • Transit Gateway の Direct Connect サポートは後日提供されます。

これらは、これまでの課題に当てはめて以下のように言い換えることもできます。

  • 複数の VPC にオンプレミスから接続したい場合、それぞれの VPC に VPN 接続を行う必要はありません。Transit Gateway への VPN 接続を行うだけで、関連付けられたすべての VPC のリソースにアクセスできます
  • 3 つ以上の VPC を接続したい場合、メッシュ状に 6 つの VPC ピア接続を行ったりする必要はありません。すべての VPC を Transit Gateway に関連付けるだけで、これらの VPC のリソースにアクセスできます

一方、注意すべき点としては以下です。

  • VPN 接続 (オンプレミス) から Transit Gateway を経由して他の VPN 接続 (オンプレミス) に到達することはできません。これを行う場合、Transit Gateway ではなく CloudHub や Transit VPC を検討します

AWS VPN CloudHub - Amazon Virtual Private Cloud Connectivity Options

2019年3月15日更新: 読者の方からご指摘いただき確認したところ、Transit Gateway に VPN で接続している他の拠点についても異なる ASN が使用されている限り Transit Gateway 経由で通信を行えることが確認できました。ここにお詫びのうえ訂正いたします。

以下では、Transit Gateway の仕組みについて簡単に見ていきたいと思います。

Transit Gateway の概念

上の図は、典型的な Transit Gateway のユースケースを端的に示したものです。VPC は VPC Attachment を作成して Transit Gateway に関連付けることで "ハブ" への接続を行い、オンプレミスは VPN Attachment を作成して Transit Gateway へ VPN 接続を行うことで "ハブ" への接続を行います。Direct Connect や通常の VPN 接続と異なり、Transit Gateway を使用するために VPC に対して Virtual Private Gateway (仮想プライベートゲートウェイ) を関連付ける必要はないという点に注意してください。


lo-10-255-1-1#show ip bgp neighbors 169.254.21.245 received-routes 
BGP table version is 15, local router ID is 10.255.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.35.0.0/16     169.254.21.245         100             0 64512 e
 *>   10.36.0.0/16     169.254.21.245         100             0 64512 e
 *>   10.255.2.2/32    169.254.21.245         100             0 64512 65033 e

Total number of prefixes 3

上の出力は、図の Paris DC に置いたカスタマーゲートウェイ (AS65044) で Transit Gateway から受け取った BGP プレフィックスを参照したものです。Transit Gateway に関連付けられた 2 つの VPC へのプレフィックスに加え、VPN Attachment で Transit Gateway へ接続する London DC (AS65033) からアドバタイズされたプレフィックスを受け取っています。


lo-10-255-1-1#ping 10.35.128.100 source Loopback10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.35.128.100, timeout is 2 seconds:
Packet sent with a source address of 150.1.1.1 
.....
Success rate is 0 percent (0/5)

上のイメージは、VPC コンソールから Transit Gateway のルートテーブルを参照したものです。Transit Gateway に関連付けた VPN 接続のカスタマーゲートウェイからアドバタイズしたプレフィックスや、Transit Gateway に関連付けた VPC のプレフィックスが登録されています。赤く囲った 4 件のプレフィックスは、RFC 1918 で定義されたプライベートアドレスではないプレフィックスをカスタマーゲートウェイからアドバタイズした際のものです。このようなプレフィックスは Transit Gateway のルートテーブルには表示される一方、実際に疎通を行おうとしてもパケットが破棄されることが確認できました。

Transit Gateway のオプション

上のイメージは、VPC コンソールから Transit Gateway を作成する際に選択できるオプションを切り取ったものです。それぞれのオプションには、以下のような注釈があります。

Amazon side ASN Autonomous System Number (ASN) of your Transit Gateway. You can use an existing ASN assigned to your network. If you don't have one, you can use a private ASN in the 64512-65534 or 4200000000-4294967294 range.
DNS support Enable Domain Name System resolution for VPCs attached to this Transit Gateway.
VPN ECMP support Equal-cost multi-path routing for VPN Connections that are attached to this Transit Gateway.
Default route table association Automatically associate Transit Gateway attachments with this Transit Gateway's default route table.
Default route table propagation Automatically propagate Transit Gateway attachments with this Transit Gateway's default route table.

上のイメージは、Default route table association オプションが無効な Transit Gateway で作成した VPC Attachment です。このような Transit Gateway で作成した VPC Attachment や VPN Attachment では、Transit Gateway のデフォルトのルートテーブルが自動的に割り当てられないようになります。このような Attachment は、明示的にルートテーブルを関連付けるまで「ルートテーブルがない」(他の VPC や オンプレミスへのルートがない) 状態になります。


上のイメージは、Default route table propagation オプションが有効な Transit Gateway で使用しているデフォルトのルートテーブルです。このような Transit Gateway で作成した VPC Attachment や VPN Attachment では、そのルート (VPC ルートや BGP プレフィックス) が自動的に Transit Gateway のデフォルトのルートテーブルに伝播するようになります。

以上のようなオプションから、Transit Gateway ではどのロケーションからどのロケーションへのトラフィックを許可したいかといったポリシーをセキュリティグループや IP アクセスリストを使うことなく適用できるようにするための選択肢が用意されていることがわかります。

Transit Gateway と CloudHub など

Transit Gateway が利用可能になったことで、複数の VPC の間でメッシュ状にピア接続を行う必要がなくなり、単一の VPN 接続で複数の VPC へ接続することもできるようになりました。CloudHub と同様に Transit Gateway へ VPN で接続された拠点の間でも通信が行えるということで、リージョンを超えた VPC Attachment や Direct Connect のサポートが待たれますね!

Transit Gateway CloudHub Transit VPC Direct Connect Gateway
VPC 間の通信 はい いいえ はい (VPN 接続を使用) いいえ
オンプレミス間の通信 はい はい はい いいえ
VPC とオンプレミスの通信 はい はい はい はい
複数の VPC の割り当て はい いいえ はい (VPN 接続を使用) はい

おわりに

いかがでしたか? きょうは、新しく利用可能になった Transit Gateway のユースケースについて簡単にご紹介しました。次回は、Transit Gateway で使用できるようになった Equal-cost multi-path Routing (ECMP) についてご紹介したいと思います。おたのしみに!