Transit Gateway Network Managerを AWS CLIから操作してみる #reinvent
re:Invent2019のネットワーク周りのアップデートの 1つに AWS Transit Gateway Network Manager があります。
Transit Gateway、それとVPN接続されているオンプレミス環境の ネットワーク全体を管理するためのサービスです。
ネットワークの可視化や、ネットワーク周りのメトリクス監視などの機能があります。 さらに このサービス自体は無料です 。
さっそくコンソール上でやってみたブログも上がっていますね。
Transit Gateway Network Managerを使ってTransit GatewayとVPN接続の可視化をしてみた #reinvent
本ブログでは AWS Transit Gateway Network Manager 周りの操作を AWS CLIから実行 してみます。
目次
- はじめに
- create-global-network: グローバルネットワークの作成
- register-transit-gateway: TGWの登録
- create-site: サイトの作成
- create-link: リンクの作成
- create-device: デバイスの登録
- associate-link: リンクの関連付け
- associate-customer-gateway: カスタマーゲートウェイの関連付け
- おわりに
はじめに
AWS Transit Gateway Network Manager (以下 Network Manager) はグローバルサービスです。
Network Manager では以下の 要素が登場します。
- グローバルネットワーク: 1つのプライベートネットワーク全体を表します。 ここにあなたのネットワークオブジェクトを登録していきます。
- Transit Gateway(TGW): (言わずもがな) AWS のネットワークサービスです。 グローバルネットワークに登録します。
- サイト: 1つのオンプレミスの場所を表します。 グローバルネットワーク上に作成します。
- リンク: 1つの回線情報(プロバイダー、上り下り回線速度など) を表します。 サイトに登録します。
- デバイス: AWSをVPN接続を行っているオンプレミス側の機器(ルーターなど) にあたります。 サイトに関連付けます。 使用している回線のリンクに関連付けできます。 また、AWSのカスタマーゲートウェイリソースに関連付けることで VPNステータスの情報などを付加できます。
AWS CLIのリファレンスは こちら 。 新規オブジェクトの作成周りの CLIを以降で触っていきます。
create-global-network: グローバルネットワークの作成
create-global-network
[--description <value>]
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
– 引用:create-global-network > Synopsis
新しい 空の グローバルネットワークを作成します。
Network Manager はグローバルサービスです。
CLI実行するときはリージョン指定 us-west-2
しましょう。
▼ 実行例
aws networkmanager create-global-network \ --description "global network generated by cli" \ --region us-west-2\ --tags Key=Name,Value=my-global-network
▼ 実行後のマネジメントコンソール確認
register-transit-gateway: TGWの登録
register-transit-gateway
--global-network-id <value>
--transit-gateway-arn <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
– 引用:register-transit-gateway > Synopsis
グローバルネットワークに Transit Gatewayを登録します。 以下 2つの情報が必須です。
- global-network-id: 作成したグローバルネットワークの ID
- transit-gateway-arn: 登録するTransit Gatewayの ARN
▼ 実行例
aws networkmanager register-transit-gateway \ --global-network-id global-network-0d31xxxxxxxxxxxxxx\ --transit-gateway-arn arn:aws:ec2:ap-northeast-1:7xxxxxxxxxxx:transit-gateway/tgw-031fxxxxxxxxxxxxx\ --region us-west-2
▼ 実行後のマネジメントコンソール確認
create-site: サイトの作成
create-site
--global-network-id <value>
[--description <value>]
[--location <value>]
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
オンプレミスの場所を表す サイトを作成します。
--location
にサイトの場所の情報を入力します。
以下の 3要素を任意に登録できます。
- Address: サイトの住所
- Latitude: サイトの緯度
- Longitude: サイトの経度
▼ 実行例
aws networkmanager create-site \ --global-network-id global-network-0d31xxxxxxxxxxxxx \ --description 'Osaka Data Center' \ --location Address='Osaka Japan' \ --tags Key=Name,Value=osaka-datacenter\ --region us-west-2
▼ 実行後のマネジメントコンソール確認
後ほど地図で確認しましたが Address='Osaka Japan'
と詳細を省いた形で記述しても、
ちゃんと大阪の場所の緯度・経度が登録されていました。
アドレスの情報から緯度・経度を検索してくれるみたいです。
もちろん 〒XXX-YYYY 大阪府大阪市...
といった形でもOKなので、持っている情報に合わせて
アドレス(もしくは 緯度・経度) を登録しましょう。
create-link: リンクの作成
create-link
--global-network-id <value>
[--description <value>]
[--type <value>]
--bandwidth <value>
[--provider <value>]
--site-id <value>
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
リンクを作成します。 リンクはサイトから出ている 1つのインターネットコネクションです。
▼ 実行例
aws networkmanager create-link \ --global-network-id global-network-0d31xxxxxxxxxxxxx \ --description "VPN Link" \ --type "broadband" \ --bandwidth UploadSpeed=10,DownloadSpeed=20 \ --provider "AnyCompany" \ --site-id site-075xxxxxxxxxxxxxx \ --tags Key=Name,Value=osaka-datacenter-link1\ --region us-west-2
▼ 実行後のマネジメントコンソール確認
create-device: デバイスの登録
create-device
--global-network-id <value>
[--description <value>]
[--type <value>]
[--vendor <value>]
[--model <value>]
[--serial-number <value>]
[--location <value>]
[--site-id <value>]
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
– 引用: create-device > Synopsis
オンプレミス側の機器に当たる デバイスを作成します。
▼ 実行例
aws networkmanager create-device\ --global-network-id global-network-0d31xxxxxxxxxxxxx\ --site-id site-075xxxxxxxxxxxxxx\ --description "Osaka Data Center Router" \ --type "Router" \ --vendor "Cisco" \ --model "CISCO1812-J/K9" \ --serial-number "ABCD1234" \ --tags Key=Name,Value=osaka-datacenter-router\ --region us-west-2
▼ 実行後のマネジメントコンソール確認
associate-link: リンクの関連付け
associate-link
--global-network-id <value>
--device-id <value>
--link-id <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
– 引用: associate-link > Synopsis
リンクをデバイスに関連付けます。 複数のデバイスに複数のリンクを関連付けできます。
▼ 実行例
aws networkmanager associate-link \ --global-network-id global-network-0d31xxxxxxxxxxxxx \ --device-id device-0153xxxxxxxxxxxxx \ --link-id link-0e1465xxxxxxxxxxx \ --region us-west-2
▼ 実行後のマネジメントコンソール確認
associate-customer-gateway: カスタマーゲートウェイの関連付け
associate-customer-gateway
--customer-gateway-arn <value>
--global-network-id <value>
--device-id <value>
[--link-id <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
– 引用: associate-customer-gateway > Synopsis
カスタマーゲートウェイをデバイスに関連付けます。
▼ 実行例
aws networkmanager associate-customer-gateway \ --global-network-id global-network-0d31xxxxxxxxxxxxx \ --customer-gateway-arn arn:aws:ec2:ap-northeast-1:7xxxxxxxxxxx:customer-gateway/cgw-0b84xxxxxxxxxxxxx \ --device-id device-0153xxxxxxxxxxxxx \ --region us-west-2
▼ 実行後のマネジメントコンソール確認
関連付けを行うことで Location(地域)
タブなどでAWSとオンプレ間の VPNステータスが確認できるようになります。
おわりに
ざっと 作成周りの CLIを触ってみました。
グローバルネットワークの作成などは基本的に 1回のみの実行ですが、 デバイスの登録・関連付け周りのCLIは、オンプレミス環境を多く持つ方には有用かもしれませんね。
実際のところ、サイトやリンクなどは必須ではなく、 デバイスに住所・緯度経度の情報を登録して、カスタマーゲートウェイを関連付けさせるだけで、 可視化した情報を見ることができたりします。
どこまで細かく情報を登録するかは Network Managerの運用次第でしょう。
Network Manager自体は無料で使用できます。 大規模なハイブリッドネットワークを構築・運用されている方はぜひとも使ってみてください。