【AWS CLI】Transit Gateway関連の情報取得編

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

はじめに

今回は、Transit Gateway(以下TGW)関連の情報を取得するコマンドを記載いたします。

利用するコマンド,サブコマンド

まず、AWS CLIの構造は以下の通りです。

aws <command> <subcommand> [options and parameters]

上記を前提に今回使う <command>,<subcommand>は、以下の通りです。

<command>

  • ec2

※マネジメントコンソールでは、VPCリソースの中にTGWは定義されていますが、AWS CLIの場合、ec2の中に含まれます。

<subcommand>

  • ①describe-transit-gateways
    ⇒TGWの情報を取得できます。
  • ②describe-transit-gateway-attachments
    ⇒TGWのアタッチメントの情報を取得できます。
  • ③describe-transit-gateway-route-tables
    ⇒TGWのルートテーブルの基本情報を取得できます。

では、ここから実際のコマンドを記載いたします。

describe-transit-gateways

①NameTag,TransitGatewayId

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675

②①+AmazonSideAsn

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,Options.AmazonSideAsn]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675   64512

③①+State,OwnerId

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,State,OwnerId]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675   available       XXXXXXXXXXXX

④①+Description

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,Description]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675   Transit Gateway for test

⑤①+DefaultRouteTableAssociation,AssociationDefaultRouteTableId

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,Options.DefaultRouteTableAssociation,Options.AssociationDefaultRouteTableId]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675   enable  tgw-rtb-037f8142479810d43

⑥全情報

  • 実行コマンド
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,TransitGatewayArn,State,Description,Options.AmazonSideAsn,Options.TransitGatewayCidrBlocks[0],Options.AutoAcceptSharedAttachments,Options.DefaultRouteTableAssociation,Options.AssociationDefaultRouteTableId,Options.DefaultRouteTablePropagation,Options.PropagationDefaultRouteTableId,Options.VpnEcmpSupport,Options.DnsSupport,Options.MulticastSupport]" --output text
  • 実行例
test-tgw        tgw-08b630c3b1605b675   arn:aws:ec2:ap-northeast-1:271409176351:transit-gateway/tgw-08b630c3b1605b675   available       Transit Gateway for test        64512   0.0.0.0/0       disable enable  tgw-rtb-037f8142479810d43       enable  tgw-rtb-037f8142479810d43       enable  enable  enable

ALLとは以下のことを指しております。

  • NameTag
  • TransitGatewayId
  • TransitGatewayArn
  • State
  • OwnerId
  • Description
  • CreationTime
  • AmazonSideAsn
  • TransitGatewayCidrBlocks(1つのみ)
  • AutoAcceptSharedAttachments
  • DefaultRouteTableAssociation
  • AssociationDefaultRouteTableId
  • DefaultRouteTablePropagation
  • PropagationDefaultRouteTableId
  • VpnEcmpSupport
  • DnsSupport
  • MulticastSupport

上記のコマンドではヘッダーがないため、分かりづらいかと思いますので、Linuxのコマンドを駆使し、ヘッダーを付け、カンマ区切りで出力してみました。

⑦全情報(ヘッダー付き)

  • 実行コマンド
echo "NameTag,TransitGatewayId,TransitGatewayArn,State,OwnerId,Description,CreationTime,AmazonSideAsn,TransitGatewayCidrBlocks[0],AutoAcceptSharedAttachments,DefaultRouteTableAssociation,AssociationDefaultRouteTableId,DefaultRouteTablePropagation,PropagationDefaultRouteTableId,VpnEcmpSupport,DnsSupport,MulticastSupport";\
aws ec2 describe-transit-gateways --query "TransitGateways[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,TransitGatewayArn,State,Description,Options.AmazonSideAsn,Options.TransitGatewayCidrBlocks[0],Options.AutoAcceptSharedAttachments,Options.DefaultRouteTableAssociation,Options.AssociationDefaultRouteTableId,Options.DefaultRouteTablePropagation,Options.PropagationDefaultRouteTableId,Options.VpnEcmpSupport,Options.DnsSupport,Options.MulticastSupport]" --output text | tr "\t" ","
  • 実行例
NameTag,TransitGatewayId,TransitGatewayArn,State,OwnerId,Description,CreationTime,AmazonSideAsn,TransitGatewayCidrBlocks[0],AutoAcceptSharedAttachments,DefaultRouteTableAssociation,AssociationDefaultRouteTableId,DefaultRouteTablePropagation,PropagationDefaultRouteTableId,VpnEcmpSupport,DnsSupport,MulticastSupport
test-tgw,tgw-08b630c3b1605b675,arn:aws:ec2:ap-northeast-1:XXXXXXXXXXXX:transit-gateway/tgw-08b630c3b1605b675,available,Transit Gateway for test,64512,0.0.0.0/0,disable,enable,tgw-rtb-037f8142479810d43,enable,tgw-rtb-037f8142479810d43,enable,enable,enable

describe-transit-gateway-attachments

①NameTag,TGWAttachmentID

  • 実行コマンド
aws ec2 describe-transit-gateway-attachments --query "TransitGatewayAttachments[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayAttachmentId]" --output text
  • 実行例
attachment-01   tgw-attach-04921ff7a05e83c2b
attachment-02   tgw-attach-0b1a46ba9cd865c9e

②①+TransitGatewayAttachmentId,ResrouceType,ResrouceID

  • 実行コマンド
aws ec2 describe-transit-gateway-attachments --query "TransitGatewayAttachments[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,TransitGatewayAttachmentId,ResourceType,ResourceId]" --output text
  • 実行例
attachment-01   tgw-08b630c3b1605b675   tgw-attach-04921ff7a05e83c2b    vpc     vpc-0fee138d3e0deef81
attachment-02   tgw-08b630c3b1605b675   tgw-attach-0b1a46ba9cd865c9e    vpc     vpc-01fc1e58ae90ad6f6

③①+TransitGatewayRouteTableId,State

  • 実行コマンド
aws ec2 describe-transit-gateway-attachments --query "TransitGatewayAttachments[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayId,Association.TransitGatewayRouteTableId,Association.State]" --output text
  • 実行例
attachment-01   tgw-08b630c3b1605b675   tgw-rtb-037f8142479810d43       associated
attachment-02   tgw-08b630c3b1605b675   tgw-rtb-037f8142479810d43       associated

describe-transit-gateway-route-tables

①NameTag,TransitGatewayRouteTableId,State

  • 実行コマンド
aws ec2 describe-transit-gateway-route-tables --query "TransitGatewayRouteTables[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayRouteTableId,State]" --output text
  • 実行例
test-route      tgw-rtb-037f8142479810d43       available

②①+DefaultAssociationRouteTable,DefaultPropagationRouteTable

  • 実行コマンド
aws ec2 describe-transit-gateway-route-tables --query "TransitGatewayRouteTables[].[Tags[?Key=='Name'] | [0].Value,TransitGatewayRouteTableId,State,DefaultAssociationRouteTable,DefaultPropagationRouteTable]" --output text
  • 実行例
test-route      tgw-rtb-037f8142479810d43       available       True    True

終わりに

今回は、TGW関連の情報を取得するコマンドをまとめてみました。 どなたかのお役に立てれば幸いです。

次回は、TGWのルートテーブルの詳細を取得するコマンドをご紹介したいと思います。

福島 和弥 (記事一覧)

2019/10 入社

AWS CLIが好きです。

AWS資格12冠。2023 Japan AWS Partner Ambassador/APN ALL AWS Certifications Engineer。