只是想获取一些有关 aws asg
的信息。
这是我的场景;
- 使用默认的
ubuntu ami
从launch config
启动asg
- 使用
ansible
在asg
中配置(安装所有必需的软件包和配置)实例 - 使用
python
将代码部署到实例
快乐的日子,一切都已准备就绪。
问题是,如果我应该更改 asg
的指标,以便终止所有实例,然后将其更改回原始指标,则新实例会显示为空白!没有软件包,没有代码!
1 - 这是预期的行为吗?
2 - 此外,如果 asg
有 2 个实例并扩展到 5 个,它会添加 3 个空白实例,还是复制 1 个正在运行的实例(包含代码和包)并启动 3 个新实例那些?
如果 1 是,我该如何解决这个问题?我需要使用预烘焙的图像吗?但即便如此,也没有最新的代码。
基本上,在非高峰时段,我希望能够将我的 asg
清零,这样就没有实例在运行,然后在高峰时段再次恢复。每天都必须重新配置和部署代码是没有意义的。
感谢任何帮助/建议。
最佳答案
您的方法出现的问题是您正在将代码部署到启动实例。因此,当您更改 ASG 指标实例关闭并再次启动时,它们将从 AMI 启动,因此它们会丢失代码和配置。请始终记住,在自动扩展中,新启动的实例是使用 ASG 正在使用的 AMI 和已启动的实例启动的。
为了避免这种情况,您可以使用用户数据来运行配置脚本,并在从 AMI 启动实例时将数据从存储库提取到每个实例上的实例,这样就不会启动空白实例.
阅读本开发者指南以了解用户数据
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
关于amazon-web-services - AWS AutoScaling - 实例生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39063764/