【问题标题】:Boot strapping AWS auto scale instances引导 AWS 自动扩展实例
【发布时间】:2014-08-28 12:38:31
【问题描述】:

我们正在客户讨论如何引导自动扩展 AWS 实例。本质上,一个实例几乎没有任何东西。它有一个通用的启动脚本,会在某处询问“我接下来应该做什么?”

我想我们可以使用亚马逊标签,并让实例本身使用 awscli 工具集询问 AWS 以找出它的角色。这可以提供 puppet 信息、环境信息(例如 dev/stage/prod)等等。这应该只使用 DescribeTags 权限即可。然而,我面临着阻力。

我正在寻找有关新 AWS 实例如何了解其自身用途的建议,无论是来自 AWS 还是来自某种服务代理。

【问题讨论】:

  • 不会将此作为答案(除非它实际上是您的答案),但我们标记并让实例使用您需要的一切提取 RPM(或 deb)。
  • 在你的实现中,虚拟机如何找到它自己的标签,这是否暗示了它安装的 RPM 的名称?
  • 编写启动脚本,查询api并安装相应的包

标签: amazon-web-services amazon-ec2 autoscaling


【解决方案1】:

EC2 实例提供了一项名为 User Data 的功能,旨在解决此问题。用户数据执行一个 shell 脚本以在新实例上执行配置功能。一个典型的模式是使用用户数据下载或克隆配置管理源存储库,例如 Chef、Puppet 或 Ansible,并在机器上本地运行以执行更完整的配置。

正如@e-j-brennan 所说,预先捆绑已配置的 AMI 也很常见。这种方法速度更快,因为不需要在启动时进行配置,但可能不太灵活,因为实例不是自定义的。

您可能还对instance metadata 感兴趣,它通过只有实例本身可访问的 URL 路径公开一些数据,例如网络详细信息和标签。

【讨论】:

    【解决方案2】:

    不过,实例不必提出“几乎没有任何东西”。您可以/应该构建自己的自定义 AMI(Amazon 机器映像),并在其上运行您需要的任何和所有软件,并且当您需要自动扩展实例时,您可以从之前创建并保存的 AMI 启动它.

    http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/getting-started-create-custom-ami.html

    【讨论】:

      【解决方案3】:

      我建议使用 AWS Beanstalk 来创建特定实例,这样会更容易,因为它会创建 AutoScaling 组和启动配置(启动代码),您可以稍后对其进行编辑。此外,您只需为 EC2 实例付费,并且可以从 Beanstalk 控制台管理大部分内容。

      【讨论】:

        猜你喜欢
        • 2020-05-12
        • 2020-11-07
        • 2018-08-09
        • 1970-01-01
        • 2020-04-08
        • 1970-01-01
        • 2018-08-20
        • 2014-11-06
        • 2017-11-14
        相关资源
        最近更新 更多