我正在考虑使用AWS自动扩展来根据各种性能指标(CPU等)上下扩展我的基础架构。我知道如何设置它;但是,我不喜欢在缩小时终止而不是停止实例。这意味着当我缩放时,我必须从头开始使用新实例并重新安装我的软件等。我宁愿只是根据需要启动/停止我的实例而不是创建/终止。有没有办法做到这一点?
答案 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)
将该实例添加到“可扩展保护”中,然后停止该实例,由于它具有可扩展保护,因此它不会删除您的实例。