尝试解决如何configurationEC2自动缩放以在生成新实例时自动附加和EBS卷。
理想情况下,当产生新实例时,我们试图实现以下目标。
从主实例生成快照,该实例是组中当前活动的实例之一(这可能会随着自动缩放添加和删除实例而变化)。
从我们的AMI创build一个新的实例
从1中的快照创build一个EBS卷。
将卷连接并挂载到实例
将新实例添加到负载均衡器。
这可能吗。 关键问题是与处理EBS方面的东西… … –
任何build议
一些基本的API调用可能会达到某种程度。 如何使API调用取决于你,他们可以使用已经在path中的工具(或者至less它们已经在那里)或者通过使用Amazon已经构build的SDK的各种库从命令行完成,包括Java,Ruby,Python,PHP和.NET。 下面的说明针对的是使用bash脚本的linux机器,尽pipe它们有类似的Windows命令,但我不知道与它们的使用有关的怪癖。
我使用AMI来引用亚马逊机器映像和API调用,以引用命令行工具(都称为AMI工具)和API工具,因为它们的命名是唯一的。
要从EBS卷生成快照,必须将卷从实例中分离出来。 要在生产环境中执行此操作,您可能希望只有一个只写操作日志的从服务器,因此您可以卸载该服务器,快照,重新挂载驱动器,并应用任何缺less的操作来进行跟踪。
从已部署的AMI绑定新实例相当简单。 理想情况下,您的AMI设置为使所有大多数静态信息(configuration,库,安装的程序等)位于设备的临时存储器上,并且所有数据(dbs,日志等)都存储在所连接的驱动器上。 这是理想的,因为AMI绑定命令需要lockingFS,但允许您排除某些目录。 注意:对于其中的每一个,您都需要提供您的亚马逊凭证,其中涵盖了您的帐户页面中的多项内容,包括您的访问密钥ID,秘密访问密钥,证书,私钥和AWS账户ID。
使用API调用从快照创buildEBS很容易。
要附加和安装驱动器,您需要在操作系统命令上执行API调用的组合。
再次,另一个API调用。 我通过自动脚本使用这个方面没有太多的经验,但是它应该像调用elb-register-instances-with-lb一样简单。
请务必使用这些调用的响应进行error handling。 几个月前,我特别烦恼ec2-upload-bundle调用超时,并没有完成上传整个图像。 如果您决定使用SDK,那么这些步骤应该与SDK中包含的所有Amazon API命令大致相同,尽pipe语法不同。