amazon aws Auto Scaling 组实例名称标签
Posted
技术标签:
【中文标题】amazon aws Auto Scaling 组实例名称标签【英文标题】:amazon aws auto scaling groups instance name tag 【发布时间】:2016-01-17 09:01:00 【问题描述】:如何创建 Auto Scaling 组以创建名称标签包含 + 的实例?
当前标签
Name LIVE
但我想改成
Name LIVE-ap-southeast-1a
【问题讨论】:
【参考方案1】:我的理解是你想把 Key=Name Value=LIVE 改为 Key=Name Value=LIVE- ap-southeast-1a 适用于使用 Auto Scaling 组创建的实例。
当您在步骤 4 创建 Auto Scaling 组时。配置标签可以指定标签的Key和Value。确保选中“标记新实例”复选框(默认情况下):
如果您已经配置了 Auto Scaling 组,则可以选择该组并对其进行编辑:
我测试了这些步骤并确认自动缩放创建的新实例显示正确的键和值:
作为参考,这里是 AWS 关于自动扩展标记的指南:
http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/ASTagging.html
【讨论】:
我想动态标记可用区。例如:在可用区 A 中自动创建新实例时,应标记为 LIVE-A,如果在可用区 B 中启动实例,则应标记为 LIVE-B【参考方案2】:您可以使用 EC2 实例的 EC2 user data 脚本来动态初始化您的实例,包括标签。 EC2 用户数据脚本是从您的 EC2 Auto Scaling 启动配置/模板中设置的。
以运行 AWS Linux 2 的 EC2 为例,bash 脚本可以使用 EC2 metadata service 来获取启动实例的可用区及其 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
您的 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"
]
]
【讨论】:
以上是关于amazon aws Auto Scaling 组实例名称标签的主要内容,如果未能解决你的问题,请参考以下文章