EC2更新我现有的AMI


18

我正在使用Elastic Load Balancing来平衡Auto Scaling组的负载,因为我有一个专用AMI,可将我的应用程序服务器(Tomcat)和Web应用程序部署到战争中...现在一切正常...什么如果我需要在AMI上更改tomcat配置。不需要启动我的AMI->登录+更改Tomcat配置->创建新的AMI->删除旧的AMI我认为创建新的AMI不是解决方案,因为它需要更新我的Auto Scale组以添加我的新AMI

有没有一种方法可以在不创建新AMI的情况下更新现有AMI中的数据?我只想拥有相同的AMI ID

Answers:


5

您可以使用启动实例时运行的用户数据脚本来更新配置。

脚本中的内容取决于在文件系统级别上如何管理配置。我个人将我的配置文件放在Mercurial存储库中,只需做一个pull更新即可。


我认为您的答案是正确的,但我认为这是一个很棘手的问题……难道没有一种方法可以只更新保持相同AMI ID的AMI映像吗?
哈迪·塞勒姆

3
不幸的是,我认为这是不可能的。来自Amazon doc:“ AMI ID与映像中的物理位相关联。为了保护用户免受映像的修改,我们要求您在重新捆绑后重新注册Amazon EC2实例AMI。”
David Levesque 2013年

无法修改现有的AMI映像。您必须创建一个新的。
Matt Houser 2013年

IMO使用用户数据部署配置更为优雅。人们也倾向于在实例创建时安装服务。您可能还想研究使用CloudFormation模板。
Edwin 2013年

我想我将使用带有自定义AMI的BeanStalk,它将使我的生活更加轻松,无需通过自动缩放设置负载均衡器,并且在需要更改服务器配置的情况下,我将创建自己的脚本..谢谢大家
哈迪·塞勒姆

3

无法更新现有的AMI并保留相同的AMI ID。您将需要创建新的自定义AMI并更新Auto Scaling组的启动配置,或者更改您的设置以在启动基本AMI实例后按照@DavidLevesque的建议将更改应用于实例。

这是一种常见的体系结构,例如在启动时从S3下载应用程序,配置和数据。


+1有关架构提示位的注释
Jmoney38

0

这看起来像是一个旧帖子。但是,如果您仍然处在同样的困境中,则可以考虑使用实例存储支持的Windows AMI(捆绑任务)。它也类似于AMI,但是由于实际上创建了图像本身并将其存储在S3存储桶中,因此您对图像本身拥有更多的控制权。这样一来,您便可以在需要时不时地更新AMI的基础映像,而不必创建新的AMI(至少这就是我的理解)。

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console


仅供参考...“实例存储支持的唯一Windows AMI是Windows Server 2003的实例。实例存储支持的实例没有更高版本的Windows Server所需的可用磁盘空间。”
Rich C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.