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