Systems Manager(SSM) の機能をざっくりまとめ

# ■概要
Systems Manager(SSM) について。
使った事のある項目もありますが、使った事のない項目も多かったので改めて調べてみました。

# ■まずSystems Manager(SSM) とは？
公式より引用すると…

>AWS Systems Manager は、AWS アプリケーションおよびリソースのオペレーションハブであり、
>ハイブリッドおよびマルチクラウド環境向けのセキュアなエンドツーエンドの管理ソリューションです。
>これにより、安全でセキュアなオペレーションを大規模に実現できます。

インスタンスへの接続もSSMから可能であり、パッチなど様々な管理を一元で行う事ができます。
またlambda等の他AWSサービスへの関与も可能で、簡単に書ききれないくらいのオペレーションや管理機能が利用可能です。

# ■前準備
EC2インスタンスに対してSSMの機能を活用する為には、
対象インスタンスをマネージドインスタンス、もといSSM管理可能なインスタンスにする前準備が必要です。
以下の３つの条件が必要となります。

IAMロールの紐付け（AmazonSSMManagedEC2InstanceDefaultPolicy が必須）
2.SSMエージェントがインストールされている
3.SSMエンドポイントとの通信

前準備が完了すると、SSM内のフリートマネージャーにマネージドインスタンスとして表示されるようになります。

![フリート2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/3d2e1fed-8698-7fa5-e20c-55cbbd12aedc.png)

（マネージド化についてはまた別で書きます！）

# ■SSMの各項目について
どんな機能があるのか、ざっくりと説明します。

まずは大項目として以下の4つに分かれます。

### 1.運用管理
アプリケーションとリソースに関する運用上のインサイトや、問題のトラブルシューティングに役立つ自動修復機能も含まれています。
運用データを集約して、リソースのイベントやエラーに対して必要なアクションを提示してくれるものもあります。

### 2.アプリケーション管理
アプリケーションについての情報管理、集約、可視化に使用。AWSリソースの問題を調査および修正するために使用できます。
LambdaやCloudFormationといった他AWSサービスとも連携可能。

### 3.変更管理
アプリケーションの設定やインフラに対する運用上の変更を要求、承認、実装、レポート作成するための変更管理フレームワークです。
自動的な変更を管理する事が可能であり、カレンダー機能も有しています。

### 4.ノード管理
ハイブリッドおよびマルチクラウド環境で使用されるマシン（マネージドノード）を管理します。
インスタンスへの接続や、パッチの適用が可能です。


# ■個別のサービス要約

上記で説明した項目に紐づく個別のサービスについて、ざっくり要約します。

### 1.運用管理

##### エクスプローラー: 
アプリケーションとリソースに関する運用上のインサイトや問題のトラブルシューティングに役立つ自動修復ソリューションを提供します。
以下に記載するopscenterやインシデントの方とも連携できて、Trusted AdvisorやConfigルールなんかとも連携できるようです。

##### OpsCenter:
運用データを集約して、リソースのイベント（アラーム等）やエラーに対してアーティファクトを作成します。
アーティファクトには、運用作業項目（OpsItems）とインシデントが含まれます。

##### CloudWatchダッシュボード:
カスタマイズ可能なダッシュボードを作成し、AWSリソースのパフォーマンスメトリクスを監視します。
見たいメトリクスを1つのページに羅列できます。

##### インシデントマネージャー:
AWSがホストするアプリケーションに影響を与えるインシデントを管理するためのコンソールです。
CloudWatchやEvent bridge等を管理できるようです。

### 2.アプリケーション管理

##### アプリケーションマネージャー:
EKSクラスターとAmazon Elastic Container Service（Amazon ECS）クラスターの両方を含むコンテナクラスターをサポートします。
ECS、CloudWatch、Config、SSM等の情報の集約、可視化が可能です。

##### AppConfig:
アプリケーションの設定データをコレクションできて、デプロイメント速度と信頼性を向上させます
設定を作成、管理し、迅速にデプロイするために利用できます

##### パラメータストア:
構成データやシークレットなどのパラメータを安全に保存および管理できます。
機密管理のための安全な階層型ストレージを利用でき、パスワード、データベース文字列、AMI ID、ライセンスコードなどのデータをパラメータ値として保存することができます

### 3.変更管理

##### Change Manager:
アプリケーションの設定やインフラストラクチャに対する運用上の変更を要求、承認、実装、レポート作成するためのエンタープライズ変更管理フレームワークです
サービスの中断とダウンタイムのリスクを軽減する事ができて、ランブックワークフローの実行時に承認された変更のみが実施されるため、運用上の変更を安全にします。

##### オートメーション:
ルーチンタスクや手順を自動化し、人的エラーや工数を削減できます。
主に大規模なデプロイ、設定、管理するための自動化に貢献するものです。

##### Change Calendar:
変更管理プロセスと連携して変更活動を計画し、変更期間中に他の変更と競合しないようにします。
名前の通り、カレンダーの形式で変更を管理できます。

##### メンテナンスウィンドウ:
インフラおよびアプリケーションの保守作業を計画し、実行するための時間枠設定です
特定のタグまたはリソースグループでタグ付けされたアカウント内のすべてのマネージドノードのパッチ適用等ができます。
ウィンドウの中で複数のアクションセットを定義する事も可能です。

### 4.ノード管理

##### フリートマネージャー:
ここでマネージドノードとなっているものに対してはシェルアクセスぱコマンド実行等、後述する様々な機能を実行できます。

##### コンプライアンス:
複数のAWSアカウントとAWSリージョンからデータを収集し、それに準拠していない特定のリソースにドリルダウンすることができます
Complianceをカスタマイズして、ITまたはビジネスの要件に基づいた独自のコンプライアンスタイプを作成でき、Run Command、State Manager等を使用して、問題を修復することができます

##### インベントリ:
マネージドノード上で実行されているアプリケーションやソフトウェアパッケージなどの詳細情報を収集し、S3に保存します。
インベントリには、アプリケーション、AWSコンポーネント、ファイル、ネットワーク設定の詳細、Windows更新、インスタンスの詳細、
サービス、タグ、Windowsレジストリ、Windowsロール、カスタムインベントリなど様々なデータタイプがあります。

##### ハイブリッドアクティベーション:
ハイブリッド環境でのマネージドノードを有効化するための手順を提供します
非EC2マシン（オンプレとか）をハイブリッドアクティベーションを作成することで、マネージド化できるという事です。

##### セッションマネージャー:
ここからマネージドノードへの安全な対話型シェルアクセスが実行できます。

Run Command:
マネージドノード上でコマンドやスクリプトを実行できます。

##### ステートマネージャー:
マネージドノードおよび他のAWSリソースを定義された状態に保つプロセスを自動化するための安全でスケーラブルな設定管理サービスであり、
アプリケーション環境の適切な状態を維持するために、定期的に実行する必要があるコマンドを定義できます。

##### パッチマネージャー:
マネージドノード上でパッチを自動的に適用するためのフレームワークです
上述した変更管理と組み合わせる事ができます。

##### ディストリビューター:
カスタムエージェントやコンテンツをマネージドノードに配布するための仕組みです
独自のソフトウェアをパッケージ化して配布したり、AWSから提供されるエージェントソフトウェアパッケージ、またはサードパーティーパッケージを検索して配布も可能です。

# ■最後に
長くなりましたが、以上です！
気になる所をまた別で記事化していきます。