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とかで回すと吉