こんにちは、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 オペレーションのために使用されていました。
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.






