この記事は ディップ株式会社 Advent Calendar 2021 の14日目の記事です
##はじめに
AWS内の各インスタンスにインストールされているソフトウェアのバージョンがいくつなのか確認したいときどうしますか?
組織で使用しているアカウントやインスタンスが多いほど、その確認工数は膨大になってしまうと思います。
そこでSSMインベントリとQuicksightを使い、複数アカウントのソフトウェアバージョンを確認する方法を試してみました。
#環境準備
SSMインベントリを使い複数アカウントのインベントリデータを管理用アカウントに用意したS3に同期し、QuickSight(BIツール)で出力する環境を構築しました。
詳細な手順を全て書くと長くなってしまうので、参考にしたハンズオン資料:Systems Manager & QuickSight ハンズオンを参照していただければと思います。
◆ざっくりやったこと
①インスタンスロールの作成
- Systems Managerを利用する場合は、対象のインスタンスが Systems Manager API にアクセスできるようにするため、IAM Role の付与が必要になります。
②EC2 インスタンスの作成
- 管理対象となる EC2 インスタンスです。
③インベントリの有効化
- SSMインベントリの情報は、特定アカウント、特定リージョンごとに個別で収集されています。
- 設定箇所:Systems Manager > インベントリ > セットアップインベントリ
④インベントリデータ保存用 S3 バケットの作成
- 管理アカウント内に単一の S3 バケットを作成します。
これにデータを集約し、一括して分析することが可能です。
- 設定箇所:アクセス許可 > バケットポリシー > JSON
⑤インベントリデータ保存用 S3 バケットのポリシー修正
- S3へアクセスするアカウント情報を追加します
⑥リソースデータ同期の設定
- SSM Inventory から S3 へデータを同期する設定を行います
⑦QuickSight データセットの作成
- QuickSight > Sign up for QuickSight
- Standard Editionを選択
- Athenaを使いました
⑧QuickSight による可視化
- インベントリ情報がグラフ化されることを確認
ここまでで準備完了です。
##ソフトウェアのバージョン可視化(Quicksight)
ここから、Quicksightでソフトウェアバージョンを可視化する部分についての設定です。
①左側タブ「視覚化」を選択。
②フィールドリスト以下4つを選択します。
・accountid
・name
・resourceid
・version
####特定のソフトウェアに絞って確認する
①左側タブの「フィルター」を選択します。
②使用するフィールドリストに「name」を選択し、フィルタタイプを「カスタムフィルタ」に変更。
③今回は「bash」のバージョンを確認したいので検索する値の欄に、「bash」と入力し
「適応」をクリックします。
すると、bashのレコードのみが表示され簡単にバージョンを確認することができますね!
##おわり
今回はソフトウェアのバージョン情報の可視化を行いましたが、他のフィールドリストを使えばバージョン以外の情報も出せますし、ビジュアルタイプを変更してグラフ化も可能です。
今回は使用していませんが、パラメータやアクション機能というものもあるので色々試してみようと思います。
##参考にしたページ・ブログ
Systems Manager & QuickSight ハンズオン
https://ssm-inventory-visualize.workshop.aws/phase5.html
【AWS SystemsManager】インベントリデータをQuickSightで視覚化する
https://blog.serverworks.co.jp/tech/2020/07/07/post-87979/