amazon aws auto scaling 组实例名称标签
amazon aws auto scaling groups instance name tag
如何创建 Auto Scaling 组来创建名称标签包含 + 的实例?
当前标签
Name LIVE
但是我想改成
Name LIVE-ap-southeast-1a
我的理解是,您想将 Key=Name Value=LIVE 更改为 Key=Name Value=LIVE-ap-southeast-1a 对于使用自动缩放组创建的实例。
当您在第 4 步创建 Auto Scaling 组时。 Configure Tags 你可以指定标签的Key和Value。确保选中 "Tag New Instances" 复选框(默认情况下):
如果您已经配置了 Auto Scaling 组,您可以 select 组并对其进行编辑:
我测试了这些步骤并确认自动缩放创建的新实例显示了正确的键和值:
作为参考,这里是 AWS 的自动缩放标记指南:
http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASTagging.html
您可以使用 EC2 实例的 EC2 user data 脚本来动态初始化您的实例,包括标签。 EC2 用户数据脚本是从您的 EC2 Auto Scaling Launch Configuration/Template.
设置的
以 EC2 运行 AWS Linux 2 为例,bash 脚本可以使用 EC2 metadata service to fetch the availability zone the instance launched in and its EC2 instance id. Then with the AWS CLI set the Name tag of the instance using the 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
您的 EC2 实例 IAM 角色需要附加一个允许对 EC2 实例执行 ec2:CreateTags
操作的策略。您可以在策略声明中使用条件,仅允许在从您的 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"
]
}
}
]
}
如何创建 Auto Scaling 组来创建名称标签包含 + 的实例?
当前标签
Name LIVE
但是我想改成
Name LIVE-ap-southeast-1a
我的理解是,您想将 Key=Name Value=LIVE 更改为 Key=Name Value=LIVE-ap-southeast-1a 对于使用自动缩放组创建的实例。
当您在第 4 步创建 Auto Scaling 组时。 Configure Tags 你可以指定标签的Key和Value。确保选中 "Tag New Instances" 复选框(默认情况下):
如果您已经配置了 Auto Scaling 组,您可以 select 组并对其进行编辑:
我测试了这些步骤并确认自动缩放创建的新实例显示了正确的键和值:
作为参考,这里是 AWS 的自动缩放标记指南:
http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASTagging.html
您可以使用 EC2 实例的 EC2 user data 脚本来动态初始化您的实例,包括标签。 EC2 用户数据脚本是从您的 EC2 Auto Scaling Launch Configuration/Template.
设置的以 EC2 运行 AWS Linux 2 为例,bash 脚本可以使用 EC2 metadata service to fetch the availability zone the instance launched in and its EC2 instance id. Then with the AWS CLI set the Name tag of the instance using the 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
您的 EC2 实例 IAM 角色需要附加一个允许对 EC2 实例执行 ec2:CreateTags
操作的策略。您可以在策略声明中使用条件,仅允许在从您的 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"
]
}
}
]
}