为什么我有未启动的 EC2 实例正在运行?
上次更新日期:2020 年 12 月 7 日
我查看了 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,发现我拥有正在运行的实例,但我不记得我启动了它们。这些实例来自哪里,我该如何删除它们?
简短描述
要了解您账户中的 EC2 实例是如何启动的,请执行以下操作:
- 确定实例是否由其他 AWS 服务启动。
- 确定 AWS 账户的其他授权用户是否启动了该实例。
解决方法
确定实例是否由其他 AWS 服务启动
启动 EC2 实例是某些 AWS 服务功能的一部分。以下服务(并非全部)可能配置为启动 EC2 实例:
- AWS CloudFormation:您可以将 CloudFormation 模板配置为代表您将一个或多个实例作为堆栈的一部分进行启动。有关更多信息,请参阅什么是 AWS CloudFormation? 要删除堆栈及其所有资源,请参阅在 AWS CloudFormation 控制台上删除堆栈。
- AWS Elastic Beanstalk:默认情况下,Elastic Beanstalk 环境包含 EC2 实例和 Auto Scaling 规则。环境的 Auto Scaling 规则可能会启动 EC2 实例,具体取决于它们的配置。有关更多信息,请参阅什么是 Elastic Beanstalk? 要终止环境及其所有资源,请参阅终止 Elastic Beanstalk 环境。
- AWS OpsWorks:AWS OpsWorks Stacks 可以根据堆栈的说明书中的指示启动 AWS 资源组。如果启动 OpsWorks 堆栈,则说明书可能会被配置为启动 EC2 实例将其作为堆栈的一部分。要终止与堆栈关联的资源,请删除堆栈。
- Amazon EMR:Amazon EMR 让您可以启动集群和节点,这些是 EC2 实例组。要终止与集群关联的实例,请终止 Amazon EMR 集群。
注意:您可能需要在终止资源之前或之后完成其他步骤。
如果您需要为之前终止的 EC2 资源付费,请参阅我所有的实例都已经终止,为什么还要为 EC2 付费?或我所有的 Amazon EC2 实例都已终止,为什么还要为弹性 IP 地址付费?
已确定其他授权用户是否启动了实例
另一个授权用户可能将相关实例作为他们正在进行的项目的一部分加以启动。
您可以使用 AWS CloudTrail 查找 RunInstances API 调用的实例。或者,请咨询团队中的其他授权 AWS 用户,以验证他们是否启动了实例。
注意:您可以使用 AWS Identity and Access Management (IAM) 来管理哪些用户可以启动实例或使用 AWS 服务。