amazon aws自动缩放组实例名称标记

Kas*_*sun 6 amazon-web-services autoscaling

如何创建自动缩放组,使用包含+的名称标签创建实例?

当前标签

Name    LIVE
Run Code Online (Sandbox Code Playgroud)

但我想改变它

Name    LIVE-ap-southeast-1a
Run Code Online (Sandbox Code Playgroud)

小智 7

我的理解是,您希望将Key = Name Value = LIVE更改为Key = Name Value = LIVE-ap-southeast-1a,以便使用自动缩放组创建实例.

在步骤4中创建Auto Scaling组时.配置标记可以指定标记Key和Value.确保选中"标记新实例"复选框(默认情况下):

在此输入图像描述

如果您已配置Auto Scaling组,则可以选择该组并对其进行编辑:

在此输入图像描述

我测试了这些步骤并确认通过自动缩放创建的新实例显示了正确的键和值:

在此输入图像描述

供参考,以下是AWS的自动缩放标记指南:

http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASTagging.html

  • 我想动态标记可用区.例如:当在可用区A中自动创建新实例时,它应标记为LIVE-A,如果在可用区B中启动实例,它应标记为LIVE-B (6认同)

Dud*_*001 7

您可以使用EC2 实例的EC2 用户数据脚本动态初始化您的实例(包括标签)。EC2 用户数据脚本是从 EC2 Auto Scaling 启动配置/模板中设置的。

以运行 AWS Linux 2 的 EC2 为例,bash 脚本可以使用EC2 元数据服务来获取启动的实例的可用区及其 EC2 实例 ID。然后在 AWS CLI 中使用ec2 create-tags命令设置实例的名称标签。

#!/bin/bash -x
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1

# Get Instance MetaData
AVAILABILITY_ZONE=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
REGION=${AVAILABILITY_ZONE::-1}
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)

# Dynamically set instance name
aws ec2 create-tags --region $REGION --resources $INSTANCE_ID --tags Key=Name,Value=LIVE-$AVAILABILITY_ZONE
Run Code Online (Sandbox Code Playgroud)

您的 EC2 实例 IAM 角色将需要附加一个允许ec2:CreateTags对 EC2 实例执行操作的策略。您可以在策略语句中使用条件,仅允许在从 EC2 Auto Scaling 组创建的 EC2 实例上创建标签,从而为您的角色提供创建标签所需的最低权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:{aws_region}:{aws_account}:instance/*",
            "Condition": {
            "StringEquals": {
                "ec2:ResourceTag/aws:autoscaling:groupName": [
                    "prod-as-group"
                ]
            }
        }
    ]
} 
Run Code Online (Sandbox Code Playgroud)