AWS CLIって皆さんお使いですか?
参照したいリソースを見つけるのに一苦労なので、結局マネジメントコンソールを使ってしまう自分が嫌いです。
やはり今時のインフラエンジニアならばCLIで、サクッと必要なにリーチできるのがイケてる(のかな?)
ということで、今回は参照したいルートテーブルへの辿り着き方とAWS CLIのサンプルを書いていきたいと思います。
1. まず、ご自身のAWSアカウントのVPCとCIDRの対応表を出す。
> aws ec2 describe-subnets \ --query 'Subnets[].{CIDR:CidrBlock, VPC:VpcId}' \ --output table
-------------------------------------------- | DescribeSubnets | +----------------+-------------------------+ | CIDR | VPC | +----------------+-------------------------+ | 10.1.0.0/24 | vpc-XXXXXXXXXXXXXXXXX | | 172.31.1.0/24 | vpc-YYYYYYYYYYYYYYYYY | +----------------+-------------------------+
2. 参照したいルートテーブルのあるVPC IDを指定して、サブネット一覧を出す。
> aws ec2 describe-subnets \ --query 'Subnets[].{ID:SubnetId, CIDR:CidrBlock, NAME:Tags[]}' \ --output table \ --filters Name=vpc-id,Values=vpc-XXXXXXXXXXXXXXXX
--------------------------------------------- | DescribeSubnets | +--------------+----------------------------+ | CIDR | ID | +--------------+----------------------------+ | 10.1.0.0/24 | subnet-XXXXXXXXXXXXXXXXX | +--------------+----------------------------+ || NAME || |+-----------+-----------------------------+| || Key | Value || |+-----------+-----------------------------+| || Name | my-Subnet-1a || |+-----------+-----------------------------+|
3. Subnet-idを指定して、サブネットに関連するルートテーブル一覧を出す。
> aws ec2 describe-route-tables \ --query 'RouteTables[].Associations[?SubnetId==`subnet-XXXXXXXXXXXXXX`].RouteTableId'
[ [], [], [ "rtb-XXXXXXXXXXXXXXXX" ] ]
4. RouteTable IDを指定して、ルートテーブルを参照する。
> aws ec2 describe-route-tables \ --query 'RouteTables[].Routes[].{DST:DestinationCidrBlock,NEXTHOP:GatewayId}' \ --output table \ --filters Name=route-table-id,Values=rtb-XXXXXXXXXXXXXXX
------------------------------------------ | DescribeRouteTables | +--------------+-------------------------+ | DST | NEXTHOP | +--------------+-------------------------+ | 10.1.0.0/16 | local | | 0.0.0.0/0 | igw-XXXXXXXXXXXXXXXXX | +--------------+-------------------------+
たどり着けましたね。
ただ手数が多いですよね。
ライトウェイトな自分用のマネコンを作るとかありかも
ではまた