AWS SSMでEC2内情報の抽出

AWS SSMでEC2内情報の抽出

目次

はじめに
前提条件
構成図
環境設定
リソース情報確認
最後に

はじめに

ここ最近オンプレミス環境からクラウド環境へのサーバー移行などはずいぶんとよく聞く話となってきました。
クラウドのリソースは柔軟にスケールアップ・ダウンが出来たり、物理的な管理が必要なく管理コストが削減できる点はすばらしいですね。

今回紹介させていただくのは、クラウドで稼働するサーバー内リソースの情報を抽出して、AWSのマネージドコンソールに情報を表示するといった仕組みです。
オンプレミス環境でもよくある問題ですが、サーバー内のソフトウエアのバージョンや稼働しているサービスは何があるのかなどをサーバー内に入って確認するのはなかなか手間と感じる場面も多いのではないでしょうか。
そんな悩みを少しでも解決できればと思ってます。

前提条件

本記事は下記の条件を前提として、執筆しております。
※AWS以外のクラウドサービスに関しては、確認できておりません。

  • データ収集対象サービス:AmazonEC2
    ※オンプレミスサーバーでもSSM Agentをインストールすることでリソース監視できます

構成図

AWS System Managerというサービスを使用して、EC2内の情報を抽出します。
EC2内にSSM Agentというリソースの更新・管理・設定ができるソフトウエアがデフォルトインストールされているので、そこから情報を取得するという流れです。

※一部のインスタンスでは、デフォルトインストールされていないものもあるので、下記のリンクから対象かどうか確認ください。


環境設定

対象のAWSアカウントにログインし、「AWS System Mnager」の画面を開きます。

AWS System Manager画面

左メニューから「インベントリ」を選択すると、ダッシュボード画面に遷移します。
既に設定済みの画面を表示しているので、リソースの状況が表示されていますが、初期状態ですとグラフに色がついていない状態になっているかと思います。

AWS System Manager ダッシュボード

次にリソース情報収集するためのセットアップを行います。
ダッシュボード画面右上の「セットアップインベントリ」を選択してください。

セットアップインベントリ画面

設定項目は大きく分けて、5つあります。
下記に設定内容の説明を記載します。

インベントリ名設定名になります(自由に名前をつけて問題ないです)
②ターゲット対象となるインスタンスを選択できます。
下記の3つから選択対象を絞ることができます。
・すべてのインスタンス
・特定のタグがついているインスタンス
・インスタンスを手動選択
③スケジュール情報取得の頻度を設定できます。
④パラメーター取得する情報を選択できます。
・Applications ・・・ インストールされているアプリケーション情報
・AWS Components ・・・ AWS関連のコンポーネント
・Network Config ・・・ ネットワーク構成のデータ
・Windows Updates ・・・ WindowsUpdateの履歴
・Instance Detailed Information ・・・ インスタンスのCPU、コア数などの情報
・Services ・・・ サービス構成データ
・Windows Roles ・・・ Windows役割構成
・Custom Inventory ・・・ カスタムインベントリデータ
・Billing Info ・・・ ライセンスに含まれるアプリケーションの請求情報
・ファイル ・・・ サーバー内のファイル情報
・Windows レジストリ ・・・ Windowsレジストリ情報
⑤詳細設定実行結果をS3に書き込むオプションを選択可能です。
※今回は設定していませんが、S3バケットの分析などで様々な使い道があると思います
設定値一覧

※一部SSMエージェントのバージョンが特定のバージョン以降でないと対応していないものがあります。
 設定項目に記載がありますので、サーバー内のSSMエージェントのバージョンを調べる際は、下記の
 コマンドを入力してください。
AWS CLIの操作方法はここでは触れませんので、詳細はこちらを参照してください。

$ aws ssm describe-instance-information --query InstanceInformationList[] --output table

特にパラメーターの部分は自由に設定できるので、必要とする情報を選択して、セットアップしていただければ
情報収集が可能です。

リソース情報確認

設定はこれだけなので、結果を確認してみます。
(今回はパラメーターはすべての項目を選択しました)

AWS System Manager ダッシュボード

AWS System Managerのインベントリを選択すると、ダッシュボードに情報が追加され、一番下に対象のインスタンスが表示されています。インスタンスIDのリンクをクリックすると、インスタンスの詳細情報を確認できます。

インスタンス詳細情報画面

インスタンスの各情報が記載された画面が表示されます。左メニューからファイルやレジストリ、中央の画面からWindowsバージョンなどの情報が確認できます。今回はアプリケーションやサービス情報が取得ができているか確認します。

アプリケーション一覧

サーバー内のアプリケーション一覧が取得ができていました。インストール日やバージョン情報まで取得ができているので、バージョン更新が必要なものなどもサーバー内で確認する必要がなくなります。

サービス一覧

アプリケーションだけでなく、サービスに関しても取得できていました。現在稼働しているサービスが何かなどもコンソール上から確認できるのは非常に便利ですね。

最後に

ソフトウェアのバージョン管理やサーバーのOSバージョン管理などクラウドリソースの管理はどうするのが良いのか悩んでいたこともあり、AWS System Managerは解決する糸口になりそうです。非常に簡単に設定でき、これだけの情報を取得してくれるので、試したことがない方はぜひ利用してみてください。今後はこの情報をどう活かすかというところに着目して他のAWSサービスと連携して、分析などができればと思ってます。またその際には執筆しますので、ぜひご覧ください。