AWS Systems Manager によるフリート管理 - パッチ適用・インベントリ・ Run Command の自動化

Patch Manager でパッチ適用を自動化し、Run Command でリモート操作を効率化する。Session Manager による SSH 不要のシェルアクセスも紹介します。

Systems Manager の主要機能

Systems ManagerEC2 インスタンスとオンプレミスサーバーの運用管理を統合するサービスです。SSM Agent がインストールされたインスタンスをマネージドノードとして管理し、パッチ適用、コマンド実行、セッション接続、インベントリ収集、パラメータ管理などの機能を提供します。SSM Agent は Amazon Linux 2、Amazon Linux 2023、Ubuntu、Windows Server の AMI にプリインストールされています。Systems Manager 自体の利用料金は無料で、EC2 インスタンスの料金のみが発生します。

Patch Manager によるパッチ管理

Patch Manager は OS とアプリケーションのパッチ適用を自動化します。パッチベースラインで適用するパッチの分類 (セキュリティ、バグ修正、機能強化) と重要度 (Critical、Important、Medium、Low) を定義し、承認ルール (リリース後 7 日で自動承認など) を設定します。メンテナンスウィンドウでパッチ適用のスケジュール (毎週日曜 2:00 AM など) を定義し、業務時間外に自動実行します。パッチコンプライアンスダッシュボードでフリート全体のパッチ適用状況を一覧でき、未適用のインスタンスを特定できます。パッチ適用前にスナップショットを自動取得する設定も可能で、パッチ適用後の問題発生時にロールバックできます。

Run Command と Session Manager

Run Command は SSM ドキュメント (定義済みのコマンドセット) をマネージドノードにリモート実行する機能です。 AWS-RunShellScript でシェルコマンドを実行し、 AWS-RunPowerShellScript で PowerShell コマンドを実行します。ターゲットはタグ、リソースグループ、手動選択で指定でき、数千台のインスタンスに同時にコマンドを送信できます。 Session Manager はブラウザベースのシェルアクセスを提供し、 SSH キーの管理やセキュリティグループでの SSH ポート開放が不要になります。セッションのログは S3 や CloudWatch Logs に自動記録され、誰がいつどのコマンドを実行したかを監査できます。 Systems Manager に関する詳しい解説はAmazon の関連書籍でも確認できます。

Systems Manager の料金

Systems Manager の主要機能 (Patch Manager、Run Command、Session Manager、Inventory) は無料で利用できます。SSM Agent のインストールと実行にも追加料金は発生しません。コストが発生するのは、Advanced パラメータ (Parameter Store の 8 KB 超パラメータ、月額約 0.05 ドル/パラメータ)、OpsCenter の OpsItem (1,000 件あたり約 2.97 ドル)、Change Manager の変更リクエスト (1,000 件あたり約 0.326 ドル) などの高度な機能のみです。EC2 を運用するすべての環境で、無料の基本機能を有効化しない理由はありません。

State Manager と Automation による自動化

Run Command が単発のコマンド実行であるのに対し、State Manager はノードを「あるべき状態」に保ち続ける機能です。エージェントの設定やソフトウェアの導入状態を定義しておくと、設定が変わっても定期的に望ましい状態へ戻します。Automation はランブックと呼ばれる手順書に沿って、AMI の作成、インスタンスの再起動、複数ステップにまたがる運用作業を自動実行します。承認ステップを挟めるため、本番環境での操作に人間のチェックを組み込みつつ、定型作業を機械化できます。

インベントリとコンプライアンス

Inventory はマネージドノードからインストール済みソフトウェア、OS の構成、ネットワーク設定、稼働中のサービスなどの情報を収集します。集めたデータは S3 に集約し、Athena でクエリしたり QuickSight で可視化したりして、フリート全体の構成を横断的に把握できます。コンプライアンス機能は、パッチの適用状況や State Manager の関連付け結果を集計し、基準を満たしていないノードを一覧化します。これにより、どのサーバーが要件から外れているかを継続的に追跡し、是正の優先順位を判断できます。

ハイブリッド環境とオンプレミスの管理

Systems Manager は AWS 上の EC2 だけでなく、オンプレミスや他環境のサーバーも統合管理できます。ハイブリッドアクティベーションで発行した登録情報を使って SSM Agent をインストールすると、それらのサーバーもマネージドノードとして扱えます。パッチ適用、コマンド実行、セッション接続といった機能を、クラウドとオンプレミスで同じ操作体系で利用できるため、移行期や混在環境での運用負荷を下げられます。拠点をまたぐサーバー群を 1 つのコンソールから管理できる点が大きな利点です。

導入のベストプラクティスとセキュリティ

Session Manager を使えば、SSH ポートや踏み台サーバーを廃止し、インバウンドのポートをすべて閉じたまま安全にシェル接続できます。接続権限は IAM で制御し、セッションログを CloudWatch Logs や S3 に記録して操作を監査します。インスタンスには最小権限のインスタンスプロファイルを付与し、必要な API だけを許可します。インターネットに出さないプライベートサブネットのノードには、VPC エンドポイントを経由して Systems Manager へ到達させる構成が安全です。これらを組み合わせると、攻撃面を最小化した運用基盤になります。

まとめ

Systems Manager は EC2 フリートの運用管理を統合・自動化するサービスです。Patch Manager でパッチ適用を自動化し、Run Command でリモート操作を効率化し、Session Manager で安全なシェルアクセスを提供します。無料で利用でき、EC2 を運用するすべての環境で導入を推奨します。