【问题标题】:Indexing instances in AWS cloudformation auto scaling groupAWS cloudformation Auto Scaling 组中的索引实例
【发布时间】:2016-10-29 15:54:45
【问题描述】:

我正在尝试设置一个 AutoScalingGroup 并以某种方式在其中索引实例。我需要唯一的主机名:

  • DNS
  • 配置管理

这很容易使用 OpenStack HEAT - ResourceGroup(只需使用 %index%),但我在 AWS 世界中遇到了类似的功能......

所以基本上我需要的是例如:

主机名-0、主机名-1、主机名-2...等

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    这可能是自 OP 发生以来的一项新功能,但您可以在启动后通过元数据访问此功能:

    curl -s http://169.254.169.254/latest/meta-data/ami-launch-index

    文档: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html

    【讨论】:

    • 对于 ASG 中的实例,这始终为 0。
    【解决方案2】:

    您应该能够在每个实例的用户数据中执行一个脚本,该脚本根据某些逻辑设置实例的主机名 [1]。您可以设置实例的“名称”标签值 [2],而不是更改主机名。然后,您可以使用 AWS CLI 或 API 从“名称”标签中获取主机名。如果您的用例允许,这可能会更简单。

    [1]http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-hostname.html [2]http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html

    【讨论】:

    • 我知道如何设置没有问题的主机名、标签、dns 等。问题是在自动缩放组中使用一些索引。因此,例如,如果我将有 2 个主机,它们将被称为 hostname-0 and hostname-1 然后如果我将使用第三个主机更新组,我希望它被称为:-hostname-2
    • 您可以在任何数据存储(如 DynamoDB)中跟踪和递增计数器。您甚至可以执行 API 调用来获取当前组中的实例数并将其加 1。但你确定这是个好主意吗?自动缩放可以根据您的缩放策略终止实例,并且索引没有太大意义。
    • 我目前正在研究创建主机组(非自动缩放 -> 最小计数 = 最大计数),确切地说是固定数量的从站。在数据库中跟踪它们没有任何意义,它太复杂了。我可以根据很多事情在我这边做逻辑,例如。我的配置管理,描述组本身等 - 但这都是手动的,增加了复杂性。很难相信那里没有像索引这样简单的东西..
    • 抱歉,目前还没有自动化的方式来执行您所描述的操作。
    • 我们已经通过创建单例自动缩放组“解决”了这个问题。例如。对于 Zookeeper,我们有 5 个最小和最大计数为 1 的自动缩放组。缺点是您无法进行真正的缩放。你必须使用dependsOn属性来实现滚动部署
    猜你喜欢
    • 2016-12-25
    • 2018-07-27
    • 1970-01-01
    • 2018-09-22
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2018-03-25
    相关资源
    最近更新 更多