コマンドラインからの操作-AWS CLI -part2 VPC,subnet

こんにちは nakada です。
CLIシリーズのpart2です。今回はVPC,subnet関連をご紹介します。

目次

環境

実行環境は次の通り。

$ aws --version
aws-cli/1.7.44 Python/2.7.9 Linux/3.14.35-28.38.amzn1.x86_64
$ jq -V
jq-1.4

VPCの操作

VPCの作成

VPCの作成には次のコマンドを実行します。

aws ec2 create-vpc
[--dry-run | --no-dry-run]
--cidr-block
[--instance-tenancy ]
[--cli-input-json ]
[--generate-cli-skeleton]

実行結果

$ aws ec2 create-vpc --cidr-block 10.0.0.0/16
{
    "Vpc": {
        "InstanceTenancy": "default",
        "State": "pending",
        "VpcId": "vpc-xxxxxxx",
        "CidrBlock": "10.0.0.0/16",
        "DhcpOptionsId": "dopt-xxxxxxx"
    }
}

作成したVPCのVpcIdだけ知りたい場合

$ aws ec2 create-vpc --cidr-block 10.0.0.0/16 |jq -r '.Vpc | .VpcId'
vpc-xxxxxxx

VPCの確認

VPCの確認には次のコマンドを使用します。

aws ec2 describe-vpcs
[--dry-run | --no-dry-run]
[--vpc-ids ]
[--filters ]
[--cli-input-json ]
[--generate-cli-skeleton]

上で作成したVPC情報を確認します。 実行結果

$ aws ec2 describe-vpcs --vpc-ids vpc-xxxxxxx
{
    "Vpcs": [
        {
            "VpcId": "vpc-xxxxxxx",
            "InstanceTenancy": "default",
            "State": "available",
            "DhcpOptionsId": "dopt-xxxxxxx",
            "CidrBlock": "10.0.0.0/16",
            "IsDefault": false
        }
    ]
}

VPCの削除

VPCの削除には次のコマンドを使用します。

aws ec2 delete-vpc
[--dry-run | --no-dry-run]
--vpc-id
[--cli-input-json ]
[--generate-cli-skeleton]

実行結果(コマンドが成功してもアウトプットは出力されません。)

$ aws ec2 delete-vpc --vpc-id vpc-xxxxxxx

VPCへのタグ追加

VPCにタグを追加します。

使用するコマンド
aws ec2 create-tags
[--dry-run | --no-dry-run]
--resources
--tags
[--cli-input-json ]
[--generate-cli-skeleton]

作成したVPCにタグを追加します。今回はName keyを追加しています

実行結果

$ aws ec2 create-tags --resources vpc-xxxxxxx --tags Key=Name,Value=VPC-TEST
$ aws ec2 describe-vpcs --vpc-ids vpc-xxxxxxx
{
    "Vpcs": [
        {
            "VpcId": "vpc-xxxxxxx",
            "InstanceTenancy": "default",
            "Tags": [
                {
                    "Value": "VPC-TEST",
                    "Key": "Name"
                }
            ],
            "State": "available",
            "DhcpOptionsId": "dopt-xxxxxxx",
            "CidrBlock": "10.0.0.0/16",
            "IsDefault": false
        }
    ]
}

タグで作成した名前からVpcIdを取得してみる

$ aws ec2 describe-vpcs --filters Name=tag-value,Values="VPC-TEST" |jq -r '.Vpcs[].Vpc
Id'
vpc-xxxxxxx

subnetの操作

subnetの作成

使用するコマンド
aws ec2 create-subnet
[--dry-run | --no-dry-run]
--vpc-id
--cidr-block
[--availability-zone ]
[--cli-input-json ]
[--generate-cli-skeleton]

実行結果

$ aws ec2 create-subnet --vpc-id vpc-xxxxxxx --cidr-block 10.0.1.0/24 --availability-zone ap-northeast-1a
{
    "Subnet": {
        "VpcId": "vpc-xxxxxxx",
        "CidrBlock": "10.0.1.0/24",
        "State": "pending",
        "AvailabilityZone": "ap-northeast-1a",
        "SubnetId": "subnet-xxxxxxx",
        "AvailableIpAddressCount": 251
    }
}
$ aws ec2 describe-subnets --subnet-id subnet-xxxxxxx
{
    "Subnets": [
        {
            "VpcId": "vpc-xxxxxxx",
            "CidrBlock": "10.0.1.0/24",
            "MapPublicIpOnLaunch": false,
            "DefaultForAz": false,
            "State": "available",
            "AvailabilityZone": "ap-northeast-1a",
            "SubnetId": "subnet-xxxxxxx",
            "AvailableIpAddressCount": 251
        }
    ]
}

subnetの削除

使用するコマンド
[--dry-run | --no-dry-run]
--subnet-id
[--cli-input-json ]
[--generate-cli-skeleton]

実行結果(コマンドが成功してもアウトプットは出力されません。)

$ aws ec2 delete-subnet --subnet-id subnet-xxxxxxx

今回はVPCとsubnetについてご紹介しました。