インベントリデータとはサーバーのOS情報やファイル情報、ソフトウェア情報等を指します。
このようなデータはExcelなどで管理する事も出来ますが、その場合、情報確認のためにサーバーに1台ずつ接続して確認したり、管理表の更新漏れで実機と差異が発生したり、といった運用上の負荷や問題が発生します。
AWS Systems Manager(以下、Systems Manager) インベントリを利用すると、このようなインベントリデータの収集と一元的な管理が可能となります。
本記事では、Systems Manager インベントリの概要について紹介します。
- Systems Managerとは
- Systems Manager インベントリとは
- インベントリで収集できるデータ
- インベントリのセットアップ
- インベントリ確認
- (オプション)S3バケットとの同期
- 終わりに
Systems Managerとは
安全かつスケーラブルにAWS環境を運用するサービスです。
サービスの種類と機能について、AWSの管理コンソールとSystems Managerのユーザーガイドを元に、自分なりにまとめたものが以下となります。
No | カテゴリ | 機能 | 説明 |
1 | Quick Setup(高速セットアップ) | Quick Setup | 頻繁に使用するAWSのサービスと機能を推奨されるベストプラクティスを使用して設定可能 |
2 | 運用管理 | エクスプローラー | 利用しているAWSリソースの情報を統合した、カスタマイズ可能なダッシュボードを提供 |
OpsCenter | AWSリソースに関する問題の確認/調査/解決を一元的に実施 | ||
CloudWatchダッシュボード | CloudWatchのコンソールにあるダッシュボード | ||
インシデントマネージャー | インシデント発生時の対応プランやエスカレーション先の連絡を登録できる | ||
3 | アプリケーション管理 | アプリケーションマネージャー | CloudFormation/ECS/EKSの状態が確認可能 |
AppConfig | EC2/Lambda/コンテナなどにデプロイするアプリや環境変数の設定を事前決定しておく | ||
パラメータストア | パスワード/DB文字列の設定データや機密情報を保存し外部アプリケーションから参照 | ||
4 | 変更管理系 | Change Manager | アプリケーション設定やインフラストラクチャに対する運用上の変更に確認や承認を行う |
オートメーション | Machine Imagesの作成/更新,OSパッチ又はアプリ更新プログラムの適用を自動化 | ||
Change Calendar | EventBridgeと連携してリソースの起動停止スケジューリングが可能 | ||
メンテナンスウィンドウ | 管理やメンテナンスタスクを実行するためのスケジュール設定が可能 | ||
5 | ノード管理系 | フリートマネージャー | SSM AgentがインストールされたEC2及びオンプレサーバを一元管理できる機能 |
コンプライアンス | マネージドインスタンスに対してスキャン実行しパッチ適用が正しく行われているか・否かの把握が可能 | ||
インベントリ | マネージドインスタンスのアプリケーション/ファイル/適用パッチなどに関するデータの収集 | ||
ハイブリッドアクティベーション | オンプレサーバや仮想マシン等のデバイスを管理するための登録インターフェースを提供 | ||
セッションマネージャー | WindowsやEC2にSSHやRDPをしないで操作可能なインターフェース | ||
Run Command | 事前にコマンドを定めて特定のサーバに実行、セキュアなサーバ管理可能 | ||
ステートマネージャー | マネージドインスタンスの状態を定義し設定内容を制御できる | ||
パッチマネージャー | 選択したOSとアプリケーション両方に対するパッチを自動適用できる | ||
ディストリビューター | 独自のソフトウェアをパッケージ化し、マネージドインスタンスに適用できる | ||
6 | 共有リソース | ドキュメント | JSONやYAML形式でステートマネージャーやRunCommandでいつ何を行うか定義できる |
本記事では、この中からノード管理系カテゴリのインベントリについて記載します。
Systems Manager インベントリとは
Systems Manager インベントリとは、Systems Managerに含まれる機能の1つです。
特徴としては主に以下が挙げられます。
- OS上のアプリケーション一覧など構成情報を記録し、可視化する
- 最短30分ごとにサーバーのイベントリデータを定期的に収集し、最新の状態を保つ
- Fleet Managerからマネージドノードごとにイベントリデータを確認可能
- ダッシュボードから特定のバージョン・ソフトウェア名などの条件をもとにフィルタリングが可能
- ステートマネージャーの関連付けの設定によりイベントリデータの収集が行われる
- データは30日間保持。30日以上保存する場合はリソースデータの同期を利用
- イベントリ利用に料金はかからない
インベントリで収集できるデータ
インベントリで収集できるデータは以下となります。
No. | 取得情報 | 詳細 |
1 | アプリケーション | アプリケーション名、発行元、バージョンなど |
2 | AWSコンポーネント | EC2 ドライバ、エージェント、バージョンなど |
3 | ファイル | 名前、サイズ、バージョン、インストール日、変更、最新アクセス時間など |
4 | ネットワーク設定の詳細 | IP アドレス、MAC アドレス、DNS、ゲートウェイ、サブネットマスクなど |
5 | Windowsアップデート | Windows Updateに関する情報 (Hotfix ID、インストール者、インストール日など) |
6 | インスタンスの詳細 | OS名、OSバージョン、最終起動、DNS、ドメイン、ワークグループ、OS アーキテクチャなど |
7 | Windowsサービス | 名前、表示名、ステータス、依存サービス、サービスのタイプ、起動タイプなど |
8 | タグ | インスタンスに割り当てられているタグ |
9 | Windowsレジストリ | レジストリキーのパス、値の名前、値タイプおよび値 |
10 | Windowsロール | 名前、表示名、パス、機能タイプ、インストール日など |
11 | カスタムイベントリ | カスタムに割り当てられるメタデータ。例えばオンプレミスの各インスタンスのラック位置など |
インベントリのセットアップ
Systems Manager画面の左ペインから[インベントリ]を選択し、[セットアップインベントリ]をクリックします。
設定項目については、表を参考にしてください。
No. | 設定項目 | デフォルト | 内容 |
1 | 名前-オプション | Inventory-Association | ー |
2 | ターゲットの選択 | このアカウントのすべてのマネージドインスタンスの選択 | 対象となるインスタンスの指定方法を選択 |
3 | スケジュール | イベントリデータの収集毎30分 | 最短30分指定でイベントリデータの収集を行う |
4 | パラメーター | 全て有効 | 収集するパラメータを指定。ファイルとWindowsレジストリはパスが必要 |
5 | 実行履歴をS3に書き込む | 無効 | ー |
インベントリ確認
インベントリ確認方法は主に2種類あります。
Fleet Managerからイベントリデータを確認
Systems Managerのフリートマネージャー画面左ペインの[インベントリ]をクリックします。
本記事「インベントリで収集できるデータ」の項目ごとにインベントリタイプを選択することが可能です。
イベントリダッシュボードからフィルタリング
Systems Managerのインベントリ画面から、インベントリデータの絞り込みや、インベントリの結果をグラフで確認する事が可能です。
フィルタリングからは、例えば「AmazonSSMAgent」がインストールされているインスタンス一覧を表示する、といったことが可能です。
グラフには「インスタンスのインベントリ有効有無」や「インスタンスにインストールされているサービストップ5」などが表示されます。
(オプション)S3バケットとの同期
リソースデータ同期を使用して、リージョンおよび AWSアカウントを横断したすべてのマネージドノードから収集されたインベントリデータを、1つのAmazon S3バケットに送信可能です。
Systems Manager インベントリの設定
Systems Managerのインベントリ画面から[詳細ビュー]タブを選択し、[リソースデータと同期の作成]をクリックします。
※事前にS3バケットを作成しておいてください。作成方法について本記事では省略します。
設定項目については、表を参考にしてください。
No. | 設定項目 | デフォルト | 内容 |
1 | 同期名 | ー | ー |
2 | バケット名 | ー | ー |
3 | バケットプレフィックス-オプション | ー | 出力を受け取るバケットのプレフィックスを入力する |
4 | バケットのリージョン | このリージョン | Amazon S3 内のバケットのリージョン |
5 | KMSキーARN-オプション | ー | ー |
Amazon S3の設定
S3画面から、事前に作成したS3バケットに以下バケットポリシーを入力してください。
※赤字は適宜変更してください。
{
"Version": "2012-10-17",
"Id": "ssm-access-policy",
"Statement": [
{
"Sid": "SSMBucketPermissionsCheck",
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::BucketName"
},
{
"Sid": " SSMBucketDelivery",
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3::: BucketName/*/accountid=AccountID/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
終わりに
Systems Managerは多くの機能がありますが、設定項目も多いため、利用が後回しになるイメージが個人的にはあります。
ですが、利用すると運用負荷が下げられ、尚且つ正しく情報管理することが可能です。
また、本記事に記載はありませんが、QuickSightやAthenaなどAWSの様々なサービスとの連携も可能です。
まずは、インベントリを利用してみる第一歩として参考になれば幸いです。