対象
やってみる
前提
- パラメータ変更しない画面のSSは撮っていないです
EC2の作成
- 3台立てて、2台に
custom-metrics:enable
のタグを付ける(1台はcustom-metrics:disable
) - 以下のキャプチャはインスタンス一気に3台たてて、タグだけ変更している
- Security GroupのSSHは
マイ IP
(自宅のIP)のみ許可(マイIP選択すると自動でIPを取得してくれる) - 右上の歯車から、custom-metricsのチェックを入れて一覧にタグを表示させる
- タグを手動で変えておく(ec2-01,03のみRun Commandの対象とする)
IAMロール作成
- IAMロール新規作成で、
AmazonEC2RoleforSSM
をアタッチする - IAMロールに適当な名前をつける
- IAMロールをEC2にアタッチする(EC2作成のときに一緒にやっとけばよかった・・・)
コマンドの実行
AWS-RunShellScript
()を選択する。。。がフィルタ効いてないぞコレ・・・AWS-RunShellScript
はRun a shell script or specify the commands to run.
- Run Commandを実行するターゲットを指定する
custom-metrics
タグがenable
になっているものが対象- Commandは丸パクリの丸パクリでコピペ!
- Command実行!
- ってあれ?対象のインスタンスIDがないぞ・・・
- もう一度ターゲットを見てみる
- 手動選択でも候補に出てきていない・・・
- 条件満たしてないのかなコレ・・・
ターゲットが出てこない原因
続き
- EC2を全部再起動したら候補にでた!
- Run Commandを実行したら、
custom-metrics:enable
の2台だけ実行されている模様
CloudWatch確認
- メトリクスが来ていない・・・
メトリクスが来ていなかった原因
- CloudWatchは5分おきでメトリクス取得というのを忘れてた・・・
- 5分待ったらでた!!!
まとめ
- Run Commandを実行するEC2にSSMエージェントが必要
- IAMインスタンスプロファイルのロールを変更したときは、SSMエージェントを再起動する必要があるらしい
- CloudWatchのメトリクスはデフォルト5分間隔(たしか課金すると1分間隔にできる)
- タグ付けしたEC2に対して一斉にコマンド実行できるのはよさそう