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-ConfigureAWSPackageDocument実行を切り出してサービスとしたもの。 -
State Managerにてインスタンスを監視し、Distributerでパッケージをデプロイする構成が可能。
AWS SSM Patch Manager
- 特定のノード、もしくはパッチグループとしてまとめた複数のノードに対して、パッチベースラインとして定義した設定をOS毎に適応する。
-
Run Commandで実行するAWS-RunPatchBaselineDocument実行を切り出してサービスとしたもの。 - パッチコンプライアンスデータを
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
全体
