AWS Systems Manager ハイブリッドアクティベーションで登録した外部サーバについてもタグ設定をしたいと思いました。 しかし、自アカウントのEC2インスタンスではないので、ECのコンソール画面やAPIでは表示されませんでした。
マネージメントコンソールでタグをつける
EC2ではなく、SSMの管理画面で設定できます。
AWS Systems Manager > フリートマネージャー
なお、設定後は一覧画面の更新ボタンを押してください。そうしないと画面反映されないことがあります。(私はハマりました
AWS CLIでタグをつける
一台ずつ設定
例えば、Nameタグを以下コマンドで設定できます。
aws ssm add-tags-to-resource \ --resource-type "ManagedInstance" \ --resource-id "mi-012345678901234" \ --tags "Key=Name,Value=host1"
add-tags-to-resource — AWS CLI 2.4.4 Command Reference
一括設定
例えば、mi.csvという「Nameタグにつける値」,「インスタンスID」が書かれたCSVを作ります。
host1,mi-012345678901239 host2,mi-012345678901234 host3,mi-012345678901232 host4,mi-012345678901231 host5,mi-012345678901233
次に、add_name_tag.shというシェルスクリプトを作ります。
#!/bin/bash while read row; do instance_name=$(echo ${row} | cut -d , -f 1) instance_id=$(echo ${row} | cut -d , -f 2) aws ssm add-tags-to-resource \ --resource-type "ManagedInstance" \ --resource-id "${instance_id}" \ --tags "Key=Name,Value=${instance_name}" done < $1
十分なIAM権限のある環境で実行します。
$ ./add_name_tag.sh mi.csv
渡辺 信秀(記事一覧)
2017年入社 / 地味な内容を丁寧に書きたい