目次
SSM(Systems Manager)とは
AWS SSM(Systems Manager)は、AWS上やオンプレミスのサーバーを一元的に管理・運用するためのサービス群です。
サーバーにログインせずに、設定変更・コマンド実行・運用管理ができます。
主な機能
| Session Manager | ブラウザやCLIからEC2にセキュアにアクセス可能です(SSHキー不要、踏み台サーバー不要、セキュリティグループのポート開け不要)。 SSHの代替として使われる。 操作ログをS3やCloudWatch Logsに保存できるため、監査が容易です。 |
| Run Command | 複数のサーバーに対して、一斉にシェルスクリプトやOSコマンドを実行できます。 |
| Parameter Store | DBの接続先やAPIキーなどの機密情報を、コードに直接書かずに安全に保管・呼び出しができます。 |
| Patch Manager | OSのセキュリティパッチの適用をスケジュール化し、自動で実行できます。 |
| Automation | 定型的な運用タスク(AMI作成、インスタンス停止など)をワークフロー化 |
| Inventory | インストール済みソフトウェアやOS情報を収集・可視化 |
Session ManagerとSSHの違い
| SSM Session Manager | SSH | |
|---|---|---|
| ポート開放 | 不要 | インバウンド22番が必要 |
| キーペア | 不要 | 必要 |
| 踏み台サーバー | 不要 | 必要なケースあり |
| 操作ログ | CloudTrailに自動記録 | 別途設定が必要 |
| アクセス制御 | IAMで管理 | OSユーザー管理 |
SSMを利用するための条件
1.SSM Agentのインストール
管理対象のサーバーにエージェントが導入されている必要があります(Amazon Linuxなどには標準インストールされています)。
2.IAMロールの付与
インスタンスがSSMサービスと通信するための権限(AmazonSSMManagedInstanceCoreポリシーなど)が必要です。
3.ネットワーク環境
インスタンスからSSMのAPIエンドポイントへ通信できる必要があります(インターネット経由、またはVPCエンドポイント経由)。
SSM Agentとは
SSM Agentとは、AWSが提供するソフトウェアで、EC2インスタンスやオンプレミスサーバーにインストールすることで、AWS Systems Managerからの命令を受け取り実行するエージェントです。
通信の流れ
| AWS Systems Manager ↑ SSM Endpoint ↑ SSM Agent (EC2内) ← エージェントが自発的に接続しに行く |
サーバー(EC2)側のインバウンドのポート開放は不要で、エージェント側からAWSエンドポイントにアウトバウンド通信(HTTPS/443)するだけで動作します。
コンソールやCLIで操作すると、その命令がSSM側にキューイングされ、次のポーリングのタイミングでAgentが取得して実行します。
最初からインストール済みのAMI (AWSが提供)
- Amazon Linux 2 / Amazon Linux 2023
- Windows Server 2008以降
- Ubuntu Server 16.04以降
- RHEL 7以降
AWS提供ではない、オンプレミスのOSには入っていません。
オンプレミスにSSM Agentを手動でインストールは可能です。
よく使うコマンド
# エージェントの状態確認(Amazon Linux 2)
sudo systemctl status amazon-ssm-agent
# 再起動
sudo systemctl restart amazon-ssm-agent
# バージョン確認
amazon-ssm-agent -version
Session Managerなどで接続できない時
以下を確認します。
- SSM Agentが起動しているか
- IAMロール(インスタンスプロファイル)がアタッチされているか
- SSMエンドポイントに到達できるか(セキュリティグループ・ルートテーブル)
- Agentのバージョンが古すぎないか
VPCエンドポイントとの関係
プライベートサブネットでSSMを使う場合、以下の3つのVPCエンドポイントが必要です。
| エンドポイント | 用途 |
|---|---|
| com.amazonaws.region.ssm | 主な用途:API全般 リクエスト/レスポンス、Agent→SSM |
| com.amazonaws.region.ec2messages | 主な用途:Run Command ポーリング、Agent→SSM(問い合わせ) |
| com.amazonaws.region.ssmmessages | 主な用途:Session Manager 常時接続(双方向)、Agent⇔SSM |
EC2Messages → Run Commandなどのコマンド実行に使う
SSMMessages → Session Managerのインタラクティブなターミナル接続に使う
関連の記事
