プライベートサブネットのPatchManager、ec2messagesエンドポイントなしで動くのか?

こんにちは、AWS内製化支援「テクニカルエスコート」担当の間世田です。

先日、セッションマネージャーでのEC2接続についてLTを行ったところ、VPCエンドポイントの要否についてアドバイスをいただきました。
従来、プライベートサブネット内のEC2へセッションマネージャーで接続するためには、以下の3つのエンドポイントが必要でした。

  • ssm
  • ssmmessages
  • ec2messages

ところが、約2年前にアップデートが行われ、SSM Agent バージョン 3.3.40.0 以上では ec2messages の代わりに ssmmessages が使用されるため、以下の2つのエンドポイントで十分とのことです。

  • ssm
  • ssmmessages

本件については、以下のブログでも解説が行われています。

さて、セッションマネージャー接続では ec2messagesエンドポイント が不要であることが示されましたが、従来 ec2messageエンドポイント が必要とされているサービスは他にもあります。その一つが、インスタンスのパッチを管理する Patch Manager です。

現時点では、Patch Manager に必要なエンドポイントとして ec2messages も含めて紹介している技術ブログが多く見られます。
そこで今回は、Patch Manager においても ec2messages が不要となったのかどうかを検証していきます。

前準備

以下のような環境を構築します。

エンドポイント

エンドポイント 種別
com.amazonaws.ap-northeast-1.ssm Interface
com.amazonaws.ap-northeast-1.ssmmessages Interface
com.amazonaws.ap-northeast-1.s3 Gateway

検証のため、ec2messagesエンドポイントは作成しません。

EC2

OSはRHEL 9.2とし、プライベートサブネットに配置します。

RHELは初期状態では SSM エージェントがインストールされていないため、EC2 起動時のユーザーデータでインストールしました。

#!/bin/bash
cd /tmp

sudo dnf --disablerepo="*" install -y https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent

エージェントのバージョンを確認すると amazon-ssm-agent-3.3.3883.0-1.x86_64 でした。バージョン 3.3.40.0 以上であるため、前述のとおり ec2messages の代わりに ssmmessages が使用されます。

NAT Gateway

RHEL では、パッチ適用時にインターネット上の RHUI(Red Hat Update Infrastructure)からパッケージを取得します。

EC2 からのアウトバウンド通信が必要となるため、今回は Regional NAT Gateway および Internet Gateway を作成します。

【本題】Patch Managerの実行

今回は検証のため、「概要から開始」からパッチの適用を行います。

スキャンのみ

それでは、最初に「スキャン」のみを行います。

結果、ec2messagesエンドポイント作成せずともスキャンが成功しました。

Patch Manager「スキャンのみ」でも、セッションマネージャと同様にec2messagesエンドポイントは不要で、ssmmessagesで代替されるようです。

解説

従来ec2messagesエンドポイントは、Systems Managerサービスへの API オペレーションのために使用されていました。

ec2messages API オペレーション
Systems Manager は、Systems Manager Agent (SSM Agent) からクラウド上の Systems Manager サービスへの API オペレーションにこのエンドポイントを使用します。
リファレンス: ec2messages、ssmmessages およびその他の API オペレーション - AWS Systems Manager
Systems Manager の内部オペレーションで使用される特殊な API オペレーションについて説明します。

SSM Agentの内部には、ec2messagesエンドポイントと通信するMDSInteractorと、ssmmessagesエンドポイントとMGSInteractorという2つのコンポーネントが存在します。

SSM Agetntのソースコードには以下のコメントがあります。

// mdsSwitcher is responsible for turning on and off MDS based on MGS status.

つまり、ssmmessages(MGS)への接続が確立されると、ec2messages(MDS)のポーリングは自動的に停止する設計のようです。

では、/var/log/amazon/ssm/amazon-ssm-agent.logを確認してみましょう。

2026-03-23 03:21:25.3209 INFO [ssm-agent-worker] [MessageService] [MDSInteractor] Starting message polling
2026-03-23 03:21:25.3955 INFO [ssm-agent-worker] [MessageService] [MGSInteractor] SSM Connection channel status is set to ssmmessages
2026-03-23 03:22:25.3965 INFO [ssm-agent-worker] [MessageService] [MDSInteractor] Moving to stop poll job after a minute
2026-03-23 03:22:25.3965 INFO [ssm-agent-worker] [MessageService] [MDSInteractor] MDS Polling job stopped.
ログでも SSM Connection channel status is set to ssmmessages の直後に MDS Polling job stopped が記録されており、この動作が確認できます。

スキャン&インストール

次に、「スキャンとインストール」を検証していきます。
 
ec2messagesエンドポイント作らずとも、パッチインストールについても無事成功しました。
 

結論

SSM Agent バージョン 3.3.40.0 以上では ec2messages の代わりに ssmmessages が使用されるため、Patch Managerのスキャン/インストールともにec2messagesエンドポイントは不要である。
著者について
Shu Maseda

3年目の幼魚です。「2025 Japan AWS Jr. Champions」に選出いただきました。
◇所属:クラウドサービス第二部
◇業務:
・AWS内製化支援サービス:テクニカルエスコート

Shu Masedaをフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(AWS)は、企業価値の向上につながるAWS 導入を全面支援するオールインワンサービスです。AWS最上位パートナーとして、多種多様な業界のシステム構築実績を持つSCSKが、お客様のDX推進を強力にサポートします。

AWSその他技術ナレッジ
シェアする
タイトルとURLをコピーしました