EC2の起動時にタグを使って環境ごとに処理を分ける

awsでAutoScalingGroupでAMIを使いたいけど、環境ごとに処理を変えたい場合がある。

例えばステージング用のAutScalingGroupと本番用のAutoScalingGroupがあって起動設定は同じだけど、中で環境ごとに処理を変えたい場合にタグがとても便利

 

AutoScalingGroupにタグを設定するとそこで立ち上がるEC2インスタンスにタグを引き継ぐことができる。

下のスクリプトでTAG_NAMEというタグの値を取得するとこができる

ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`
TAG_VALUE=`aws ec2 describe-tags --filter "{\"Name\":\"resource-id\",\"Values\": [\"$ID\"]}" --query 'Tags[?Key==\`TAG_NAME\`][Value]' --region ap-northeast-1 --output text`

タイミングによってはうまく取得できないのでwhileとかで回すと吉