はじめに
本書ではIBM TurbonomicによってAWS EC2インスタンスのメモリデータを可視化する際に必要な設定手順をご紹介します。
TurbonomicをAWS環境へ接続いただくことでAWSリソースの利用状況を可視化できますが、メモリ情報を取得し、その使用率に応じてアクションを生成するためにはCloudWatch Agentが必要となります。
詳しくは以下マニュアルをご参照いただき、最新の手順をご確認ください。
IBMマニュアル
前提条件
※最新の情報はマニュアルをご確認ください
・対象EC2インスタンスに対して、SSM Agentがインストールされている
・EC2インスタンスがCloudWatchサービスへアクセスできる
(インターネット経由or直接)
・Turbonomicから監視対象のAWSアカウントへターゲット接続できている
※手前味噌ですが、接続にはこちらもご参考ください。
本設定で利用する各ツールの解説
参考までに構成イメージ図を作成しました。あくまでCopilotによる解説を踏まえた、当方の理解ですので、詳しくはAWSの公式ドキュメントをご参照ください。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/what-is-systems-manager.html
名前 | 役割 | 機能 |
---|---|---|
SSM Agent(AWS Systems Manager Agent) | EC2インスタンスをAWS Systems Managerの「マネージドノード」として扱うために必要なエージェント。 | Run Commandの実行やCloudWatch Agentのインストール・設定に利用 |
Run Command(AWS Systems Managerの機能) | EC2インスタンスに対してリモートでコマンドを実行する機能。 | TurbonomicではCloudWatch Agentのインストール(例: AWS-ConfigureAWSPackage ドキュメントを使用)したりCloudWatch Agentの設定適用(パラメータストアの内容を読み込む)に必要 |
Parameter Store(AWS Systems Managerの機能) | CloudWatch Agentの設定ファイル(JSON形式)を保存するためのストレージ。 | TurbonomicではCloudWatch Agentが読み込む設定(メモリ使用率などのメトリクス収集設定)を格納。Run CommandでCloudWatch Agentを設定する際に参照される。 |
CloudWatch Agent | EC2インスタンス上で動作し、メモリやディスク、CPUなどの詳細なメトリクスをCloudWatchに送信する。 | Turbonomicではメモリ使用率(MemoryUsedなど)をCloudWatchに送信し、Turbonomicがそれを取得して可視化。 |
手順概要 ※前提条件をご確認の上、実施ください
0.SSM Agentが導入されていることを確認する
1.監視対象のEC2インスタンスにIAMロールを設定する
2.CloudWatch エージェントをEC2インスタンスにインストールする
3.パラメーター・ストアとCloudWatch エージェントの構成データを作成する
4.CloudWatch パラメーターをEC2インスタンスにデプロイする
5.TurbonomicのUIからメモリ情報を確認する
実際の手順
0.SSM Agentが導入されていることを確認する
※SSM Agentは最近のEC2インスタンスにデフォルトでインストールされています。
見つからない場合は、SSM Agentをインストールします。
1.監視対象のEC2インスタンスにIAMロールを設定する
EC2インスタンスには、CloudWatchアクセス権限を付与するIAMロールがアタッチされている必要があります。そのアクセス権限を付与するには、IAMロールにAmazonSSMFullAccessポリシーが必要です。
・IAMロールを作成します。
※2025/10/17現在、[AmazonSSMManagedInstanceCore] ポリシーを利用できます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/setup-instance-permissions.html
2.CloudWatch エージェントをEC2インスタンスにインストールする
Systems Managerを使用してEC2インスタンスにCloudWatchAgentをインストールします
・構成するアカウントとリージョンに対応する Systems Managerに移動後、サービスから「Run Command」画面に移動します
・AWS-ConfigureAWSPackageを設定して、AmazonCloudWatch AgentをEC2にインストールします。
・AmazonCloudWatchAgent をインストールするには、以下の必須値を使用します
アクション:Install
名前:CloudWatchAgent
・対象のEC2インスタンスを選択します
・コマンドを実行します
3.パラメーター・ストアとCloudWatch エージェントの構成データを作成する
・パラメータ・ストアを作成します。
・CloudWatch エージェントの構成データをマニュアルから【値】に添付します。
※当方はAmazon Linuxのインスタンスを利用しているため以下の値を入力しました。
※最新の情報はマニュアルをご確認ください。
{
"agent":{
"metrics_collection_interval":60,
"logfile":"/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
},
"metrics":{
"metrics_collected":{
"mem":{
"measurement":[
{
"name":"mem_available",
"rename":"MemoryAvailable",
"unit":"Bytes"
}
]
}
},
"append_dimensions":{
"InstanceId":"${aws:InstanceId}",
"ImageId":"${aws:ImageId}",
"InstanceType":"${aws:InstanceType}",
"AutoScalingGroupName":"${aws:AutoScalingGroupName}"
},
"aggregation_dimensions":[
[
"AutoScalingGroupName"
]
]
}
}
4.CloudWatch パラメーターをEC2インスタンスにデプロイする
・AWS Systems Managerで、Run Command画面に移動します
・Amazon CloudWatch-ManageAgentコマンドを構成します
アクション:configure
モード:ec2
オプションの設定ソース:ssm
オプションの設定場所:先ほど作成したパラメータ名を指定する。
オプションの再起動:yes ※EC2ではなくCloudWatch Agentを再起動する。
ターゲット:CloudWatch構成をデプロイするEC2を指定する。
・実行し、結果を確認
※インストールが完了するとCloudWatchのメトリクスが見えるようになります。
5.TurbonomicのUIからメモリ情報を確認する
・該当アカウントを検索し、仮想メモリーのデータが表示されていることを確認
・メモリーデータに基づいたアクションを生成します
以上です。
CloudWatch Agentを利用してメモリー情報を取得することで、IBM Turbonomoicはメモリー情報に基づいたより深い最適化アクションを生成することが可能となります。
ご利用にあたっては是非本機能をお試しいただくことをご検討ください。
その他以下資料を参考とさせていただきました。