[速報] CloudTrail LakeでAIを活用した自然言語によるクエリ生成機能が発表されました(Preview) #AWSreInfoce

2024.06.12

あしざわです。

現在開催されているAWS re:Inforce 2024 のKeynote にて、CloudTrail LakeのAIを活用した自然言語によるクエリ生成機能が発表されました(Preview)

AWS What's newブログ、AWS Blogの両方で発表されています。

AWS Blogをサラッと確認したところ、Previewでのリリース、利用できるリージョンも限られているようですが、個人的に激アツなアップデートです。

本ブログでは、アップデートの概要を確認して、アップデート内容を実際に試してみます。

概要

CloudTrail LakeはCloudTrailアクティビティログを集約、分析できるマネージドデータレイクです。

CloudTrail Lakeによって可能になる「分析」とは、Athenaのような他サービスではなくCloudTrailのマネジメントコンソール上からクエリが実行できるようになるクエリエディタ機能とダッシュボード機能のことを指します。

本アップデートは、前述したクエリエディタ機能への機能追加となっています。

現状はPreviewで、対応しているリージョンもバージニア北部のみです。

CloudTrail Lakeのデータストアであるイベントデータストアは特定のリージョンに作成しますが、収集するCloudTrailイベントはマルチリージョンで収集されているのでバージニア北部以外のリージョンのログもクエリできます。あくまでクエリ生成を行うリージョンがバージニア北部に限られているという理解です。

また、対応している言語は英語のみで日本語は非対応です。GAの時には日本語対応を期待したいです。

やってみた

まずは検証環境を構築します。

サポートしているリージョンがバージニア北部のみということなので、イベントデータストアをバージニア北部リージョンに作ってみましょう。

検証用途なので料金オプションはOne-year extendable retention pricingを指定します。

記録するイベントタイプは、CloudTrailイベントを選択。CloudTrailイベントの種類は管理イベント、データイベントの2つを選択してみます。

管理イベントは読み取り/書き込みの両方、データイベントはコストを意識してS3の書き込みイベントのみを記録します。検証ではデータイベント関連のことをしていないため、無効化でも問題ないです。

イベントデータストアの作成完了後、CloudTrailコンソールのLake > クエリを確認すると、Query generatorの存在が確認できました。

ここからAWS Blogのサンプルクエリを参考に、Query Generatorを使ったクエリ生成を試してみます。

まずはこちらの英文です。

How many errors were logged during the past month? 英訳: 過去1ヶ月の間に記録されたログのうち、エラーログの数は?

以下のクエリが生成されました。FROM文に記載されているのはイベントデータストアのIDです。

SELECT COUNT(*) AS error_count
FROM 27d290a0-5457-4be0-8fd4-xxxxxxxxx
WHERE eventtime >= '2024-05-11 00:00:00'
    AND eventtime <= '2024-06-11 23:59:59'
    AND (
        errorCode IS NOT NULL
        OR errorMessage IS NOT NULL
    )

クエリの実行結果はこちらです。

続いてもう少し踏み込んで、以下のようにリージョンやエラー原因の要素を足してみました。

How many errors were logged during the past month for each region and what was the cause of each error? 英訳: 過去1ヶ月の間に記録されたログのうち、エラーログの数をAWSリージョン・エラー原因別で教えてください。

SELECT awsRegion,
    errorCode,
    errorMessage,
    COUNT(*) AS eventCount
FROM 27d290a0-5457-4be0-8fd4-xxxxxxxxx
WHERE eventTime >= '2024-05-11 00:00:00'
    AND eventTime <= '2024-06-11 23:59:59'
    AND (
        errorCode IS NOT NULL
        OR errorMessage IS NOT NULL
    )
GROUP BY 1,
    2,
    3
ORDER BY 4 DESC;

クエリの実行結果がこちらです。「what was the cause of each error」という表現でエラーコードとエラーメッセージをSELECTに加えてくれています。

まだまだ深掘りたいですが、検証は以上とします。

料金

Previewの機能なので現時点で自然言語クエリ生成機能は無料で利用できます。

ただし、自然言語クエリ生成で生成したクエリをクエリエディタから実行すると、通常通りCloudTrail Lakeのクエリ料金が発生します。

さいごに

昨年のre:Invent 2023にて発表されたConfig、CloudWatch関連のアップデートの流れを継承するかのような、自然言語クエリ対応に関するアップデートでした。

CloudTrail Lakeは元々サンプルクエリの生成機能が優秀だったので、サンプルから選ぶ形ではなく自然言語でクエリを書けてしまうのはとても便利ですね。

GAする際には日本語対応していてくれてたら私が喜びます。

以上です。