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

tim*_*erc 22 amazon-ec2 amazon-web-services

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

Joh*_*ein 20

不,在Auto Scaling下无法停止实例.当扩展策略触发删除实例时,Auto Scaling 将始终终止实例.

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

选项1:使用预配置的AMI

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

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

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

每个Amazon EC2实例都有一个用户数据字段,可以从实例访问该字段.脚本可以通过"用户数据"字段传递,然后在实例启动时执行该字段.该脚本可用于安装软件,下载数据和配置实例.

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

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

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

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