EC2 Windows インスタンスにインストールしたCloudWatch Agentは、自動起動設定がデフォルトで有効ですか?

2024.04.30

困っていること

Amazon EC2 Windows インスタンスでCloudWatch カスタムメトリクスを取得するため、 CloudWatch Agentをインストールしました。

CloudWatch Agentを起動後、カスタムメトリクスは取得されましたが、EC2 Windows インスタンスを再起動すると、CloudWatch Agentも自動起動されますでしょうか?

どう解決すればいいの?

EC2 Windows インスタンスでCloudWatch Agentがデフォルトで自動起動するかどうかは、ドキュメントに明確な記載がありません。

EC2 Windows インスタンスで CloudWatch Agentの自動起動設定を確認するには、以下の手順で行います。

検索ボックスからServicesを入力し開きます。(以下の画面は英語表記になっています)

Amazon CloudWatch AgentStartup typeAutomatic になっていれば、自動起動が有効化されている状態です。この場合、EC2 Windows インスタンスを再起動すると、CloudWatch Agent も自動的に起動します。

自動起動設定を無効化することも可能です。

なお、以下のAMIを使用して EC2 インスタンスを作成し、CloudWatch Agent をインストールした場合、デフォルトで自動起動設定が有効になっていることを確認しました。

  • Microsoft Windows Server 2022 Base(AMI:ami-04f69ab2dd2960278)

CloudWatch Agentをインストールから起動までの流れは、以下の通りです。

  • EC2インスタンス作成
  • CloudWatch Agentインストール
  • CloudWatch Agent設定ファイルを作成
  • CloudWatch Agent起動

EC2インスタンス作成

AMIは以下を利用しました。

  • Microsoft Windows Server 2022 Base(AMI:ami-04f69ab2dd2960278)

IAMポリシーは、以下をアタッチします。

  • AmazonSSMManagedInstanceCore
  • CloudWatchAgentServerPolicy

プライベートサブネット上でインスタンスを作成し、以下のVPCエンドポイントも作成しました。

  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ec2messages
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2
  • com.amazonaws.ap-northeast-1.monitoring

CloudWatch Agentインストール

インストール方法はいくつかありますが、今回は、Systems Manager Run Commandを使用します。

ドキュメント通り、Run CommandからAWS-ConfigureAWSPackageを選択し、名前にAmazonCloudWatchAgentを入力し実行します。

成功していればインストール完了です。

CloudWatch Agent設定ファイルを作成

CloudWatch Agent設定ファイルの作成方法は、いくつかありますが、今回はウィザードを実行して作成します。

  • ウィザードを実行する
  • 手動で作成する

PowerShellで以下のコマンドを実行します。

cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"
.\amazon-cloudwatch-agent-config-wizard.exe

いくつか質問に答えると設定ファイルが作成されます。

最後に設定ファイルをSystems Manager Parameter Storeに保存するか聞かれますが、今回は保存しません。

インスタンス内のC:\Program Files\Amazon\AmazonCloudWatchAgent\config.jsonに設定ファイルが保存されます。

CloudWatch Agent 起動

PowerShellで以下を実行すると、CloudWatch Agentが起動します。先程作成した設定ファイルのパスが正しいかどうか確認しておきましょう。

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"

ちなみに、CloudWatch Agent設定ファイルをParameter Storeに保存した場合、PowerShellだけでなく、Run Commandからも実行可能です。

PowerShellの場合、以下のコマンド通り、Parameter Store名を指定して実行します。

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:パラメータストアの名前