我是 AWS 新手,正在学习 AWS 的自动扩展功能。我创建了一个自动扩展组,其中最小实例为 1,最大实例为 1。
出于实验目的,每当我终止属于此自动缩放组的实例时,AWS 都会自动创建一个新实例,这是正确的,因为我的最大实例设置为 1。
但问题是,这个自动创建的新实例中没有数据,并且与我出于实验目的终止的旧实例不同步。所以我的问题是,如果新创建的实例没有数据(源代码等)并且与旧实例不同步,那么自动缩放有什么用呢?
谢谢,
答案1
自动缩放可以做一件事:
- 根据定义的标准启动/停止 AMI。
就是这样。请注意,它所做的事情列表中缺少“拉取最新代码”步骤。Autoscaling 假设您正在解决 Autoscaling 之外的代码部署问题。也许可以通过以下方法:
- 每次推送代码时创建一个新的 AMI,并更新自动缩放配置以使用该新 AMI。
- 使用实例的用户数据脚本在启动时提取新代码。
- NFS 挂载代码库,通过外部方式保持最新状态。
或者其他什么。您必须解决这个问题,自动缩放不会为您解决这个问题。
答案2
自动扩展需要预装应用程序的 AMI,或者使用用户数据脚本的启动配置来设置某种自动部署机制,例如 Puppet 或 Chef。您还需要设置自动扩展策略,以便随着集群负载的增加或减少而扩大或缩小您的集群。
如果您要从头开始完成所有这些工作,我建议您设置 VPC 并使用 Amazon OpsWorks。OpsWorks 基于 Chef,因此您需要使用 Chef。但 Opsworks 会负责将 Chef 注入您的实例并将它们指向 Chef 服务器,以及负责配置自动扩展组及其启动配置。
https://console.aws.amazon.com/opsworks/home?region=us-east-1#
在推出 Opsworks 之前,我已经有一个基于 Cloudformation 和 Puppet 的现有解决方案,因此我无法进一步帮助您,但阅读上述 URL 应该可以为您提供一些线索。