AWS System Manager
AWS System Manager は、統合インタフェースでインフラを可視化し、EC2のみならず オンプレミス上のサーバ を含めたさまざまなリソース( マネージドインスタンス )を管理し表示することができる。これによりモニタリングやトラブルシューティング、リソースとアプリケーションの管理などを迅速に行うことができる。
これらのリソースは、リソースグループ と呼ばれるグループごとに分類でき、状態をダッシュボード上から俯瞰することができるため、アプリケーションに影響を当てる可能性のあるリソースをすばやく特定することができる。また、OSのパッチレベルやソフトウェアのインストール状況なども簡単に確認することができる。
また、インスタンスの停止や再起動などの 運用タスクの自動化 や、リモートからのパッチの適用や設定の変更などができるため、ヒューマンエラーや運用負荷の軽減を図ることが可能である。
なお、System Managerは、過去に Simple Systems Manager と呼ばれていたため、現在も略して SSMと呼称される。
AWS System Managerの機能
System Managerを用いることで、以下を行うことができる。
カテゴリ |
サービス名 |
内容 |
運用管理 |
Explorer |
運用データ(OpsData)を集約して表示するダッシュボード |
運用管理 |
OpsCenter |
運用作業項目(OpsItems)の表示と調査 |
運用管理 |
CloudWatch Dashboards |
メトリクス の表示 |
運用管理 |
Trusted Advisor & Personal Health Dashboard (PHD) |
プロビジョニングとヘルスイベントの表示 |
アプリケーション管理 |
Resource Groups |
AWSリソースの グループ化 |
アプリケーション管理 |
AWS AppConfig |
アプリケーション設定 を作成、管理、迅速にデプロイ |
アプリケーション管理 |
Parameter Store |
設定データ 管理と 機密管理 のための安全な階層型ストレージ |
アクションと変更 |
Automation |
メンテナンスとデプロイの自動化 |
アクションと変更 |
Maintenance Window |
タスクのスケジュール を設定 |
インスタンスとノード |
設定コンプライアンス |
パッチと設定の不一致を確認 |
インスタンスとノード |
インベントリ |
ソフトウェア インベントリの収集 |
インスタンスとノード |
マネージドインスタンス |
インスタンスの セットアップ |
インスタンスとノード |
アクティベーション |
オンプレミス上のノードの承認 |
インスタンスとノード |
Session Manager |
ブラウザベースの シェルでアクセス |
インスタンスとノード |
Run Command |
リモートから コマンドを実行 |
インスタンスとノード |
State Manager |
インスタンスを 定義された状態 に保つ |
インスタンスとノード |
Patch Manager |
パッチ の適用 |
インスタンスとノード |
Distributor |
パッケージの作成 |
共有リソース |
ドキュメント |
Systems Manager が実行する アクションを定義 |
SSM Agent
SSM Agentは、EC2 や オンプレミスサーバ にインストールすることのできるソフトウェアで、System Managerはこのソフトウェアを介して、これらのリソースの更新や管理、設定を行うことができる。 EC2上で提供されているWindows ServerやAmazon Linux、 Ubuntu ServerのAMIには、あらかじめSSM Agentがインストールされている。Systems Manager エンドポイントとの間でHTTPS通信を確立する必要があり、HTTP Proxy経由で通信する設定にすることもできる。なお、このエージェントの動作ログは以下の場所に格納されている。
- /var/log/amazon/ssm/amazon-ssm-agent.log
- /var/log/amazon/ssm/errors.log
SSM Agentの実行にはroot権限が付与 されていることから、このSSM Agentを用いて SendCommand や StartSession コマンドを行うことが可能なAWS上のIAM ユーザ等の管理や権限付与には注意する必要がある。SSM Agentをリリースのたびに更新し最新のバージョンを保持するためには、マネージメントコンソール上のマネージメントインスタンスのページから、Agent auto update (エージェントの自動更新)を選択する。
運用管理
Explorer
Explorerは、AWSリソースの情報を表示するダッシュボード。AWSアカウント全体もしくは当該リージョンの Amazon EC2 、 Systems Manager OpsCenter 、 Systems Manager Patch Manager などから運用データを取得し、これを一覧で確認することができる。
Explorerでは、 タグで情報をフィルタリング したり、 リソースデータの同期 機能を用いて、 複数のアカウントの情報を横断的に閲覧する こともできる。
OpsCenter
OpsCenterは、運用データを表示・調査・解決するための場所である。これを用いることで、各事象に対して迅速な対応が可能。
アプリケーション管理
Parameter Store
パラメータストアは、設定データ 管理と 機密管理 のための安全な階層型ストレージを提供し、パスワードや認証情報などを安全に保存できる。これらの情報には、作成時に定義した一意の名前を用いてアクセスできる。また、以下のAWSサービスと接続し、パラメータストアの情報を提供する。
- Amazon Elastic Compute Cloud (Amazon EC2)
- Amazon Elastic Container Service (Amazon ECS)
- AWS Lambda
- AWS CloudFormation
- AWS CodeBuild
- AWS CodeDeploy
パラメータストアは、 String と String List ,、Secure String をサポートしている。Secure Stringは、KMS-CMK (カスタマーマスターキー)を用いて暗号化される。また、パラメータには、デフォルトパラメータと アドバンストパラメータ が用意されている。前者から後者への移行は可能であるが、 その逆はできない 。アドバンスパラメータは、許可される パラメータ数やデータサイズが緩和 され、かつ パラメータポリシーが規定できる が 課金 される。
パラメータは 階層状 に管理できる。階層構造にすることで管理がしやすく、また 同一階層のデータを一括して取得することもできる 。パラメータポリシーを付加することで、 有効期限や失効期限 などを定めることができる。
パラメータにはタグを付与できる。また、更新されるたびに バージョン がインクリメントされる。パラメータラベル と呼ばれるエイリアスを指定することもできる。
AWSが提供しているパブリックパラメータを使うことで、AMIやリージョンの最新の情報を取得できる。
インスタンスとノード
コンプライアンス
コンプライアンスは、マネージドインスタンスをスキャンして、パッチコンプライアンスと設定の不一致を確認することができる 。具体的には、Patch Manager によるパッチ適用 と State Manager による Association に関するコンプライアンスデータ が表示される。また、 設定変更履歴をConfigから取得 したり、コンプライアンスをカスタマイズして 独自のルールを作成 したり、Run Command や State Manager を使って問題を修復 できる。
Resource Data Sync を用いることで、全てのマネージドインスタンスからのコンプライアンスをS3に蓄積/集約することができる。これらのデータは、Amazon Athena および Amazon QuickSight で可視化することもできる。データを蓄積するS3には、System Managerからのデータ書き込みを許可する Bucket Policy の作成が必要。
インベントリ
インベントリを使用することで、 マネージドインスタンスからメタデータを収集 することができる。収集できるメタデータは、以下の通り。
カテゴリ |
内容 |
アプリケーション |
アプリケーション名、発行元、バージョンなど |
AWS コンポーネント |
EC2 ドライバ、エージェント、バージョンなど |
ファイル |
名前、サイズ、バージョン、インストール日、変更および最新アクセス時間など |
ネットワーク設定の詳細 |
IP アドレス、MAC アドレス、DNS、ゲートウェイ、サブネットマスクなど |
Windows 更新 |
Hotfix ID、インストール者、インストール日など |
インスタンスの詳細 |
システム名、オペレーティングシステム (OS) 名、OS バージョン、最終起動、DNS、ドメイン、ワークグループ、OS アーキテクチャなど |
サービス |
名前、表示名、ステータス、依存サービス、サービスのタイプ、起動タイプなど |
タグ |
インスタンスに割り当てられるタグ |
Windows レジストリ |
レジストリキーのパス、値の名前、値タイプおよび値 |
Windows ロール |
名前、表示名、パス、機能タイプ、インストール日など |
カスタムインベントリ |
カスタムインベントリの操作 に説明されるようにマネージドインスタンスに割り当てられたメタデータ |
これらのデータも、上述の Resource Data Sync でS3に保存することができる。インベントリのセットアップは、SSMドキュメントの AWS-GatherSoftwareInventory を Association で実行することによって実現できる。
Run Command
Run Commandを使用することで、マネージドインスタンスにログインすることなく安全に、管理タスクを実行することができる。Run Commandを実行するためには、コマンドを発行するIAM ユーザに実行権限を付与する必要がある。また、対象のインスタンスに対しても、 IAMインスタンスプロファイルを作成して適用する 必要がある。
State Manager
State Managerは、EC2等を定義された状態に保つプロセスの自動化を行う。例えば、起動時に特定のソフトウェアをインストールする、ネットワークを構成する、ソフトウェアの更新を行うなどのタスクを行う。
Patch Manager
Patch Managerは、セキュリティ関連などのパッチをマネージドインスタンスに対して適用するプロセスの自動化を行う。 ベースライン と呼ばれるパッチの適用ルールには、 リリースから数日以内に自動承認されるルール と、 承認済みおよび拒否済みパッチのリスト が含まれている。サポートされるOSは、 パッチマネージャーの前提条件 を参照のこと。各OSには、パッチ適用用のリポジトリが用意されており、これを指定するか、 代替パッチソースリポジトリ を指定することもできる。
AWSによってあらかじめ用意されている定義済みパッチベースラインの場合、
- 「セキュリティ」タイプで重要度レベルが「非常事態」または「重要」のすべてのOSパッチを7日後に自動承認する
- 「Bugfix」タイプのパッチをリリースから7日後に自動承認する
などのルールが事前に定められている。これらのパッチを適用する対象のインスタンスをグループ化するために、 パッチグループ を作成することができる。パッチグループは、 1 つのパッチベースラインにのみ登録できる。また、SSMドキュメントの AWS-RunPatchBaseline を適用する際に、対象のインスタンス等を指定することもできる。 パッチが適用されるとインスタンスは再起動される 。
SSMドキュメント
SSMドキュメントは、マネージドインスタンスで実行するアクションを定義するスクリプト。SSMドキュメントには、以下のタイプが用意されている。使用可能なスキーマバージョンやフォーマット等が定められているため、利用する際には ドキュメントを参照のこと。AWSが提供する Automation ドキュメントの名称や挙動は、Systems Manager Automation ドキュメントの詳細リファレンスを参照する。また、公式ドキュメントは存在しないが、AWSが提供する Command ドキュメントも多数存在する。
タイプ |
内容 |
Schema |
Run Command |
State Manager |
Automation |
Maintenance Window |
Distributor |
Session Manager |
Change Calendaer |
Command |
設定の適用 |
1.2, 2.0, 2.2 |
○ |
○ |
|
○ |
|
|
|
Automation |
タスクの実行 |
0.3 |
|
○ |
○ |
○ |
|
|
|
Package |
ソフトウェア |
|
|
|
|
|
○ |
|
|
Session |
セッションの定義 |
|
|
|
|
|
|
○ |
|
Policy |
AWS-GatherSoftwareInventory を使用したインベントリデータの取得 |
2.0- |
|
○ |
|
|
|
|
|
Change Calendaer |
カレンダーエントリ |
|
|
|
|
|
|
|
○ |