Transit Gateway Network Managerを AWS CLIから操作してみる #reinvent

Transit Gateway Network Managerを AWS CLIから操作してみる #reinvent

2019.12.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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から実行 してみます。

目次

  1. はじめに
  2. create-global-network: グローバルネットワークの作成
  3. register-transit-gateway: TGWの登録
  4. create-site: サイトの作成
  5. create-link: リンクの作成
  6. create-device: デバイスの登録
  7. associate-link: リンクの関連付け
  8. associate-customer-gateway: カスタマーゲートウェイの関連付け
  9. おわりに

はじめに

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>]

		

– 引用:create-site > Synopsis

オンプレミスの場所を表す サイトを作成します。

--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
--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>]

		

– 引用:create-link > Synopsis

リンクを作成します。 リンクはサイトから出ている 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
--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自体は無料で使用できます。 大規模なハイブリッドネットワークを構築・運用されている方はぜひとも使ってみてください。

この記事をシェアする

FacebookHatena blogX

関連記事

Transit Gateway Network Managerを AWS CLIから操作してみる #reinvent | DevelopersIO