AWS Systems Manager (SSM)のサービスとサービス間の関連のざっくりまとめ。
以下は全体を1枚絵に落とした図。
大別すると以下の5つの機能から成り立つ。
- 共通リソース
- ノード管理
- 変更管理
- 運用管理
- アプリケーション管理
前者3つはSSMエージェントを介して管理対象とするデバイスを操作/監視するリソース。管理対象のデバイスにはEC2インスタンスやIoT Greengrassモノ、オンプレミスサーバを指し、ノードと表現される。ここまでは思っていたSSM
の機能。
後者2つに属するリソース群は思っているSSMと毛色が違う。運用管理
はDevOpsエンジニアがここだけ見ればいいように種々の情報を一元管理する場所。
アプリケーション管理
はアプリケーションでの機能として利用するリソース群と思っていたがApplication Manager
はなんでここにあるかよくわからん…運用じゃないのか?
共通リソース
AWS SSM Document
- SSMが実行するアクションを定義するJSONまたはYAML形式のドキュメント。
- ドキュメントには種々の種類がありコマンドドキュメントやランブックなど、特定のSSMサービス(もしくは
AWS Config
などSSM以外のサービス)から参照されるドキュメント。 -
AWS SSM
の中核はSSM Document
な気がする。
ノード管理
AWS SSM Run Command
- ノードに対してSSHやRDP接続することなく予め
SSM Document
にて定義したタスクを実行できる。
AWS SSM Session Manager
-
Run Command
より自由度高くノードに接続する場合はSSM Session Manager
を利用する。エージェント経由でありSSHやRDP接続をしないためポートを解放せず安全性の高い接続が可能。
AWS SSM State Manager
- ノードの状態をあるべき状態に保つ。
- そのためにダッシュボードにコンプライアンスレポートを表示し、状態変化をモニタリングする。その変更をトリガして予め
SSM Document
にて定義されたタスクを実行する。 - 実行ステータスを
SSM Compliance
に記録できる。
AWS SSM Distributer
- 特定のノード、もしくはリソースグループに対してソフトウェアを配布する。
-
Run Command
で実行するAWS-ConfigureAWSPackage
Document実行を切り出してサービスとしたもの。 -
State Manager
にてインスタンスを監視し、Distributer
でパッケージをデプロイする構成が可能。
AWS SSM Patch Manager
- 特定のノード、もしくはパッチグループとしてまとめた複数のノードに対して、パッチベースラインとして定義した設定をOS毎に適応する。
-
Run Command
で実行するAWS-RunPatchBaseline
Document実行を切り出してサービスとしたもの。 - パッチコンプライアンスデータを
SSM Compliance
に転送し、Security Hub
で一括管理することが可能。
AWS SSM Compliance
-
Patch Manager
やState Manager
の実行ステータスを受け取り管理。 - 結果を受けて
Run Command
やState Manager
、Event Bridge
を利用して問題を修正できる。
AWS SSM Inventory
- ノードのメタデータを収集しS3へ保管する。
-
AWS Config
にてノードの状態を定義し、違反時にEventBridgeを介して変更するなどに利用。
AWS SSM Fleet Manager
- AWS・オンプレミスで実行されるサーバ、
AWS IoT Greengrass
モノをノードとして一元管理するサービス。 - AWSマネコンからフリートに属するのノードのパフォーマンス監視や正常性監視が可能。
- WindowsインスタンスへのRDP接続も対応。
AWS SSM Hybrid Activation
- オンプレや別のアカウントのEC2アカウントのデバイスをSSM管理する際に利用。
-
Hybrid Activation
リソースを作成する際に発行されるIDを利用して管理されるデバイスにて紐付けを有効化する。
変更管理
Session Manager
やRun Command
は手動でDocument
や任意のコマンドを実行する機能を提供している。Automation
やMaintenance Windows
ではそれらコマンド実行を自動化し、かつその操作をノードだけでなくAWSリソースにも拡張している違いがある。
AWS SSM Automation
- SSMにて管理するノード以外にAWSリソースを含めて管理することができる。
- 開発者が
SSM Automation
を実行することで、予め紐付けたDocument(ランブック
として定義される)を実行できる。ランブックではCFnを介したAWSリソースの作成等も可能。
AWS SSM Maintenance Windows
- 予め
SSM Document
にて定義されたタスクを定時実行する。 - その他、
Lambda
やStepFunctions
、SSM Automation
、Run Commnand
、Patch Manager
を実行可能。 - 実行するタスク間に優先度をつけることができる。
AWS SSM Change Calendar
- ノードへの
SSM Document
実行可否を時間ベースで決定する。 -
Automation
実行等において利用するSSM Document
に紐付け、実行時にその時間帯がSSM Document
実行を許可された時間であるかを判別して実行される。
AWS SSM Change Manager
-
SSM Automation
のランブック実行にあたり承認プロセスを挟む。 - テンプレートとして作成し、実行する
Document
を紐付けておき、フローを回す毎にリクエストを生成する。リクエストが承認されるとAutomation
が実行される。
運用管理
AWS SSM Explorer
- アカウント全体の
OpsData(運用データ)
を集約して一元的なダッシュボードを提供する。 - 以下のリソースからOpsDataとして情報ウィジェットに集約する。
- EC2
- Patch Manager
- State Manager
- Trasted Advisor
- Compute Optimizer
- AWS Support
- AWS Config
- Security Hub
-
SSM OpsCenter
のOpsItems(AWSリソースに対する作業項目)
を表示可能。 - CSVレポートヤSNSへのアラートが可能。
AWS SSM OpsCenter
- 運用管理対象のAWSリソースを一括管理する場所。
-
CloudWatch Alarm
やEventBridge
で発生するイベントをOpsItems
として集約する。 - 関連付けた
SSM Document
実行やレポート機能を提供する。
AWS SSM Incident Manager
- Amazon創業以来のインシデント対応のベストプラクティスに基づいたワークフローを提供。
-
CloudWatch
、CloudTrail
、SSM
、およびEventBridge
のデータを統合。 - ランブックと紐付け、インシデント対応を自動化可能。
アプリケーション管理
AWS SSM Application Manager
- 複数のAWSリソースの論理グループを作成し、
SSM
の運用情報を1つのコンソールに集約する。 - DevOpsエンジニアがAWSリソースの問題を検出して調査する時間を短縮する。
AWS SSM AppConfig
- アプリケーションの設定値を管理する。
- 変更リリースを伴わずに本番環境の設定値を変更することができる。
AWS SSM Parameter Store
- 環境変数置き場。
- 暗号化できる。
参考
Fleet Manager
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/fleet.html
- https://dev.classmethod.jp/articles/aws-systems-manager-fleet-manager-released/
State Manager / Maintenance Windows
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/state-manager-vs-maintenance-windows.html
- https://www.skyarch.net/blog/ssm-fleet-manager%E3%81%8B%E3%82%89rdp%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/
Automation
Run Command
Maintenance Windows
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-maintenance.html
- https://dev.classmethod.jp/articles/esm-maintenance-windows/
State Manager
Document
Patch Manager
- https://dev.classmethod.jp/articles/patchmanager-baseline-and-group/
- https://www.zead.co.jp/column/ssm_patch/
- https://sid-fm.com/blog/archive/entry/20211006.html
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/patch-manager-security-hub-integration.html
Distributer
Compliance
Inventory
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-inventory.html
- https://blog.serverworks.co.jp/tech/2017/03/06/rezept-update/
Hybrid Activation
https://blog.serverworks.co.jp/2021/07/29/193413
Change Calendar
Change Manager
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/working-with-change-manager.html
- https://blog.serverworks.co.jp/reinvent2020-systems-manager-change-manager
Explorer
OpsCenter
Incident Manager
Application Manager
- https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/application-manager.html
- https://dev.classmethod.jp/articles/ssm-application-manager-supports-ecs-cluster/
AppConfig
全体