![停止 EC2 实例时,它会再次自动单独列出,之前的实例将变为已终止](https://linux22.com/image/754089/%E5%81%9C%E6%AD%A2%20EC2%20%E5%AE%9E%E4%BE%8B%E6%97%B6%EF%BC%8C%E5%AE%83%E4%BC%9A%E5%86%8D%E6%AC%A1%E8%87%AA%E5%8A%A8%E5%8D%95%E7%8B%AC%E5%88%97%E5%87%BA%EF%BC%8C%E4%B9%8B%E5%89%8D%E7%9A%84%E5%AE%9E%E4%BE%8B%E5%B0%86%E5%8F%98%E4%B8%BA%E5%B7%B2%E7%BB%88%E6%AD%A2.png)
我停止了主实例,创建并运行了一个新的实例,用于临时目的。由于我使用的是免费套餐,我停止了主实例,创建了一个新实例,然后在实例中出现了三个实例:新实例、之前标记为已停止的旧主实例现已终止,以及标记为正在运行的新主实例。我一次又一次地停止它,它又出现了,现在它显示了 4 个实例。
这个“Ejabberd”是我刚刚创建的。当我停止正在运行的那个时,其他的会自动出现。我是 AWS 的新手,我搜索过但没有找到有关此行为的任何信息,我在他们自己的网站上阅读了如何停止实例。我现在要做的是停止它,除非我想启动它并停止“Ejabbered”。
编辑- 根据用户 @ceejayoz 关于自动缩放组的建议,我检查了一下,发现有一个已启用。我检查了官方文档将其关闭,然后发现我的没有扩展策略。
因此,我进一步研究了它的选项,并找到了组详细信息。我自己将所需容量和最小容量更改为 0,这样当我停止实例时它就不会打扰我。它起作用了。
但,它将我的实例状态从已停止更改为已终止。我不知道怎么做以及为什么?虽然我通过将自动缩放组的值重新更改为原始值来恢复它,但为什么停止实例会将其设置为终止?
答案1
您的 EC2 实例由 Auto Scaling 组管理。
Auto Scaling 管理的 EC2 实例可以随时启动和终止。它的目标是保留一定数量的正在运行的实例大于(或等于)最小计数,并且小于(或等于)最大计数...理想情况下是所需计数。
如果您停止 EC2 实例,Auto Scaling 会认为您的 EC2 实例“运行状况不佳”并终止它。然后,它会用一个它认为“运行状况良好”的新 EC2 实例替换它。这会将正在运行的实例数恢复到所需数量。
当您将 Auto Scaling 组的所需计数设置为 0 时,这告诉 Auto Scaling 您不想要任何正在运行的实例。然后它会终止实例,直到运行计数为 0。
当您将所需计数重置回 1 时,您告诉 Auto Scaling 您想要一个正在运行的实例,因此它会启动一个新的实例。
Auto Scaling 完全按照设计完成了任务,并且按照您的要求完成了任务。
虽然也有例外,但一般来说:
- 如果你想手动停止和启动你的 EC2 实例,不要将它们置于 Auto Scaling 之下,
- 并且,如果您直接修改 EC2 实例的内容,请不要将它们置于 Auto Scaling 之下。
我强烈建议阅读有关 Auto Scaling 的更多信息,否则就不要使用它。