目次
はじめに
こんにちは、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のコンソールからデータソースを選択します。
あとはデータソース名を決めて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リソースのクエリが出来ました。簡単便利で助かります。
以上、最後までお付き合いありがとうございました。
アーキテクト課のomkです。
AWSについて雑多に取り組んだ内容を発信しています!!