Назад | Перейти на главную страницу

AWS: Как найти список экземпляров, связанных с определенной подсетью?

AWS теперь создает VPC по умолчанию и подсети по умолчанию для каждого запущенного экземпляра. http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html

Вы видите список подсетей либо через UI, либо через CLI

$ aws ec2 describe-subnets
{
    "Subnets": [
    ...
    ]
}

Но информация о каждой подсети не содержит списка связанных с ней экземпляров.

{
        "AvailabilityZone": "us-east-1d",
        "AvailableIpAddressCount": 251,
        "CidrBlock": "172.30.2.0/24",
        "DefaultForAz": false,
        "MapPublicIpOnLaunch": true,
        "State": "available",
        "SubnetId": "<subnet_id>",
        "VpcId": "<vpc_id>",
        "AssignIpv6AddressOnCreation": false,
        "Ipv6CidrBlockAssociationSet": []
},

Как получить список экземпляров, связанных с подсетью?

Вот пример с запросом для двух подсетей.

aws ec2 describe-instances --filters 'Name=subnet-id,Values=[subnet-12345678,subnet-90abcdef]'

Один из вариантов - вместо этого получить отображение из экземпляров, например

$ aws ec2 describe-instances | grep subnet
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                ...

Это кажется довольно глупым - поскольку amazon уже поддерживает это сопоставление, почему они не могут предоставить его с идентификатором подсети в качестве ключа вместо экземпляра? Или мне что-то здесь не хватает?