AWS EC2をNameタグ一致で起動するためのツーライナー


ツーライナーなんて言葉があるかどうかはともかく…。

AWS CLIを利用してNameタグからインスタンスIDのみを抽出する場合は以下のようにします。TAG_NAMEという環境変数にNameタグで抽出したい内容を入れましょう。配列であることを必要としてないので、outputはtextにしています。

export TAG_NAME=FOOBAR
aws ec2 describe-instances \
  --filters \
  Name=tag-key,Values=Name,\
  Name=tag-value,Values=$TAG_NAME \
  --query \
  'Reservations[].Instances[].InstanceId' \
  --output text

上記のタグからのインスタンスID取得を用い、以下のようなコマンドを発行することでタグ名からのインスタンス起動・停止が出来ます。

export TAG_NAME=FOOBAR
aws ec2 start-instances \
  --instance-id \
  $(aws ec2 describe-instances \
    --filters \
    Name=tag-key,Values=Name,
    Name=tag-value,Values=$TAG_NAME \
    --query \
    'Reservations[].Instances[].InstanceId' --output text)
export TAG_NAME=FOOBAR
aws ec2 stop-instances \
  --instance-id \
  $(aws ec2 describe-instances \
    --filters \
    Name=tag-key,Values=Name,
    Name=tag-value,Values=$TAG_NAME \
    --query \
    'Reservations[].Instances[].InstanceId' --output text)