查看子网中的所有资源/查看子网是否正在使用

时间:2019-01-26 13:35:41

标签: amazon-web-services subnet

我正在尝试清理我的AWS配置,我想知道是否实际使用了特定子网/其中是否有任何资源。

我知道您可以通过AWS Web界面按子网ID过滤特定资源类型(例如EC2实例)的列表,但是我还不知道可能会使用的所有不同资源类型-所以我担心我可能会错过一些东西。

我尝试通过AWS CLI检查子网,但是看不到任何明显区分正在使用和未使用的子网的

aws ec2 describe-subnets

This question处理枚举特定子网的CIDR块中的所有IP地址,但没有揭示如何仅显示活动IP地址(我大概可以使用它来找到附加的AWS资源并确认子网)确实在使用中。)

这似乎是一项常见的任务,但是我找不到任何AWS文档或有关如何执行此操作的SO帖子。也许我的方法存在缺陷。

5 个答案:

答案 0 :(得分:1)

AWS CLI 是一个很棒的工具,但是,如果您只是想查看每个子网中的内容,AWS 会向 EC2 控制台添加一个网络接口部分。从那里,您可以按子网 ID 过滤

enter image description here

答案 1 :(得分:0)

看看aws ec2 describe-network-interfaces

这将返回Elastic Network Interfaces (ENIs)的列表,并支持subnet-id过滤器。 EC2实例并不是子网上唯一的东西-RDS实例,Elastic Load Balancer,Lambda函数,Elastic File System挂载目标,NAT网关和其他资源消耗子网上的IP地址,但是在每种情况下,我可以想到的是,他们通过分配ENI来做到这一点。在某些情况下,例如负载平衡器(ALB和Classic),随着平衡器容量的增加和减少,地址的数量会增加和减少。就Lambda而言,由于流量不足,缺少已分配的ENI可能仅意味着当前没有Lambda容器主机正在使用子网 ...因此,如果您具有VPC Lambda功能,请承担记住这一点。

您还可以在EC2控制台的左侧导航窗格中的“网络接口”下看到ENI。

答案 2 :(得分:0)

谢谢您的回答-它们既有用,也确实帮助我确定了是否使用了特定子网。

我发现最有助于了解每个子网中内容的是开放源代码Python可视化工具CloudMapper(我完全没有隶属关系-我在提问并滚动后才发现它通过商业可视化工具)。

答案 3 :(得分:0)

aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet-id-here | grep Description(将subnet-id-here替换为子网ID)

上面的命令将为您提供该子网中的资源名称。

答案 4 :(得分:0)

AWS CLI filterquery 开关

--filters 开关值参数中,将 <<Subnet ID>> 替换为您的子网 ID。

aws ec2 describe-network-interfaces \
    --filters Name=subnet-id,Values=<<Subnet ID>> \
    --query 'NetworkInterfaces[*].Description'