【AWS CLI】ルートテーブルの情報を参照する

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

たどり着けましたね。

ただ手数が多いですよね。

ライトウェイトな自分用のマネコンを作るとかありかも

ではまた