SSM + S3 + Athena + QuickSight でEC2のイベントリ情報を可視化する


1.EC2

EC2にAmazonSSMManagedInstanceCoreを付与したIAMロールを作成しておき、

  • Amazon Linux 2
  • Microsoft Windows Server 2019 Base

2つのEC2インスタンスを起動し、作成したIAMロールを付与しておく。

2.SSM インベントリ

【1.EC2】で作成したEC2インスタンスにはあらかじめ、SSM Agentがインストールされているので、
「マネージドインスタンス」を開くと、2つのインスタンスが起動していることがわかる。

「インベントリ」から、セットアップイベントリを設定する。(設定はとりあえず全てデフォルトにする)

「マネージドインスタンス」の各EC2インスタンスの「イベントリ」で収集されていることがわかる。

ここまでで、EC2のイベントリを取得することができた。

3.S3

インベントリデータ保存用のバケットを作成する。

インベントリのリソースデータの同期の設定
の通りバケットポリシーを作成する。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"SSMBucketPermissionsCheck",
         "Effect":"Allow",
         "Principal":{
            "Service":"ssm.amazonaws.com"
         },
         "Action":"s3:GetBucketAcl",
         "Resource":"arn:aws:s3:::bucket-name"
      },
      {
         "Sid":" SSMBucketDelivery",
         "Effect":"Allow",
         "Principal":{
            "Service":"ssm.amazonaws.com"
         },
         "Action":"s3:PutObject",
         "Resource":[
            "arn:aws:s3:::bucket-name/bucket-prefix/*/accountid=account-id-1/*"
         ],
         "Condition":{
            "StringEquals":{
               "s3:x-amz-acl":"bucket-owner-full-control"
            }
         }
      }
   ]  
}

4.SSM リソースデータ

「インベントリ」から「リソースデータ同期の作成」で作成していきます。

【3.S3】で作成したS3バケットを選択する。

S3バケットを確認すると、同期されていることが確認できる。

ここまでの作業で、EC2インスタンスのイベントリ情報がS3に保存された。

5.Quicksight Athena

「Amazon S3」にチェックを入れて、【3.S3】で作成したS3バケットを指定する。

「Athena」のデータセットを作成していく。

「データベース」と「テーブル」を選択する。※データベースは、S3バケット名が書かれたものを選択する。

「データクエリを直接実行」を選択。※ちなみにSPICEは、Quicksightのオンメモリデータストアで迅速に画面を操作するためにある。

「Architecture」を「円グラフ」で表したもの。

「name」「version」で「name(カウント)」とし、「テーブル」で可視化したもの。


※QuickSight についてもう少し詳しくやりたい方は↓。
AWS QuickSight demo