kos31de.txt

140文字に収まらないテクノロジーとか日常とかのこと

EC2インスタンスにインスタンス名を指定して、tagを一括付与するシェルスクリプト

TerraformなどのIaC管理があれば、そちらにコードを追記しましょう。

IaCがないインスタンスの場合は以下のようなスクリプトを使うと便利です。

your-instance-name, your_key, your_valueは適宜置き換えて下さい。

また、envchainを使っている前提です。

#!/usr/bin/env zsh

instance_names=(
"your-instance-name-001"
"your-instance-name-002"
)

for instance_name in "${instance_names[@]}"; do
  instance_id=$(envchain aws-hoge aws ec2 describe-instances --filter "Name=tag:Name,Values=$instance_name" --query "Reservations[].Instances[].InstanceId" --output text)
  envchain aws-hoge aws ec2 create-tags --resources $instance_id --tags Key=${your_key},Value=${your_value}
done

一度に付与できる上限は恐らく1000件です。

必要であればエラーハンドリングなどを追加するといいと思います。

ChatGPTでサクッとこういうのが作れて、便利ですね。