[新機能]AWS Configに現在のリソース設定をSQLで取得できる高度なクエリ機能が追加されました

AWS Configで記録されているAWSリソースの現在の設定状況を、SQLのSELECT構文のサブセットを使用してアドホックに問い合わせできるようになりました。
2019.03.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

AWSリソースの設定履歴を収集するAWS Configに新機能が追加されました。AWSリソースの現在の設定状況を、SQLのSELECT構文のサブセットを使用してアドホックに問い合わせることができます。

AWS Config のリソース設定プロパティに基づいてクエリを実行できるようになりました

マネジメントコンソールからアクセスすること、サンプルクエリも用意されています。今回はそのうちのひとつを実行してみました。

マネジメントコンソールからアクセス

それでは実際に、マネジメントコンソールにアクセスしてAWS Configのページを開いてみます。左サイドメニューのリソースの下にAdvanced queryというメニューが追加されているのでこれをクリックします。

SQL query editorが表示され、ここでクエリを書くことができます。実行するSQLは、慣れるまではサンプルクエリ(Sample SQL queries)から目的に近いものを探して直すのがお手軽でしょうか。

今回は Count EC2 instances, group by instance type のサンプルクエリを実行してみます。横にあるUse queryのリンクをクリックすると、エディタにクエリがロードされます。

ロードされたSQLは次のものでした。普通のSELECT文との違いはFROM句がないくらいで、COUNT関数なども使えることがわかります。

SELECT
    configuration.instanceType,
    COUNT(*)
WHERE
    resourceType = 'AWS::EC2::Instance'
GROUP BY
    configuration.instanceType

最後にRun queryをクリックし実行結果を確認してみます。

各インスタンスタイプごとに、何台のEC2インスタンスが存在するかの確認できました!

まとめ

これまでは各リソースごとに変更履歴を調べたり、Athenaを使って分析する必要がありました。マネジメントコンソールなどでサクッとSQLを書いて確認できるようになり便利に使えそうですね!

最後に、AWS Configはリージョンごとに記録されています。異なるリージョンのリソースを調べたい場合は、そのリージョンに切り替える必要があるので注意してください。

参考