Amazon Web Services ブログ

CloudTrail Lake の自然言語クエリ生成で AWS CloudTrail のログ分析を簡素化 (プレビュー)

6月11日、AWS CloudTrail Lake での生成人工知能 (生成 AI) を活用した自然言語クエリ生成のプレビュー版を発表できることを嬉しく思います。AWS CloudTrail Lake は、AWS CloudTrail アクティビティログを取得、保存、アクセス、分析し、コンプライアンス、セキュリティ、運用上のニーズを満たすためのマネージドデータレイクです。CloudTrail Lake に保存されているこれらのアクティビティログ (管理イベントとデータイベント) について、自然言語を使用して質問できます。SQL クエリを作成する技術的な専門知識がなくても、またアクティビティイベントの正確な構造を解読するために時間を消費しなくてもかまいません。例えば、「スナップショットなしで削除されたデータベースインスタンスの数を教えてください」と尋ねると、機能によりその質問が CloudTrail Lake クエリに変換されます。このクエリは、そのまま実行することも、変更してリクエストしたイベント情報を取得することもできます。自然言語によるクエリ生成により、AWS アクティビティログの探索プロセスが簡単になります。

それでは、自然言語クエリ生成を使い始める方法を説明しましょう。

自然言語クエリ生成の開始方法
自然言語クエリジェネレーターは、生成 AI を使用してプロンプトからすぐに使用できる SQL クエリを生成します。このクエリは、CloudTrail Lake のクエリエディタで実行することを選択できます。

AWS CloudTrail コンソールでは、[Lake] (レイク) の下にある [Query] (クエリ) を選択します。クエリジェネレーターは、CloudTrail 管理イベントとデータイベントを収集するイベントデータストアのクエリのみを生成できます。CloudTrail Lake クエリのイベントデータストアを、[Event data store] (イベントデータストア) のドロップダウンリストから選択します。クエリジェネレーターでは、自然言語を使用して [プロンプト] フィールドに次のプロンプトを入力します。

過去 1 か月間に記録されたエラーの数はどれくらいですか?

次に、[Generate query] (クエリを生成) を選択します。次の SQL クエリが自動的に生成されます。

SELECT COUNT(*) AS error_count
FROM 8a6***
WHERE eventtime >= '2024-04-21 00:00:00'
    AND eventtime <= '2024-05-21 23:59:59'
    AND (
        errorcode IS NOT NULL
        OR errormessage IS NOT NULL
    )

[Run] (実行) を選択して結果を確認します。

これは面白く、もっと詳しく知りたいです。どのサービスで最もエラーが多かったか、なぜこれらのアクションがエラーになったのかを知りたいです。そこで、次のプロンプトを入力して追加の詳細をリクエストします。

過去 1 か月間に各サービスで記録されたエラーの数と、各エラーの原因は何でしたか?

[Generate query] (クエリを生成) を選択すると、次の SQL クエリが生成されます。

SELECT eventsource,
    errorcode,
    errormessage,
    COUNT(*) AS errorCount
FROM 8a6***
WHERE eventtime >= '2024-04-21 00:00:00'
    AND eventtime <= '2024-05-21 23:59:59'
    AND (
        errorcode IS NOT NULL
        OR errormessage IS NOT NULL
    )
GROUP BY 1,
    2,
    3
ORDER BY 4 DESC;

[Run] (実行) を選択して結果を確認します。

結果から、私のアカウントでは Amazon S3 に関連するエラーが最も多く、最も多いエラーは CORS とオブジェクトレベルの設定に関連していることがわかりました。さらに質問をすることで、さらに深く掘り下げて詳細を確認できます。しかし、今度は自然言語クエリジェネレーターに別の命令を与えましょう。[Prompt] (プロンプト) フィールドに次のプロンプトを入力します。

過去 1 か月に使用した AWS サービスのトップ 10 はどれですか? イベント名も含めてください。

[Generate query] (クエリを生成) を選択すると、次の SQL クエリが生成されます。この SQL ステートメントは、フィールド名 (eventSource
eventNameCOUNT(*) AS event_count) を取得し、WHERE 句で過去 1 か月の日付間隔の行を制限し、行を eventSourceeventName でグループ化し、使用回数でソートし、自然言語で要求したように、結果を 10 行に制限します。

SELECT eventSource,
    eventName,
    COUNT(*) AS event_count
FROM 8a6***
WHERE eventTime >= timestamp '2024-04-21 00:00:00'
    AND eventTime <= timestamp '2024-05-21 23:59:59'
GROUP BY 1,
    2
ORDER BY 3 DESC
LIMIT 10;

[Run] (実行) を選択して結果を確認します。

これで、過去 1 か月間に記録されたエラーの数、エラーの対象となったサービス、およびエラーの原因についての理解が深まりました。わかりやすい言葉で質問してみて、生成されたクエリをログに対して実行して、この機能がデータでどのように機能するかを確認できます。

プレビューをお試しください
自然言語クエリ生成は、CloudTrail Lake の一部として米国東部 (バージニア北部) リージョンでプレビュー版として提供されています。

自然言語クエリ生成は、追加費用なしでプレビューで使用できます。CloudTrail Lake のクエリ料金は、クエリを実行して結果を生成する場合に適用されます。詳細については、AWS CloudTrail の料金をご覧ください。

自然言語クエリ生成の詳細と開始方法については、AWS CloudTrail Lake ユーザーガイドをご覧ください。

— Esra

原文はこちらです。