【小ネタ】CloudWatch エージェントの過去のバージョンをインストールしてみた
テクニカルサポートの 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 でも調べることができそうでした。