Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

标记 Auto Scaling 组和实例

通过以标签 的形式将自己的元数据分配给每个组,您可以对 Auto Scaling 组进行组织和管理。可为每个标签指定。键可以是具有特定关联值的一般类别,例如“project”、“owner”或“environment”。例如,为了区分测试环境和生产环境,您可能为每个 Auto Scaling 组分配一个带有“environment”键的标签。 请使用“test”值表示测试环境,或使用“production”表示生产环境。我们建议您使用一组一致的标签来帮助您跟踪 Auto Scaling 组。

此外,您可以将 Auto Scaling 组中的标签传播到它启动的 Amazon EC2 实例。通过标记实例,您可以在 AWS 账单中按标签查看实例成本分配。有关更多信息,请参阅 AWS Billing and Cost Management 用户指南 中的使用成本分配标签

创建 Auto Scaling 组后,您可以将一个或多个标签添加到该组。您还可以添加、列出、编辑或删除现有 Auto Scaling 组的标签。

您可以控制您账户中的哪些 IAM 用户和组拥有创建、编辑或删除标签的权限。有关更多信息,请参阅 控制对您 Amazon EC2 Auto Scaling 资源的访问权。但请记住,在实例启动后,限制您的用户对 Auto Scaling 组执行标记操作的策略不会防止阻止他们手动更改实例上的标签。有关适用于 Amazon EC2 的 IAM 策略的信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的控制对 Amazon EC2 资源的访问

重要

您也可以通过在启动模板指定标签来将标签添加到实例。但是,请务必小心,并确保您不对实例标签使用重复的键。如果这样做,Amazon EC2 Auto Scaling 将使用 Auto Scaling 组指定的相同键的值覆盖启动模板中的标签值。有关在启动模板中指定标签的信息,请参阅为 Auto Scaling 组创建启动模板。通过在启动模板中指定标签,您也可以在创建 Amazon EBS 卷时将标签添加到卷。

标签限制

下面是适用于标签的基本限制:

  • 每个资源的最大标签数是 50。

  • 可以使用单个调用添加或删除的标签的最大数目为 25。

  • 最大键长度为 128 个 Unicode 字符。

  • 最大值长度为 256 个 Unicode 字符。

  • 标签键和值区分大小写。

  • 请勿在标签名称或值中使用 aws: 前缀,因为它预留给 AWS 使用。您不能编辑或删除具有此前缀的标签名称或值,它们不计入每个 Auto Scaling 组的标签数限制。

标记生命周期

如果您选择将标签传播到 Amazon EC2 实例,则按以下方式管理标签:

  • 在大多数情况下,当 Auto Scaling 组启动实例时,它会在资源创建期间向实例添加标记,而不是在创建资源之后。

    • 例外情况是您使用启动配置启动 Spot 实例时。对于这种情况,您的 Auto Scaling 组在实例处于 Pending 生命周期状态时添加标签。如果您具有生命周期挂钩,则标签在实例进入 Pending:Wait 生命周期状态时可用。有关更多信息,请参阅 Auto Scaling 生命周期。如果您需要 Auto Scaling 组作为启动 Spot 实例的同一 API 调用的一部分向实例添加标签,请考虑迁移到启动模板。有关更多信息,请参阅 启动模板

  • Auto Scaling 组会自动使用 aws:autoscaling:groupName 键和 Auto Scaling 组的名称的值向实例添加标签。

  • 您在附加现有实例时,Auto Scaling 组就会向这些实例添加标签,覆盖具有相同标签关键字的现有标签。此外,它还添加键为 aws:autoscaling:groupName、值为 Auto Scaling 组名称的标签。

  • 将实例从 Auto Scaling 组中分离时,它仅删除 aws:autoscaling:groupName 标签。

  • 在您手动缩减或 Auto Scaling 组自动缩减时,它会删除将要终止的实例的所有标签。

对 Auto Scaling 组添加或修改标签

