2015-05-27 37 views
17

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

+1

大多数用于自动缩放的用例都遵循所需的软件在启动时引导(通过自动化安装)或预先导入源AMI。这听起来像你可能使用不正确? –

+0

是的,我可以在启动时引导它,但考虑到需要完成的软件和配置(我已测试过),这需要几分钟的时间。我想我可以用所有的软件建立我自己的AMI并配置好。我还没有尝试过。 – user3712321

+2

@ user3712321构建您自己的AMI配置的所有内容都是自动调节的标准做法,除非您使用Elastic Beanstalk - 即便如此,也是一个很好的起点。 –

回答

16

不,不可能停止 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,然后在实例启动时执行。该脚本可用于安装软件,下载数据和配置实例。

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

选项3:添加/删除实例的自动缩放组

而不是使用缩放策略来启动/终止的实例为自动缩放团时,它能够连接/分离的特定实例。因此,你可以'模拟'自动缩放:

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

+0

谢谢约翰。由于在启动时需要为每个实例完成的软件和配置的数量,选项2在我的情况下是不现实的。但是,预配置的AMI似乎会起作用。 – user3712321

相关问题