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
カレンダーエントリ
○