Amazon-VPC

aws cliを使って自分が作成したVPCを検索してみる

はじめに

どうも、カフェオレ好きなのにコーヒー好きと言っちゃうSRE課の甫立です。

今回はタイトル通りAWS CLIを使ってコマンドライン上でVPCを作成し、それを色々な方法で特定していきたいと思います。

前準備

前提条件として,AWS CLIをインストールし、CLIでの操作を実施できる状態にする必要があります。

また、今回はすべてJSON形式です。

VPCの作成

さっそくVPCを作っていきましょう。

VPCは「create-vpc」コマンドを使うことで作成が可能です。

わかりやすくするために「create-tags」で作成したVPCIDからタグもつけます。

[root@hodate ~]# aws ec2 create-vpc --cidr-block 10.10.0.0/16
[root@hodate ~]# aws ec2 create-tags --resources vpc-09a4783c3f74851f3 --tags Key=Name,Value=hodate-cliTest

VPCの検索

VPCを特定する場合は基本的に「describe-vpcs」コマンドを使用します。

何も指定せずに使うとすべて表示されますが、特定のVPC情報が見たい場合は「--filter」で見たいVPCリソースをフィルタリングすることになります。

今回作ったVPC情報は下記で、この中の情報から検索していくことになります。

{
    "Vpcs": [
        {
            "CidrBlock": "10.10.0.0/16",
            "DhcpOptionsId": "dopt-03d8d161",
            "State": "available",
            "VpcId": "vpc-09a4783c3f74851f3",
            "OwnerId": "01×××××××××",
            "InstanceTenancy": "default",
            "CidrBlockAssociationSet": [
                {
                    "AssociationId": "vpc-cidr-assoc-0cd6ca42bbdc748ed",
                    "CidrBlock": "10.10.0.0/16",
                    "CidrBlockState": {
                        "State": "associated"
                    }
                }
            ],
            "IsDefault": false,
            "Tags": [
                {
                    "Key": "Name",
                    "Value": "hodate-cliTest"
                }
            ]
        }
    ]
}

ここでは上記の情報の中からフィルタリングができるパターンごとで自分が作ったVPCを特定していきます。

1. VPC IDで検索

VPC IDは作成した時に表示されたもので検索すると表示されます。

一意に発行されるものなのでピンポイントで検索したい場合はIDで検索しましょう。

[root@hodate ~]# aws ec2 describe-vpcs --vpc-id vpc-09a4783c3f74851f3

ちなみにタグからIDを取得することも可能です。この場合「ResourceId」がVPCのIDとなります。

[root@hodate ~]# aws ec2 describe-tags --filter "Name=tag-value,Values=hodate-cliTest"
{
    "Tags": [
        {
            "Key": "Name",
            "ResourceId": "vpc-09a4783c3f74851f3",
            "ResourceType": "vpc",
            "Value": "hodate-cliTest"
        }
    ]
}

2. タグで検索

VPCリソースに付けたタグで検索をかけます。

IDと違って自分でわかりやすいタグを付けておけばこのように検索がしやすくなります。

[root@hodate ~]# aws ec2 describe-vpcs --filter "Name=tag-value,Values=hodate-cliTest"

3. owner-idで検索

owner-id(アカウントID)はリソースの所有AWSアカウントを識別するために発行されるものです。

ログインの時に使うIDと同じ番号ですね。

自分のIDを検索してから「Account」の部分で判明したIDで検索をかけています。

[root@hodate ~]# aws sts get-caller-identity
{
    "UserId": "AIDAQEVV5KGCMPSBTJ7MG",
    "Account": "01×××××××××",
    "Arn": "arn:aws:iam::01×××××××××:user/hodate"
}
[root@hodate ~]# aws ec2 describe-vpcs --filter "Name=owner-id,Values=01×××××××××"

4. Cidr Blockで検索

最初に設定したCidr Blockでも検索できます。

[root@hodate ~]# aws ec2 describe-vpcs --filter "Name=cidr-block,Values=10.10.0.0/16"

つまずいた点

aws cliのコマンドの記述は使う場合、「describe-vpcs」や「create-vpc」といったように、名詞が場合によって複数系になったり単数形になったりします。

検索したいステータスの綴りは末尾にhelpをつけると使用可能なオプションを見ることができます。

また、末尾に「--dry-run」オプションを指定すると、コマンドを実行せずにデバッグが可能です。
最初の内はデバッグしながら成功の文言がでたら、コマンドを実行するといったようにすると安全にコマンドが実行できます。
参考までに下記にデバッグが成功する場合の文言を載せておきます。

[root@hodate ~]# aws ec2 describe-vpcs --dry-run

An error occurred (DryRunOperation) when calling the DescribeVpcs operation: Request would have succeeded, but DryRun flag is set.

最後に

今回は、awscliについてご紹介しました。

基本的なコマンドを知っておくとあとから困らないので私も手を動かしながら覚えていきたいと思います。

参考

VPC周りのコマンド

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA