amazon-web-services - 如何识别 EC2 经典实例
问题描述
最近收到一封标题为“来自 AWS 关于 Amazon EC2-Classic 的重要新闻”的电子邮件,其中描述了需要进行的一些更改。这些来自 AWS 的电子邮件通常会引用受影响的资源,而这封邮件没有。我很难确定我们帐户中的哪些资源受此影响。我们所有的 EC2 实例都在 VPC 中,我什至不确定是否需要更改任何内容。
有没有办法确定 EC2 实例是经典实例?
我查看了他们的链接文档并浏览了我们拥有的实例,但我无法判断它们是否“经典”。
解决方案
您可以通过检查实例是否具有 VPC ID 来识别 EC2-Classic 环境。
EC2 控制台
VPC ID 默认不显示。Preference
从->启用 VPC ID Attribute columns
。
那么如果 VPC ID 属性为-
,则表示该实例为 EC2-Classic。(除了实例状态不是terminated
。)
命令行界面
2种检查方式。除非存在 EC2 经典实例,否则输出为无。
- 使用 EC2-Classic 环境描述实例。
aws ec2 describe-instances --filters Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped | jq '.Reservations[].Instances[] | select(.VpcId == null)'
- 如果是 EC2-Classic,请描述实例。
aws ec2 describe-instances --instance-id i-xxxxxxxxxxxx --filters Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped | jq '.Reservations[].Instances[] | select(.VpcId == null)'
jq 选择终止状态
这是过滤结果的另一种方法aws ec2 describe-instances
。添加.State.Name != "terminated" and
jq select 与--filters ...
. 这可能更具可读性。
aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(.State.Name != "terminated" and .VpcId == null)'
编辑说明:感谢@AUdden 的建议,我修改了 CLI 代码以过滤掉terminated
状态。当我们终止实例(而不是停止)时,实例会以终止状态存在一段时间。终止的实例不再与 VPC 关联。为此,我添加了--filters Name=instance-state-name,Values=pending,running,shutting-down,stopping,stopped
.
推荐阅读
- html - 如何使元素 div(即将推出的时钟)具有响应性?
- java - 按双精度对对象数组进行排序并具有特定的字符串值
- javascript - 为什么使用绑定函数(javascript)后属性未定义?
- r - R Markdown:Markdown 工作区到 R 工作区
- python - 未注册具有此名称的 AngularJS 错误控制器
- java - Spring Boot 应用程序因 EXCEPTION_ACCESS_VIOLATION 错误而崩溃
- wpf - WPF 将值发送到可重用的用户控件
- spring-boot - Spring Boot配置-如何仅覆盖指定的属性
- file - JavaFX - 有没有办法添加或修改媒体文件元数据?
- c# - 访问继承类型的内部类