以下では Windows Server 2022 AMI 上の EC2 に CloudWatch エージェント (統合 CloudWatch Agent) を導入し、
CPU 使用率・メモリ使用率・ディスク使用率 を 1 分間隔で収集する基本パターン**(Systems Manager 経由が推奨)** を手順化します。
① IAM ロールを用意する — 事前準備
目的 | 必要な AWS 管理ポリシー |
---|---|
CloudWatch へメトリクス送信 | CloudWatchAgentServerPolicy (AWS Documentation) |
Systems Manager 経由で操作 | AmazonSSMManagedInstanceCore (AWS Documentation) |
- IAM コンソール → ロール → ロールを作成。
- 信頼されたエンティティは EC2 を選択。
- 上記 2 つのポリシーをアタッチし、ロール名 (例
EC2-CloudWatchAgentRole
) で作成。 - EC2 起動時または [Instance Settings] → [Modify IAM role] でこのロールをアタッチ。
- Windows 2022 AMI には SSM Agent がプリインストール されているので追加作業は不要。
② CloudWatch エージェントの配布
推奨: Systems Manager Distributor / Run Command
- Systems Manager → Distributor
- パッケージ
AmazonCloudWatchAgent
を選択 → Install one time。
- パッケージ
- または Run Command でドキュメント
AWS-ConfigureAWSPackage
を呼び出し、パラメータ- action=Install
- name=AmazonCloudWatchAgent
- version=latest
- 数分後、
AmazonCloudWatchAgent
Windows サービスが追加されます。
(AWS Documentation, AWS Documentation)
手動 (RDP/PowerShell) で MSI を入れる場合
$pkg = "C:\Temp\amazon-cloudwatch-agent.msi"
Invoke-WebRequest -Uri "https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi" -OutFile $pkg
Start-Process msiexec -ArgumentList "/i $pkg /qn" -Wait
③ メトリクス収集設定 (構成ウィザードを利用)
エージェントを入れると以下の実行ファイルが配置されます。
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-config-wizard.exe"
主な質問に対する推奨回答例(最短で CPU/Memory/Disk を取る)
質問 | 推奨選択 |
---|---|
Collect StatsD/collectd? | N |
Collect metrics? | Y (Windows Performance Counter) |
OS type | Windows |
Enable CloudWatch Logs? | 任意 (今回は N で可) |
Memory metrics | Y → Basic or Standard (どちらでも % Committed Bytes In Use が入る) |
Disk metrics | Y → 収集対象 * (全ボリューム) |
CPU metrics | Y (% Processor Time ) |
Store the config in SSM Parameter Store? | Y が便利 (例: /AmazonCloudWatch/Windows/agentconfig ) |
ウィザードが生成する JSON には
Processor % Processor Time
(CPU)Memory % Committed Bytes In Use
(メモリ)LogicalDisk % Free Space
など (ディスク)
が自動で含まれます。 (AWS Documentation, AWS Documentation)
④ エージェントを起動
SSM Parameter Store に保存した場合
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" `
-a fetch-config -m ec2 `
-c ssm:AmazonCloudWatch/Windows/agentconfig -s
ローカル JSON の場合
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" `
-a fetch-config -m ec2 `
-c file:"C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json" -s
成功すると Windows サービス AmazonCloudWatchAgent が開始状態になります。
⑤ 動作確認とアラーム例
- CloudWatch コンソール → [Metrics] → [All → CWAgent]
- グラフが落ち着くまで 1〜2 分必要。
Processor % Processor Time
が 80 % 超過で 5 分継続したら通知する例:- Metrics:
CWAgent / Windows / InstanceId, % Processor Time
- Statistic: Average, Period: 60 sec, Threshold: > 80 for 5 datapoints.
- Metrics:
- 同様に
% Committed Bytes In Use
(メモリ) や% Free Space
(ディスク) でアラームを作成。
⑥ 料金・ベストプラクティスの注意
ポイント | 補足 |
---|---|
課金 | Custom メトリクスは 1 ,000 データポイントごとに課金が発生します。収集間隔や対象ボリュームを必要最小限に設定してください。 (AWS Documentation) |
権限最小化 | 監視だけなら CloudWatchAgentServerPolicy で十分。構成を Parameter Store に登録・更新する管理者用ロールには別途 CloudWatchAgentAdminPolicy を利用可。 |
テンプレート化 | 複数インスタンスに同一設定を適用する場合は Parameter Store + Systems Manager State Manager で自動展開するのが楽。 |
ウィザード不要派 | 手作業で JSON を書く場合はスキーマ (amazon-cloudwatch-agent-schema.json ) を参照。 (AWS Documentation) |
まとめ
- IAM ロール (SSM + CWAgent) → Distributor or MSI でインストール → ウィザード or JSON →
amazon-cloudwatch-agent-ctl
で起動 の 4 ステップで完了。 - 以後
CWAgent
名前空間に CPU・メモリ・ディスクの詳細メトリクスが 1 分粒度で流れます。
この手順どおり構成すれば、追加ソフトなしで Windows 2022 EC2 のリソース使用率をリアルタイムに可視化できます。