Amazon-Athena

Amazon AthenaのCMDBコネクタでAWSリソースをクエリしてみた

はじめに

こんにちは、omkです。
結構連携周りでAthenaが使えると便利だな~ってタイミングがあると思います。
今回はAthenaでAWSリソースをクエリ出来るようにします。

CMDBコネクタについて

詳細は以下の公式ドキュメントを参照ください。
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connectors-cmdb.html

EC2(VPC周り含め)やS3やRDS、EMRといったリソースをAthenaでクエリ出来るようにするAWS提供のコネクタです。

やってみた

データソース作成

Athenaのコンソールからデータソースを選択します。

AWS CMDBのコネクタがありますね。

あとはデータソース名を決めてLambdaを作成するだけです。
Lambdaは自動で作成されますが、Spill用のS3バケットとLambda関数の名前を指定する必要があります。

これでデータソースの作成が完了です。

クエリ実行

ではクエリしていきます。

クエリエディタからデータベースとテーブルがそれぞれ作成されていることが確認できます。

今回は例として、
「特定のNameタグが設定されているVPC上に存在するEC2インスタンスの一覧」を取得してみます。

EC2インスタンスは「"ec2"."ec2_instances"」から参照出来ます。
このテーブルではEC2が存在するVPCはVPCIDでしか確認できません。
よって判定したいネームタグと対応するVPCのVPCIDを取得します。
VPCは「"ec2"."vpcs"」から参照出来ます。

そして出来たクエリがこちらです。

SELECT *
FROM "ec2"."ec2_instances"
WHERE vpc_id = (
        SELECT id
        FROM "ec2"."vpcs"
        WHERE ARRAY_JOIN(tags, ', ') LIKE '%Name:${任意のVPCネームタグが入る}%'
    )

実行します。

無事クエリ出来ました。
取得されなかったEC2インスタンスは別VPCやCloud9環境のものだったので適切にVPCに応じて取得されていることがわかります。

簡単ッッッ‼️簡単ッッ‼️‼️

おわりに

AthenaでAWSリソースのクエリが出来ました。簡単便利で助かります。
以上、最後までお付き合いありがとうございました。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA