AWS Systems Manager マネージドインスタンスにタグ設定する

記事タイトルとURLをコピーする

AWS Systems Manager ハイブリッドアクティベーションで登録した外部サーバについてもタグ設定をしたいと思いました。 しかし、自アカウントのEC2インスタンスではないので、ECのコンソール画面やAPIでは表示されませんでした。

マネージメントコンソールでタグをつける

EC2ではなく、SSMの管理画面で設定できます。

AWS Systems Manager > フリートマネージャー

f:id:swx-watanabe:20211202150000p:plain

なお、設定後は一覧画面の更新ボタンを押してください。そうしないと画面反映されないことがあります。(私はハマりました

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年入社。趣味は言語学習。