AWS:如何查找与特定子网关联的实例列表?

Sha*_*ari 6 amazon-web-services amazon-vpc

AWS 现在为每个启动的实例创建默认 VPC 和默认子网。 http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html

您可以通过 UI 或 CLI 查看子网列表

$ aws ec2 describe-subnets
{
    "Subnets": [
    ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

但每个子网的信息不包含与其关联的实例列表。

{
        "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": []
},
Run Code Online (Sandbox Code Playgroud)

如何获取与子网关联的实例列表?

小智 8

下面是一个查询两个子网的示例。

aws ec2 describe-instances --filters 'Name=subnet-id,Values=[subnet-12345678,subnet-90abcdef]'
Run Code Online (Sandbox Code Playgroud)


Sha*_*ari 0

一种选择是从实例中检索映射 - 例如

$ aws ec2 describe-instances | grep subnet
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                "SubnetId": "<subnet_id>",
                        "SubnetId": "<subnet_id>",
                ...
Run Code Online (Sandbox Code Playgroud)

这看起来很混乱——既然亚马逊已经维护了这个映射,为什么他们不能用子网 ID 作为密钥而不是实例来公开它呢?或者我在这里遗漏了什么?