CloudWatch AgentをSSM Run Commandを使わずに手動でインストールしてみる

皆さんはCloudWatch Agentをどうやってインストールしていますか? 自分はSSMを使ってインストールしてしまうことが多いのですが、今回は手動でインストールする方法を整理しました
2024.05.31

CloudWatch Agentのインストール

SSM経由でコマンドが実行できればCloudWatch AgentのインストールはSSM Run Commandでやることが自分は多いです。

ただ、SSMへの接続が何らかの理由でできなかったりする場合も発生すると思います。

マニュアルでもインストール可能なので今回はその手順を整理していきます。

以下のドキュメントを参考にインストールを行いました。

環境

今回はEC2に構築したWindow Server 2022のインスタンスを使用します。

CloudWatch Agentのインストールに際してS3からソフトウェアをダウンロードする必要があるのですが、今回はインターネット経由で行います。

インターネットへアクセスできない環境であれば、S3のVPCエンドポイントを作成する必要があります。(もしくは手動でファイルをインスタンスに転送する)

また、EC2インスタンスのインスタンスプロファイルにアタッチされているIAMロールには以下のポリシーをアタッチしてあります。

CloudWatch AgentがメトリクスのデータポイントをCloudWatchに登録するのに必要です。

  • arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

CloudWatch Agentのインストーラーの入手

PowerShellで入手する場合

Power Shellでインストーラを取得する場合は以下のコマンドで入手可能です。

Invoke-WebRequest https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile amazon-cloudwatch-agent.msi

東京リージョンのS3バケットからダウンロードしたい場合は以下のコマンドです。

Invoke-WebRequest https://amazoncloudwatch-agent-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile amazon-cloudwatch-agent.msi

ダウンロードが完了するとコマンドを実行したディレクトリにamazon-cloudwatch-agent.msiという名前でファイルが作成されます。

 ブラウザで入手する場合

Windows Server 2022のマシンイメージならMicrosoft Edgeがインストールされているので以下のURLにアクセスすればダウンロードが開始します。

RDPで転送する

手元で上記の手段でダウンロードしたファイルを転送する方法もあります。

MicrosoftのRDPクライアントであれば、ファイルを「Ctrl + C」でコピーしRDPのウィンドウで「Ctrl + V」を押せば転送ができます。

ファイル転送の手段は何でもよく、とりあえずEC2インスタンス側に転送できれば良いです。

インストール

PowerShellで行う

Power Shellでインストールする際は以下のコマンドでインストールできます。

msiexec /i amazon-cloudwatch-agent.msi

GUIで行う

ファイラーで確認すると以下の様なアイコンのファイルがあるかと思います。 こちらをダブルクリックしてもインストールが可能です。

設定ファイルの配置

CloudWatch Agentは以下のパスにインストールされます。

  • C:\Program Files\Amazon\AmazonCloudWatchAgent

以下はディレクトリの中身です。 いくつか補足説明を入れておきます。

amazon-cloudwatch-agent-config-wizard.exe <= 設定ファイルを作成するための補助ツール
amazon-cloudwatch-agent-ctl.ps1 <= CloudWatch Agentを起動するためのスクリプト
amazon-cloudwatch-agent-schema.json
amazon-cloudwatch-agent.exe 
config-downloader.exe
config-translator.exe
config.json <= CloudWatch Agentの設定ファイル
CWAGENT_VERSION
LICENSE
NOTICE
permission.ps1
RELEASE_NOTES
start-amazon-cloudwatch-agent.exe
THIRD-PARTY-LICENSES

CloudWatch AgentはSSMパラメータストアに配置した設定ファイルを読み込むことも可能なのですが、今回はインスタンスのみに配置することで進めます。 このディレクトリ内のconfig.jsonファイルを書き換えれば設定ファイルの設置は完了です。(最初は空です)

CloudWatch Agentの起動

C:\Program Files\Amazon\AmazonCloudWatchAgent\config.jsonの設定ファイルを使う場合は以下のコマンドで起動可能です。

& "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が起動していることを確認しても良いですが、CloudWatchのメトリクスが意図した通りに登録されているかを確認するのが一番良いです。 問題なければこれで作業は完了です。

最後に

SSM RunCommandを使わなくても意外と簡単にCloudWatch Agentのインストールができて驚きました。