Run Commandのターゲットとしてリソースグループが選択可能になりました
ご機嫌いかがでしょうか、豊崎です。
先月末にAWSからRunCommandの実行先としてリソースグループが追加されましたとアナウンスがありました。
リソースグループが AWS Systems Manager Run Command のターゲットとして選択可能に
今までRunCommandでは対象リソースを、特定のタグが付与されているリソース、または手動選択する。の2通りから選択することができました。
今回、実行先にリソースグループが追加されたことで、環境ごとや、役割ごとにリソースグループでリソースを管理している場合にRunCommandからの一括の操作が行いやすくなりました。
リソースグループについてはこちらの記事を参照ください。
やってみた
前提
本番環境と開発環境をそれぞれリソースグループでAmazonLinux2を2台管理しているものとします。また、各EC2ではSSMが利用できるIAMRoleが付与されているものとします。
- リソースグループ名
- env-prod:本番環境
- env-dev:開発環境
リソースグループを指定してRunCommandを実行
本記事では、本番環境のリソースグループを指定して、RunCommandから curl -s http://169.254.169.254/latest/meta-data/instance-id
を実行して自身インスタンスIDを取得するコマンドを実行してみます。
ちなみに今リソースグループは以下のように設定されていて、各環境のリソースグループに2台ずつEC2インスタンスが登録されている状況です。
その状態でAWS Systems Manager ダッシュボードの左ペインのコマンドの実行を選択して、コマンド実行から進みます。
コマンドのドキュメントはAWS-RunShellScriptを選択します。
本記事では、コマンドパラメータに以下の、メタデータからインスタンスIDを取得するcurlコマンドを一行書いて実行をさせることにしました。
curl -s http://169.254.169.254/latest/meta-data/instance-id
そしてターゲットの箇所で Choose a resouece group を選択して、リソースグループ env-prod を選択します。他のオプションは特にせずに実行しました。
コマンドのステータスの画面でターゲットが2つになっています。
うち1台のEC2で実行されたコマンドの出力を確認したところ、無事EC2のインスタンスIDが出力されていることを確認しました。
まとめ
リソースグループで環境を管理している場合、リソースグループ単位にRunCommandが実行することができるので、メンテナンスや処理の管理がしやすくなりました。この記事が誰かのお役に立てば幸いです。