有没有办法在AWS中使用自动缩放来停止不使用TERMINATE实例?

时间:2015-05-27 21:32:01

标签: amazon-web-services amazon-ec2

我正在考虑使用AWS自动扩展来根据各种性能指标(CPU等)上下扩展我的基础架构。我知道如何设置它;但是,我不喜欢在缩小时终止而不是停止实例。这意味着当我缩放时,我必须从头开始使用新实例并重新安装我的软件等。我宁愿只是根据需要启动/停止我的实例而不是创建/终止。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:19)

不可以在Auto Scaling下停止实例。当扩展策略触发删除实例时,Auto Scaling 将始终终止实例。

但是,这里有一些想法可以应对终止的概念......

选项1:使用预先配置的AMI

您可以使用所需的软件,数据和设置配置Amazon EC2实例。然后,在管理控制台中选择EC2实例并choose the Create Image action。这将创建一个新的亚马逊机器映像(AMI)。然后,您可以配置Auto Scaling以在启动新实例时使用此AMI。每个新实例都将包含完全相同的磁盘内容。

值得一提的是,EBS很快从AMI开始。它不是将整个AMI复制到引导盘,而是将其复制到"首先访问"。这意味着新实例可以立即启动,而不是等待整个磁盘被复制。

选项2:使用启动(用户数据)脚本

每个Amazon EC2实例都有一个用户数据字段,可以从实例访问该字段。 A script can be passed through the User Data field,然后在实例启动时执行。该脚本可用于安装软件,下载数据和配置实例。

脚本可以做一些非常简单的事情,比如从源代码存储库下载配置脚本,然后执行脚本。这意味着可以集中管理机器配置和版本控制。想要更新您的应用?只需使用更新的脚本启动一个新实例并丢弃旧实例(这比#34更新更容易;更新"应用程序)。

选项3:向Auto Scaling组添加/删除实例

不是使用扩展策略来启动/终止Auto Scaling组的实例,而是可以附加/分离特定实例。因此,你可以模拟'自动缩放:

这需要您自己的代码,但它非常简单(基本上是两个API调用)。您将负责跟踪要附加/分离的实例。

答案 1 :(得分:2)

答案 2 :(得分:1)

实际上,您有三个正式的AWS选项可重新启动或停止属于Auto Scaling组的实例:

  • 将实例置于“待机”状态
  • 从群组中删除实例
  • 暂停健康检查过程

参考号:https://aws.amazon.com/premiumsupport/knowledge-center/reboot-autoscaling-group-instance/

答案 3 :(得分:0)

将该实例添加到“可扩展保护”中,然后停止该实例,由于它具有可扩展保护,因此它不会删除您的实例。