如何使用打包程序更新自定义AMI并与自动缩放组集成?

时间:2016-05-26 18:26:28

标签: amazon-web-services amazon-ec2 ami packer

目标:维持启动实例以实现负载平衡的最短启动时间,并缩短故障排除时间。

方法:

  1. 为ec2-instances创建基本自定义AMI
  2. 在每个版本和s / w补丁(与健康运行实例相关的代码和软件更新)上更新/重新绑定自定义AMI。 2.A.可以使用Packer /任何CI用法进行更新吗?如果是这样,怎么样? (无法在包装文件中找到逐步的方法)
  3. 使用厨师自动执行步骤1和步骤2.
  4. 将此AMI集成到自动缩放组中(对此进行实验)。
  5. 将负载均衡器映射到ASG [完成]。
  6. 通过在失败时使用LB中的更新AMI实例来保持所需的实例数。
  7. Crux:终止不健康的实例并尽快使用ami调出健康的实例。

    - P.S: 我浏览了[http://blog.kik.com/2016/03/09/using-packer-io-to-optimize-and-manage-ami-creation/]https://alestic.com/的很多帖子。

    使用docker退出讨论。

    但仍无法找到明确的方法。

1 个答案:

答案 0 :(得分:1)

在现有ASG中交换新AMI的最简单方法是更新启动配置,然后逐个使用旧AMI ID终止任何实例。 ASG将根据需要启动新实例,这应该使用新的AMI。如果你想获得更好的功能(比如让旧实例保持活动状态以便快速回滚),请检查Spinnaker等工具,将每个新AMI作为新的相应ASG,然后重新映射ELB,以便在未检测到任何问题时交换流量,然后再当您确定部署良好时,它会终止旧ASG和所有相关实例。