0
0

More than 1 year has passed since last update.

AWS:EC2のユーザーデータで、タグNameの値を自動付与

Last updated at Posted at 2023-01-27

名前のとおり。通常NameタグはGUIなどで入力していくが、AutoScalingのインスタンスなどの場合、増減を勝手にした場合にいちいちGUIで設定していくのはしんどい。
EC2のNameタグには、そのインスタンスがどのアベイラビリティーゾーンに属するのかを識別するために、ゾーン名(AとかCとか)を付与する場合が多い。そういうとき、ユーザーデータに以下シェルを設定しておくと自動で名前をつけてくれる。

前提条件
・今回の場合「SERVERNAME-AZNAME」というNAMEタグの命名規則としている。このとき、AZNAMEの部分を自動的に付与する。
・AmazonLinux2またはRHELインスタンスで対応可能。

bash(USER DATA)
#!/bin/bash

IID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`
REG_ZONE=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
AZ=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | tail -c1`
variable=${REG_ZONE}
length=${#variable}
REG=${variable::length-1}
wait
aws --region ${REGION} ec2 create-tags \
    --resources ${IID} --tags Key=Name,Value=SERVERNAME-${AZ}

メタデータ情報より、自身のインスタンスID、リージョンとゾーン情報を取得。
ゾーン情報とリージョンを分離して抽出。
そうしたらawsコマンドのcreate-tagsで、上記の情報をもとにNameタグを設定。
AutoScaling環境で利用すると便利。

追記 2023/3/16

IAMポリシー、IAMロールの設定が必要のため、追記しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0