Direct Connect Gatewayと関連付けしているVGWをVPCからデタッチした時の挙動を確認してみた
Direct Connect Gatewayと関連付けしているVGWをVPCからデタッチするとどんな動きをするんだろう
こんにちは、のんピ(@non____97)です。
皆さんはDirect Connect Gatewayと関連付けしているVGWをVPCからデタッチするとどんな動きをするんだろうと思ったことはありますか? 私はあります。
以前、Private VIFとVGWを直接接続している状態からDirect Connect Gatewayを経由するように変更する方法を紹介しました。
CGWが同じであれば特に問題ないですが、別のCGWを使用する場合やSite-to-Site VPNから切り替える場合は、VIFに経路が正しく広告されるか事前に確認したいものです。
上述の記事で紹介している切り替え方法は切り戻しも簡単ですが、ダウンタイムが発生します。そのため、なるべく1回で切り替えを完了させたいところです。
そこで、事前に検証用のVPCとVGWを作成して以下の観点を確認します。
- 検証用VPCのルートテーブルでルート伝播を有効化した場合にルートテーブルに設定されるルートに不足、誤りがないか
- 検証用VPC上のEC2インスタンスとオンプレミス上のリソースがDirect Connect Gatewayを経由して通信できるか
ここで、ふと「検証後は、検証用のVGWを直接切り替え対象のVPCにアタッチすれば良いんじゃないか?」と思いました。
こうすることでDirect Connect Gatewayとの関連付けを解除することなく、切り替えができるのではないかと考えました。
特にDirect Connect Gatewayが別アカウントにあり、管理者が異なる場合は、Direct Connect Gatewayの関連付けの度に依頼が必要になるので少し手間です。
VGWをアタッチしているVPCを1ステップで変更するということはできません。VGWをVPCから一度デタッチして、別のVPCにアタッチするという2ステップ必要です。
そこで、Direct Connect Gatewayと関連付けしているVGWをVPCからデタッチした時の挙動を確認してみます。具体的にはVPCからVGWをデタッチしたタイミングで、VGWとDirect Connect Gatewayとの関連付けが解除されるのかを確認します。
いきなりまとめ
- VPCとアタッチされていないVGWにDirect Connect GatewayやVIFを関連付けすることはできない
- VPCからVGWをデタッチしたタイミングで、VGWとDirect Connect Gatewayとの関連付けは解除される
- 検証した限りVGWとDirect Connect Gatewayのアタッチ/デタッチはどちらも10分程度かかる
やってみた
それでは実際にやってみます。
VPCにアタッチしていないVGWを用意しました。
Direct ConnectのコンソールからこちらのVGWを確認すると以下のようになっていました。
この状態でVPCにVGWをアタッチします。
2分ほどでVGWの状態がAttached
に変化しました。
Direct ConnectのコンソールからこちらのVGWを確認すると以下のようになっていました。
仮想インターフェイス
とDirect Connect ゲートウェイの関連付け
という2つのタブが追加されていますね。
VPCにアタッチしたタイミングでこちらのタブが追加されたことから、どうやらVPCとアタッチされていないVGWにDirect Connect GatewayやVIFを関連付けすることはできなさそうです。
VGWとDirect Connect Gatewayを関連付けます。
8分ほどでDirect Connect Gatewayとの関連付けの状態がassociated
に変わりました。
それでは、VGWをVPCからデタッチします。
デタッチ後、3分ほど待つとDirect Connect Gatewayとの関連付けの状態がdisassociating
となりました。デタッチされたVGWはDirect Connect Gatewayとの関連付けを維持することはできず、解除されるようです。
VGWをVPCからデタッチするリクエストをして9分後にはDirect Connect Gatewayとの関連付けが完全になくなりました。
VPCにアタッチしていないVGWをDirect Connect Gatewayにアタッチしてみようとしてみます。
すると、Virtual Gateway vgw-0e5f3edea5ca868fc must have an available attachment to a VPC to be associated to a Direct Connect Gateway
と怒られてしまいました。
やはりVGWとDirect Connect Gatewayの関連付けをする際は、VGWがVPCにアタッチされている必要があるようです。
切り替えのダウンタイムを最小にしたいのであればBGPの操作をしよう
Direct Connect Gatewayと関連付けしているVGWをVPCからデタッチした時の挙動を確認してみました。
なんとなく想像していましたが、VPCからVGWをデタッチしたタイミングでVGWとDirect Connect Gatewayとの関連付けは解除されました。
というよりAWS公式ドキュメントに記載がありました。
- Direct Connect ゲートウェイに関連付けた仮想プライベートゲートウェイを、VPC にアタッチする必要があります。
. . (中略) . .
- VPC から仮想プライベートゲートウェイをデタッチすると、仮想プライベートゲートウェイと Direct Connect ゲートウェイの関連付けも解除されます。
スムーズに切り替えできたとしても、ダウンタイムは旧VGWのデタッチとVGWのアタッチで15分ぐらいを見ておいた方が良さそうですね。
ダウンタイムを最小にしたいのであれば、Direct Connect GatewayをVGWにアタッチしてBGPで優先経路をDirect Connect GatewayのVIFに寄せることになります。
ちなみにSite-to-Site VPNと関連付けしているVGWはVPCとデタッチしても、Site-to-Site VPNとの関連付けは維持されます。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!