我已经设置了一个在ubuntu基础映像上安装和设置应用程序堆栈然后从机器创建AMI的过程。所有这些都是使用包装机自动完成的。现在,一旦我有了ami-id,一旦打包器完成,我手动创建一个新的启动配置并更新我的ASG配置,然后安排向上扩展和缩小操作,从而摆脱旧实例。
所以我要找的是:
答案 0 :(得分:3)
Faster Auto Scaling in AWS CloudFormation Stacks with Lambda-backed Custom Resources
有一个很好的策略要编排此过程,请使用a引导引用实例 用户数据脚本,使用等待条件触发AMI捕获,以及 最后创建一个Auto Scaling组启动配置 引用新创建的AMI。使用的引用实例 然后可以终止捕获AMI,或者可以将其重新用于 管理访问或执行计划任务。
该过程不使用Packer,也不需要专用服务器来创建AMI,而是使用Lambda支持的自定义资源。
由于您已经在Packer中创建了AMI,因此您应该考虑使用Lambda使用更新的AMI复制现有的启动配置。你可以从Patch an AMI and Update an Auto Scaling Group找到一个很好的方法:
以下示例以Simplify AMI Patching Using为基础构建 Automation,Lambda和Parameter Store示例,通过添加一个步骤 使用新修补的AMI更新Auto Scaling组。这个 方法确保自动提供新图像 使用Auto Scaling组的不同计算环境。
此示例中自动化工作流程的最后一步使用AWS Lambda函数用于复制现有的启动配置并设置 新修补的AMI的AMI ID。然后是Auto Scaling组 使用新的启动配置进行更新。在这种类型的汽车 扩展方案,用户可以终止Auto中的现有实例 缩放组以强制启动使用新实例的新实例 图片。或者,用户可以等待并允许扩展或向外扩展事件 自然地推出更新的实例。