【小ネタ】CloudWatch エージェントの過去のバージョンをインストールしてみた

CloudWatch エージェントの過去のバージョンを Systems Manager の RunCommand でインストールする際には、バージョン指定の工夫が必要です。
2022.12.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

テクニカルサポートの m.hayakawa です。

とある事情から、CloudWatch エージェントのアップデート時の挙動を調べる機会がありました。

アップデートを行うためには、過去のバージョンをインストールしなければいけません。

その際の指定方法に工夫が必要な部分があったため、備忘録として記事にします。

最新バージョンの CloudWatch エージェントを RunCommand でインストール

始めに、前提条件を満たす環境で、EC2(Windows)を起動します。

その後、下記のドキュメントに従って AWS Systems Manager Run Command を用いて、CloudWatch エージェントの最新版をインストールします。

エージェント設定を使用した EC2 インスタンスへの CloudWatch エージェントのインストール - Amazon CloudWatch

Run Command のコンソールにて、以下の値を設定し実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: latest

実行ログを確認したところ、CloudWatch エージェントのインストールができたことが確認できました。

Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062 install
Plugin aws:runPowerShellScript ResultStatus Success
install output: Running install.ps1
CWAgentOtelCollector has been started
AmazonCloudWatchAgent has been started
Successfully installed arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062

CloudWatch エージェントのバージョン番号を Run Command で確認

CloudWatch エージェントのリリース情報は、CloudWatch エージェントの GitHub で調べることが可能です。

本記事の記載時点では、v1.247355.0が最新バージョンとなっておりました。

改めて、Run Command で先ほどインストールした CloudWatch エージェントのバージョンを確認してみます。

  • ドキュメント名: AmazonCloudWatch-ManageAgent
  • Action: status
  • Mode: ec2
  • Optional Configuration Source: ssm
  • Optional Configuration Location : 空欄
  • Optional Open Telemetry Collector Configuration Source: ssm
  • Optional Open Telemetry Collector Configuration Location: 空欄
  • Optional Restart: yes

{
  "status": "running",
  "starttime": "2022-12-19T09:23:05",
  "configstatus": "configured",
  "cwoc_status": "running",
  "cwoc_starttime": "2022-12-19T09:23:04",
  "cwoc_configstatus": "configured",
  "version": "1.247355.0b252062"
}

version の部分を確認すると1.247355.0b252062となっており、バージョン番号の末尾に文字列があることが確認できます。

過去バージョンの CloudWatch エージェントを RunCommand でインストール

さて、ここからが本題です。

CloudWatch エージェントの GitHub で過去バージョンを調べてみます。

v1.247354.0 というバージョンがあることを確認しました。

Run Command のコンソールにて、Version にバージョン番号を指定し、実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: 1.247354.0
failed to download manifest - failed to retrieve package document description: InvalidDocument: Document with name AmazonCloudWatchAgent with version 1.247354.0 does not exist.

失敗してしまいました。どうやら、当該のバージョンが存在しないとのこと。

ここで立ち返って、Run Command で CloudWatch エージェントのバージョンを確認した結果を見てみます。

"version": "1.247355.0b252062"

バージョン番号の末尾に文字列があることが確認できます。

これがヒントになるかもしれないと思い、探しに探したところ、以下のドキュメントを見つけました。

リリース: Elastic Beanstalk Windows Server プラットフォームの更新 (2022 年 8 月 25 日) - AWS Elastic Beanstalk

CloudWatch エージェントをバージョン 1.247354.0b251981 に更新しました。

こちらを元に、Run Command のコンソールにて、Version にバージョン番号を指定し、実行します。

  • ドキュメント名: AWS-ConfigureAWSPackage
  • Action: Install
  • Installation Type: Uninstall and reinstall
  • Name: AmazonCloudWatchAgent
  • Version: 1.247354.0b251981
Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062 uninstall
Plugin aws:runPowerShellScript ResultStatus Success
uninstall output: Running uninstall.ps1
CWAgentOtelCollector has been stopped
AmazonCloudWatchAgent has been stopped

2022-12-20T01:37:44.0351002+00:00: [INFO] Starting update check...
2022-12-20T01:37:44.3910881+00:00: [DEBUG] Installed Amazon CloudWatch agents:
2022-12-20T01:37:44.3986792+00:00: [DEBUG] \\EC2AMAZ-487H0IV\root\cimv2:Win32_Product.IdentifyingNumber="{94A29035-669A-43FC-83CB-320364B77A38}",Name="Amazon CloudWatch Agent",Version="1.3.50747"
2022-12-20T01:37:44.4128932+00:00: [INFO] Uninstalling existing agent...
2022-12-20T01:37:44.4236183+00:00: [INFO] \\EC2AMAZ-487H0IV\root\cimv2:Win32_Product.IdentifyingNumber="{94A29035-669A-43FC-83CB-320364B77A38}",Name="Amazon CloudWatch Agent",Version="1.3.50747"
2022-12-20T01:37:44.7689438+00:00: [INFO] Uninstall complete.

Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247354.0b251981 install
Plugin aws:runPowerShellScript ResultStatus Success
install output: Running install.ps1
CWAgentOtelCollector has been started
AmazonCloudWatchAgent has been started

Successfully installed arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247354.0b251981
Successfully uninstalled arn:aws:ssm:::package/AmazonCloudWatchAgent 1.247355.0b252062

成功しました!

最後に

だいぶ遠回りになりましたが、CloudWatch エージェントを Run Command でインストールする際に指定する過去のバージョン番号は、AWS Elastic Beanstalk リリースノートから参照する方法を取るのが、現状ではよさそうでした。

この記事が、どこかで困っている方の役に立てれば幸いです。

おまけ

本記事作成後に気付いたのですが、CloudWatch エージェントの Docker Hub でも調べることができそうでした。

amazon/cloudwatch-agent Tags | Docker Hub