AWSのVPCに対してサブネットを作成/削除/表示する!(AWS CLI)

AWSのVPCに対してサブネットを、AWS CLIで作成、削除、表示します。

サブネットを作成する!(aws ec2 create-subnet)

VPCとAZとCIDRを指定してサブネットを作成します。AZは、Zone IDを指定して作成します。

$ aws ec2 create-subnet \
    --vpc-id vpc-09e9993280674f6ed \
    --availability-zone-id apne1-az1 \
    --cidr-block 10.111.1.0/24
{
    "Subnet": {
        "AvailabilityZone": "ap-northeast-1c",
        "AvailabilityZoneId": "apne1-az1",
        "AvailableIpAddressCount": 251,
        "CidrBlock": "10.111.1.0/24",
        "DefaultForAz": false,
        "MapPublicIpOnLaunch": false,
        "State": "available",
        "SubnetId": "subnet-02afadc6bd9e8f59a",
        "VpcId": "vpc-09e9993280674f6ed",
        "OwnerId": "XXXXXXXXXXXX",
        "AssignIpv6AddressOnCreation": false,
        "Ipv6CidrBlockAssociationSet": [],
        "SubnetArn": "arn:aws:ec2:ap-northeast-1:580383548794:subnet/subnet-02afadc6bd9e8f59a",
        "EnableDns64": false,
        "Ipv6Native": false,
        "PrivateDnsNameOptionsOnLaunch": {
            "HostnameType": "ip-name",
            "EnableResourceNameDnsARecord": false,
            "EnableResourceNameDnsAAAARecord": false
        }
    }
}

サブネットを表示する!(aws ec2 describe-subnets)

作成したサブネットを表示します。

$ aws ec2 describe-subnets --subnet-id=subnet-02afadc6bd9e8f59a
{
    "Subnets": [
        {
            "AvailabilityZone": "ap-northeast-1c",
            "AvailabilityZoneId": "apne1-az1",
            "AvailableIpAddressCount": 251,
            "CidrBlock": "10.111.1.0/24",
            "DefaultForAz": false,
            "MapPublicIpOnLaunch": false,
            "MapCustomerOwnedIpOnLaunch": false,
            "State": "available",
            "SubnetId": "subnet-02afadc6bd9e8f59a",
            "VpcId": "vpc-09e9993280674f6ed",
            "OwnerId": "XXXXXXXXXXXX",
            "AssignIpv6AddressOnCreation": false,
            "Ipv6CidrBlockAssociationSet": [],
            "SubnetArn": "arn:aws:ec2:ap-northeast-1:580383548794:subnet/subnet-02afadc6bd9e8f59a",
            "EnableDns64": false,
            "Ipv6Native": false,
            "PrivateDnsNameOptionsOnLaunch": {
                "HostnameType": "ip-name",
                "EnableResourceNameDnsARecord": false,
                "EnableResourceNameDnsAAAARecord": false
            }
        }
    ]
}

サブネットにタグをつける!(aws ec2 create-tags --resources)

タグをつける場合は、以下のコマンドを使用します。

$ aws ec2 create-tags --resources subnet-02afadc6bd9e8f59a --tags Key=Name,Value=vpc01-subnet01

サブネットを削除する!(aws ec2 delete-subnet)

サブネットを削除します。

$ aws ec2 delete-subnet --subnet-id=subnet-02afadc6bd9e8f59a

サブネットを削除したことを確認する!(aws ec2 describe-subnets)

サブネットが削除されたことを確認します。

$ aws ec2 describe-subnets --subnet-id=subnet-02afadc6bd9e8f59a

An error occurred (InvalidSubnetID.NotFound) when calling the DescribeSubnets operation: The subnet ID 'subnet-02afadc6bd9e8f59a' does not exist

おわりに

サブネットは、VPCとアベイラビリティゾーンを指定して作成します。アベイラビリティゾーンを指定しないと任意のゾーンに作成されます。アベイラビリティゾーンを指定する場合ですが、ゾーン名はゾーンIDとの対応がアカウントごとに異なるので、ゾーンIDを指定したほうが無難だと思います。

関連記事