【问题标题】:How to identify an EC2 Classic Instance如何识别 EC2 经典实例
【发布时间】:2022-01-21 05:57:06
【问题描述】:

最近收到一封标题为“来自 AWS 关于 Amazon EC2-Classic 的重要新闻”的电子邮件,其中描述了需要进行的一些更改。这些来自 AWS 的电子邮件通常会引用受影响的资源,而这封邮件没有。我很难确定我们帐户中的哪些资源受此影响。我们所有的 EC2 实例都在一个 VPC 中,我什至不确定是否需要更改。

有没有办法识别 EC2 实例是经典实例?

我查看了他们的链接文档并查看了我们拥有的实例,但我无法判断它们是否“经典”。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    您可以通过检查实例是否具有 VPC ID 来识别 EC2-Classic 环境。

    EC2 控制台

    VPC ID 默认不显示。从Preference 启用 VPC ID -> Attribute columns

    如果 VPC ID 属性为-,则表示该实例为 EC2-Classic。 (除了实例状态不是terminated。)

    CLI

    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 的结果的另一种方法。 在 jq select 中添加.State.Name != "terminated" and--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

    【讨论】:

    • 哦,伙计,非常感谢您的回答,我真的在为此苦苦挣扎。查看实例时,我确实在 EC2 仪表板中看到了 VPC ID 值。查看它链接到的 VPC,我还看到“经典链接”被禁用,我想我记得读过一些关于它的东西。它们是我们创建的 VPC,因此希望这不是问题。
    • ClassicLink 用于连接 EC2-Classic 实例和 VPC。所以禁用是可以的。
    • @shimo:贡献者 AUdden 发现 a potential edge case 您的解决方案没有解决,但将其作为答案发布,因为他们没有评论的声誉。我想在它被删除之前引起您的注意,以便您确定将其纳入您的答案是否有意义。他们建议将其修改为“过滤掉已终止的实例”,并指出“这是一种极端情况,但可能会导致账户周转率高的人陷入困境,因为已终止的 EC2 实例不再与 VPC ID 关联。”跨度>
    • @JeremyCaney 谢谢。我会检查一下。
    • @JeremyCaney:是的。我已经确认这个建议是正确的。当存在终止状态的 EC2 实例时(尽管时间很短),我的第一个代码显示了不需要的结果。所以我会编辑这个。
    【解决方案2】:

    Amazonprovides a script 用于识别受停用影响的所有资源,包括您可能不考虑的资源,例如安全组。

    重要提示:运行脚本后检查文件errors.txt。即使出现错误(例如缺少/错误的凭据),脚本也会愉快地运行其步骤,而不会在控制台输出中显示任何问题提示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2020-03-27
      • 2012-09-18
      • 2016-05-25
      相关资源
      最近更新 更多