【小ネタ】 SSM エージェントを古いバージョンにダウングレードしてみた
はじめに
テクニカルサポートの 片方 です。
今回は SSM エージェントを古いバージョンにダウングレードする方法を、小ネタとしてご紹介します。
実現するにあたり、Run Command を使用して SSM エージェントをダウングレードします。
最新の SSM Agent バージョンに更新することも、古いバージョンにダウングレードすることもできます。
やってみた
以下マネージドノードとして登録済みの EC2 インスタンスを対象に実行します。
共に SSM エージェント Ver は 3.3.2746.0 です。こちらを 3.3.2299.0 Ver までダウングレードしてみます。
実施前にはカスタム AMI を作成することをお勧めします。
- Amazon Linux 2023
- Microsoft Windows Server 2022 Datacenter
AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。
ナビゲーションペインで、[Run Command] を選択します。
[コマンドの実行] を選択します。
[Command document (コマンドのドキュメント)] リストで、[AWS-UpdateSSMAgent] を選択します。
[Command parameters] セクションで、必要に応じて以下のパラメータの値を指定します。
本検証では GitHub を参考に 2025-04-14 提供の 3.3.2299.0 Ver までダウングレードします。
[Targets] (ターゲット) セクションで、タグの指定、インスタンスやエッジデバイスの手動選択、リソースグループの指定により、このオペレーションを実行するマネージドノードを選択します。
その他は、デフォルトの設定で、[Run (実行)] を選択します。
後は終了するまで、待ちます。
※ Run Command Output
Successfully downloaded manifest
Successfully downloaded updater version 3.3.2746.0
Updating amazon-ssm-agent from 3.3.2746.0 to 3.3.2299.0
Successfully downloaded https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/amazon-ssm-agent/3.3.2746.0/amazon-ssm-agent-linux-amd64.tar.gz
Successfully downloaded https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/amazon-ssm-agent/3.3.2299.0/amazon-ssm-agent-linux-amd64.tar.gz
Initiating amazon-ssm-agent update to 3.3.2299.0
amazon-ssm-agent updated successfully to 3.3.2299.0
完了したので、それでは SSM エージェント Ver がダウングレード (3.3.2299.0) されているか確認します。
3.3.2299.0 にダウングレードされました。成功です!
注意点
試しに少々古い 2023-02-05 提供の 3.2.582.0 Ver へダウングレードを試みたところ、Run Command の実行自体は成功するものの、該当バージョンは Deprecated / Inactive (廃止/無効) に分類されており、実際には更新がスキップされダウングレードされませんでした。
Successfully downloaded manifest
Successfully downloaded updater version 3.3.2746.0
Updating amazon-ssm-agent from 3.3.2746.0 to 3.2.582.0
amazon-ssm-agent version 3.2.582.0 is deprecated/inactive, update skipped
この deprecated/inactive (廃止/無効) について調査を進めた結果、AWS は SSM Agent の配布メタデータ(マニフェスト)を S3 で公開しており、以下からダウンロードした JSON の中に "Status" フィールドがあり、"Deprecated" / "Inactive" などの値が入っていました。
https://s3.amazonaws.com/amazon-ssm-us-east-1/ssm-agent-manifest.json
ドキュメントに明記はされていないものの、該当 Ver にこの値が設定されている場合はダウングレードがスキップされる仕様と思われます。
{
"Version": "3.2.582.0",
"CheckSum": "d265b4e88df35d33f0a81b5e626d29fb963f62c70038da9043b485a28b972b2d",
"Status": "Deprecated"
}
arn:aws:s3:::amazon-ssm-region/*
SSM Agent インストールの更新のために必須です。これらのバケットには SSM Agent インストールパッケージ、および AWS-UpdateSSMAgent ドキュメントとプラグインによって参照されるインストールマニフェストが含まれています。これらのアクセス許可が提供されていない場合、SSM Agent は HTTP コールを実行して更新プログラムをダウンロードします。
まとめ
非常に古い SSM エージェント Ver の場合にはダウングレードできないことに注意ください。
クラウドの特性上、AMI による切り戻しの方が簡便であるため機会は少ないと見受けられますが、本ブログが誰かの参考になれば幸いです。
参考資料
- Run Command を使用してソフトウェアを更新する - AWS Systems Manager
- Releases · aws/amazon-ssm-agent · GitHub
- SSM Agent に関する技術的な詳細を知る - AWS Systems Manager
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。