当在s3中插入新对象时,按比例放大

我想按照以下方式设置自动缩放

  • 我将网站数据存储为aws s3存储区中的zip(未启用版本控制)
  • 当一个实例在自动扩展中启动时,用户数据将具有用于从s3桶中获取zip文件的shell脚本,并将其解压到适当的位置。
  • 将来,当我有zip文件的版本2时,自动缩放应该停止服务旧网站的旧实例。 新的实例应该与新的网站(具有相同的用户数据shell脚本)分离。

如何实现这个?

我想你会想build立一个CodeDeploy和CodePipeline来做到这一点。 Codepipeline可以监控源s3,然后将更新发送到codedeploy以更新EC2实例。

http://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html

http://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html

我不认为这是可能的使用默认的自动缩放。

自动缩放终止策略是:

  1. 以最大数量的实例终止AZ中的实例。
  2. 最早的启动configuration
  3. 计费时间最近
  4. 随机

如果您有一个AZ,则解决scheme可能是更改启动configuration。 即使这只是当前的一个副本就够了。 但这并不是直接的,如果事情经常发生,那最后就是这样。

如果您有多个AZ,新的启动configuration将最终生效。

您可以手动保护实例终止 。 这是手动,但你必须改变他们在每个zip文件的版本。

Lambda为您提供了很多function和灵活性。 您可以让CloudWatch事件触发Lambda函数。 该函数可以检查最新的zip文件的date和实例启动的date,并可以终止比zip文件更早的实例。 这可能是最好的自动化的方式来做事情。

手动终止可能是最简单的,只要你不经常发布zip文件。

问题:

  • 你使用了多less个AZ?
  • 你多久发一次压缩文件?