State Manager の AWS-RunShellScript で CloudWatch エージェントを自動アップデート

State Manager の AWS-RunShellScript で CloudWatch エージェントを自動アップデート

CloudWatch エージェントの自動アップデートを State Manager の AWS-RunShellScript で設定する方法をご紹介します。
Clock Icon2025.05.12

はじめに

こんにちは、 岩崎 です。

下記記事でCloudWatch エージェントをState Manager で自動アップデートを設定したのですが、エージェントの UnInstall を行なっており、エージェントの設定なども更新されてしまう可能性がありました。

CloudWatchエージェントをState Managerで自動更新を設定してみた。 | DevelopersIO

本記事では、AWS-RunShellScript ドキュメントを使用し、UnInstallしない方法でバージョンの更新をしてみました。

やってみた

今回もLinuxサーバーにインストールされたCloudWatch エージェントの自動アップデートを設定してみます。

対象のEC2の設定は以下の通りです。

  • AMI : Amazon Linux 2023
  • AMIインスタンスタイプ : t2.micro
  • SSMエージェントバージョン : 3.3.1957.0
  • CloudWatch エージェントバージョン : 1.300032.0b330

Session Manager で接続し、CloudWatch エージェントのバージョンを確認すると下記のように表示されます。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status | grep -i version

image (49).png

State Manager で関連付けを作成

AWS Systems Managerコンソールを開き、左メニューから「State Manager」(日本語表記でステートマネージャー)を選択します。

image (55).png

ステートマネージャーの画面より、関連付けの作成を選択します。

次の設定は下記の通りです。

  • 名前:「CloudWatchAgent-AutoUpdate-NonUnInstall」(名前は任意です。分かりやすい名前に設定しています。)
  • ドキュメント:AWS-RunShellScript

image (59).png

パラメータは下記の通りです。

# Amazon Linux 2023 の場合
yum update -y amazon-cloudwatch-agent

# エージェントの再起動
systemctl restart amazon-cloudwatch-agent

image (66).png

他は初期のままです。


スケジュールは下記のように設定しています。

  • 毎月第1月曜の12時
cron(0 12 ? * MON#1 *)

image (60).png

設定が完了したら、関連付けの作成をします。

作成が完了しましたら、ステートマネージャーの画面に戻ります。
先ほど作成した関連付けが表示されました。

image (61).png

表示された関連付けのステータスが成功であることを確認してください。

CloudWatch エージェントが更新されているか確認する。

ステータスが成功していたら、CloudWatch エージェントのバージョンが最新のものへとなっているか確認してみます。

Session Manager で接続し、CloudWatch エージェントのバージョンを確認したところ、正常に更新が完了していることが確認できました。

image (62).png

が、、、バージョンが最新ではなく、少し古いバージョンでした。

GitHubで確認すると 「v1.300054.0」が一番上にあるため、少なくとも最新ではないことがわかります。

Releases · aws/amazon-cloudwatch-agent · GitHub

yum update コマンドを使用する方法では、Yumリポジトリにあるバージョンまでしかアップデートできないようです。

commandsの修正

関連付けの編集から、「commands」を更新し、再度実行してみます。

# 最新バージョンのインストール
yum install -y https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm

# エージェントの再起動
systemctl restart amazon-cloudwatch-agent

image (63).png

ステータスが成功になりました。
image (64).png

Session Manager で接続し、CloudWatch エージェントのバージョンを確認したところ、最新バージョンになりました。

image (65).png

まとめ

本記事では、AWS Systems Manager の State Manager を使用して、CloudWatch エージェントの自動アップデートを設定する方法をご紹介しました。

前回の AWS-ConfigureAWSPackage を使用した方法とは異なり、AWS-RunShellScript を使用することで、エージェントをアンインストールすることなくバージョンアップが可能となります。これにより、既存の設定を維持したまま更新することができます。

また、yum update コマンドではリポジトリの制限により最新バージョンまで更新できない場合があるため、S3から直接最新バージョンをインストールする方法を使用することで、確実に最新バージョンへの更新が可能となります。

この方法を活用することで、より安全に CloudWatch エージェントの自動更新を実現することができます。

参考資料

チュートリアル: Run Command で AWS CLI を使用する - AWS Systems Manager

AWS Systems Manager State Manager - AWS Systems Manager

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.