我在 EC2 Web 控制台中有数百个实例。
有些已经关闭。我看得出它们是几个月或几年前创建的。它们似乎被遗弃和遗忘了一段时间,但很难判断终止它们是否安全。
例如,它们可能是一些旧的备份,有人可能只是将负载迁移到新实例,并将旧实例保留几周作为预防措施,等等......
我们最终保留了其中的大部分,因为这是最安全的选择。
实例关闭时,我们仍需支付 EBS 卷费用(但不会终止)。随着许多未使用的实例,价格可能会随着时间的推移而上涨(EBS 为每月每 TB 140 美元)。所以我想做一些清理。
我在想,如果我能找到实例关闭的时间,那将可以很好地表明它有多“被遗弃”。
如何找到实例上次关闭的时间?
答案1
使用 awscli。pip install awscli
aws ec2 describe-instances --output table --instance-id i-aef88019
输出:
||| StateTransitionReason | User initiated (2015-11-16 13:36:40 GMT) |||
[...]
|||| StateReason ||||
|||+---------+----------------------------------------------------------+|||
|||| Code | Client.UserInitiatedShutdown ||||
|||| Message| Client.UserInitiatedShutdown: User initiated shutdown ||||
我们可以看到实例中发生了什么事情以及在什么时候发生。
例如,这个是在 2015-11-16 13:36:40 GMT 手动关闭的。
答案2
正如你提到的,这些机器是很多年前制造的,我认为你应该检查它们是否在使用旧式的存储调用实例存储。
根据我的经验,如果您需要关闭那些带有实例存储的 EC2 机器,唯一的选择就是终止它,但这会导致数据丢失。
因此,我的建议是添加新的 EBS 来备份所有数据,并使用最新设置创建新的 EC2,或者只是远程备份数据。然后终止旧的 EC2 实例,这应该可以消除您的存储成本。