📊
AWS SystemMangerからCloudWatchAgentをインストールし、CloudWatchのメトリクスにメモリ使用率を表示する
備忘録として。
1.IAMロールの作成 & EC2にロールをアタッチ
下記ポリシーがアタッチされていればOK。
- AmazonEC2RoleforSSM
- CloudWatchAgentServerPolicy
- AmazonSSMManagedInstanceCore
ロール名: ec2-cloudwatch-role
2. CloudWatchAgentをインストール
「SystemManager > ノード管理 > Run Command」から、コマンドを実行。
コマンド名: AWS-ConfigureAWSPackage
デフォと比較して変更するのは、NameとVersionのみ。
Name: AmazonCloudWatchAgent
Version: latest
※この時、インスタンスリストに存在しない場合があるが、下記を確認する。
- 1で作成したロールがアタッチされているかどうか(「AmazonEC2RoleforSSM」がアタッチされていることが必須)
- そもそもSSM Agentが入っているインスタンスかどうか
3. パラメータストアで設定を保存
パラメータ名: AmazonCloudWatch-ManageAgent-Parameter
{
"agent":{
"metrics_collection_interval":60,
"run_as_user":"root"
},
"metrics":{
"append_dimensions":{
"AutoScalingGroupName":"${aws:AutoScalingGroupName}",
"ImageId":"${aws:ImageId}",
"InstanceId":"${aws:InstanceId}",
"InstanceType":"${aws:InstanceType}"
},
"metrics_collected":{
"disk":{
"measurement":[
"used_percent",
"inodes_free"
],
"metrics_collection_interval":60,
"resources":[
"*"
]
},
"mem":{
"measurement":[
"mem_used_percent",
"mem_available_percent"
],
"metrics_collection_interval":60
},
"swap":{
"measurement":[
"swap_used_percent"
],
"metrics_collection_interval":60
}
}
}
}
「append_dimensions」を入れることで、Cloudwatchのメトリクスを選択するときにインスタンスIDとかAMIのIDで逆引きできるようになる。
メトリクスの集約もできるみたいだが、今回は必要なかったので省略。
詳しくはこちら
4. 3で作成したパラメータを適用
「SystemManager > ノード管理 > Run Command」から、コマンドを実行。
コマンド名: AmazonCloudWatch-ManageAgent
デフォと比較して変更するのは、Optional Configuration Locationのみ。
Optional Configuration Location: 3で作成したパラメータの名前
Discussion