AWS re:Invent 2023 re:cap LT 大会で流石に1分では紹介しきれなかったこと〜AWS Configの自然言語クエリ対応について〜
昨日(2024/01/19)、自身がJapan AWS Top Engineerに選出いただいている縁で、AWS Japan様の目黒オフィスで開催された「AWS re:Invent 2023 re:cap LT大会」にショートLT枠で登壇させていただきました。
テーマは
で紹介されているもので、AWS Configにて生成系AIの仕組みで、自然言語を使って検索用クエリを生成してくれるという新機能についてでした。
このショートLT枠というのがおもしろい枠でして、「1分間」で昨年開催されたre:Invent 2023の会期中に発表されたAWSのアップデートを紹介しようというものでした。
私のスライドはこちら:
https://www.slideshare.net/slideshows/aws-config-6952/265575511
で、話したい内容を1分間に押し込んで紹介しましたが、発表を終えて、懇親会などで話しているうちに「あぁー、そういえば発表作るに向けて検証してたとき、こう言うことがあったんだよな」と思い出したことがいくつか出てきたので、そんなに分量ないですが、こちらで振り返りをしてみます。
1. リージョンが限られている
発表で言及していましたが改めて紹介。
ドキュメントを見ると
https://docs.aws.amazon.com/config/latest/developerguide/query-assistant.html
対応しているリージョンはus-east-1とus-west-2の2つのリージョンとなっています。(2024/01/20参照)
AWS Configはリージョンごとに構成情報が集約されますので、東京リージョン(ap-northeast-1)にあるリソースに対して自然言語でのクエリはまだできないわけですね。
日本のユーザーであれば、東京リージョンで使うことがメインかと思いますし、発表で触れたような「こんなセキュリティグループ調べてよ」というようなシチュエーションは多いのでは?と想像します。
日本リージョンで使えるようになるのが楽しみです。
2. 生成されたクエリそのままだとエラーになることもある
たとえばスライドの中で触れた例として
“List the security groups that are opened to the internet with port 22”
という質問文を挙げていました。22番ポートでインターネット開放になっているセキュリティグループを特定する検索クエリが生成されることを期待したものです。
そうすると以下のようなクエリが生成されました。
SELECT
resourceId,
resourceName,
configuration.ipPermissions
WHERE
resourceType = 'AWS::EC2::SecurityGroup'
AND configuration.ipPermissions.toPort = 22
AND configuration.ipPermissions.ipRanges = '0.0.0.0/0'
Code language: JavaScript (javascript)
リソースのID、名前、そしてセキュリティグループの設定が表示され、その条件として22ポートが使われていて、IPレンジとして”0.0.0.0/0″が指定されていて希望を満たしているように見えます。
ただし、このクエリを実行すると
こんなエラーになります。IP Rangeの指定方法が適切ではないようです。
なので、
configuration.ipPermissions.ipRanges = '0.0.0.0/0'
Code language: JavaScript (javascript)
とある箇所を
configuration.ipPermissions.ipRanges = '0.0.0.0'
Code language: JavaScript (javascript)
に修正して、クエリ実行して期待の結果が得られた。という形でした。(発表では省略しちゃいましたが)
3. 日本語でも生成はしてくれる
plain Englishで記述するようにと説明がされているので、正式なものではないと思いますが、入力欄に日本語で記載して実行してみる分にはエラーにならず、クエリも生成してくれました。
こんな感じです
ただし、この生成されたクエリを実行すると
No resultsになってしまいました。
これだと、英語の時よりももっと修正が必要になってしまいますね。
検索結果を過信せず、クエリの叩き台を作ってくる機能、と位置付けて向き合うのがいいのかもしれません。
まとめ
ゼロからクエリを作らなくていいことを思えば、いくらか便利ではありますが、現状はそもそもプレビュー段階です。
個人的に業務シーンですごく活躍してくれそうな機能だと思っていて、今後のアップデートに期待したいと思います。