こんにちは。AWS CLIが好きな福島です。
今回は、DX切替時に利用できるコマンドをご紹介いたします。
実行環境
今回、コマンドを実行した環境は、以下の通りとなります。
(本記事でご紹介しているコマンドの中には、Linuxのコマンドを利用している箇所があります。)
# uname -a Linux LAPTOP-CNM26HN6 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux #
はじめに
今回、DX切替は以下のシナリオを想定しました。
- 既存のDXは、DXGWを未使用
- DX切替に伴い、DXGWを導入
- DXGWを利用し、他アカウントもDX接続を可能にする
- ルートテーブルの変更で切り戻しできるよう、新規にVGWを作成
変数の定義
## VPCIDの設定 VPCID="vpc-xxxxxx" ## 新VGWのID NEW_VGW_ID="vgw-xxxx" ## 旧(既存)VGWのID OLD_VGW_ID="vgw-xxx" ## DXGWのID DXGW_ID="xxxxx-xxxxxxxx-xxxxxxxx-xxxxxx" ## ルートテーブルのID ROUTE_TABLE_ID="rtb-xxxxxx" ## ルートテーブルのソースCIDR SOURCE_CIDR="0.0.0.0/0" ## DXGWを作成したAWSアカウントID DXGW_ACCOUNT_ID="123456789012"
コマンドのご紹介
VGWのアタッチ
aws ec2 attach-vpn-gateway \ --vpc-id ${VPCID} \ --vpn-gateway-id ${NEW_VGW_ID}
VGWのデタッチ
aws ec2 detach-vpn-gateway \ --vpc-id ${VPCID} \ --vpn-gateway-id ${OLD_VGW_ID}
DXGWへVGWを関連付け(同一アカウント)
aws directconnect create-direct-connect-gateway-association \ --direct-connect-gateway-id ${DXGW_ID} \ --gateway-id ${NEW_VGW_ID}
DXGWへVGWを関連付け(他アカウント)
aws directconnect create-direct-connect-gateway-association-proposal \ --direct-connect-gateway-id ${DXGW_ID} \ --gateway-id ${NEW_VGW_ID} \ --direct-connect-gateway-owner-account ${DXGW_ACCOUNT_ID}
※上記コマンド実行後、DXGWがあるAWSアカウント側で承認をする必要がありますが、 これはコンソールからやった方が手っ取り早いので、CLIは記載しませんでした...
ルートテーブルの変更
aws ec2 replace-route \ --route-table-id ${ROUTE_TABLE_ID} \ --destination-cidr-block ${SOURCE_CIDR} \ --gateway-id ${NEW_VGW_ID}
旧VGWを使ったルートテーブルの調査
aws ec2 describe-route-tables --query "RouteTables[].[RouteTableId,Routes[].[DestinationCidrBlock,GatewayId]]" --output text | grep -E "^rtb-|${OLD_VGW_ID}"
- 実行結果
rtb-04b4c0d17a73802ba rtb-05f18025ab46ea4f4 ★ 0.0.0.0/0 vgw-007a25ab924a9af53 rtb-05538d510bc97703a
⇒少し見づらいですが、上記の場合、★のルートテーブルが${OLD_VGW_ID}を使っていることになります。
ルート伝播の有効化
aws ec2 enable-vgw-route-propagation \ --route-table-id ${ROUTE_TABLE_ID} \ --gateway-id ${NEW_VGW_ID}
ルート伝播の無効化
aws ec2 disable-vgw-route-propagation \ --route-table-id ${ROUTE_TABLE_ID} \ --gateway-id ${NEW_VGW_ID}
終わりに
今回は、DX切替時に利用できるCLIコマンドをご紹介いたしました。 どなたかのお役に立てれば幸いです。