当您向 Auto Scaling 组添加标签时,可以指定是否应将其添加到 Auto Scaling 组中启动的实例。如果修改标签,在更改后,标签的更新版本将添加到在 Auto Scaling 组中启动的实例。如果创建或修改 Auto Scaling 组的标签,不会对已经在 Auto Scaling 组中运行的实例进行这些更改。

添加或修改标签(控制台)

使用 Amazon EC2 控制台:

  • 创建新的 Auto Scaling 组后,将标签添加到这些组

  • 添加、修改或删除现有 Auto Scaling 组的标签

创建时标记 Auto Scaling 组

当您使用 Amazon EC2 控制台创建 Auto Scaling 组时,您可以在“创建 Auto Scaling 组”向导的配置标签页上指定标签键和值。要将标签传播到在 Auto Scaling 组中启动的实例,请确保该标签的标记新实例选项保持选中状态。否则,您可以取消选择它。

添加或修改现有 Auto Scaling 组的标签

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling 组

  3. 从列表中选择一个现有的组。

  4. Tags 选项卡上,选择 Add/Edit tagsAdd/Edit Auto Scaling Group Tags (添加/编辑 Auto Scaling 组标签) 页面列出了 Auto Scaling 组的任何现有标签。

  5. 要修改现有标签,请编辑 KeyValue

  6. 要添加新标签,请选择 Add tag,然后编辑 KeyValue。您可以使 Tag New Instances 保持选中状态,以便自动将标签添加到在 Auto Scaling 组启动的实例,否则取消选中它。

  7. 添加完标签后,选择 Save

添加或修改标签 (AWS CLI)

以下示例说明如何使用 AWS CLI 在您创建 Auto Scaling 组时添加标签,以及添加或修改现有 Auto Scaling 资源的标签。

创建时标记 Auto Scaling 组

  • 使用 create-auto-scaling-group 命令创建一个新的 Auto Scaling 组并将标签(例如 env=prod)添加到 Auto Scaling 组。该标签还会添加到在 Auto Scaling 组中启动的任何实例。

    aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config --min-size 1 --max-size 3 \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --tags Key=env,Value=prod,PropagateAtLaunch=true

创建或修改现有 Auto Scaling 组的标签

  • 可以使用 create-or-update-tags 命令创建或修改标签。例如,以下命令将添加 Name=my-asgcost-center=cc123 标签。在进行该更改后,该标签还会添加到在 Auto Scaling 组中启动的任何实例。如果具有任一键的标签已经存在,则会替换现有标签。Amazon EC2 控制台将每个实例的显示名称与为 Name 键指定的名称(区分大小写)关联。

    aws autoscaling create-or-update-tags \ --tags ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Name,Value=my-asg,PropagateAtLaunch=true \ ResourceId=my-asg,ResourceType=auto-scaling-group,Key=cost-center,Value=cc123,PropagateAtLaunch=true

列出 Auto Scaling 组的所有标签

  • 可以使用以下 describe-tags 命令列出指定的 Auto Scaling 组的标签。

    aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=my-asg

    以下为响应示例:

    { "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "prod", "Key": "env" } ] }
  • 或者,使用以下 describe-auto-scaling-groups 命令确认为 Auto Scaling 组添加了标签。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

    以下为响应示例:

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 1, "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "prod", "Key": "env" } ], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", ... } ] }

删除标签

您可以随时删除与 Auto Scaling 组关联的标签。

删除标签(控制台)

删除标签

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling 组

  3. 从列表中选择一个现有的组。

  4. Tags 选项卡上,选择 Add/Edit tagsAdd/Edit Auto Scaling Group Tags (添加/编辑 Auto Scaling 组标签) 页面列出了 Auto Scaling 组的任何现有标签。

  5. 选择标签旁边的删除图标。

  6. 选择 Save

删除标签 (AWS CLI)

可以使用 delete-tags 命令删除标签。例如,以下命令删除键为 env 的标签。

aws autoscaling delete-tags --tags "ResourceId=my-asg,ResourceType=auto-scaling-group,Key=env"

您必须指定标签键,但无需指定值。如果您指定了一个值,并且该值不正确,则不会删除标签。