CloudWatch Logs データの Amazon Elasticsearch Service へのストリーミング - Amazon CloudWatch ログ

CloudWatch Logs データの Amazon Elasticsearch Service へのストリーミング

CloudWatch Logs のサブスクリプションを介して、CloudWatch Logs のロググループが Amazon Elasticsearch Service (Amazon ES) クラスターにほぼリアルタイムで受信したデータをストリーミングするように設定できます。詳細については、「サブスクリプションを使用したログデータのリアルタイム処理」を参照してください。

ストリーミングされるログデータの量によっては、関数に対して関数レベルの同時実行数の制限を設定することもできます。詳細については、関数レベルの同時実行数の制限を参照してください。

注記

大量の CloudWatch Logs データを Amazon ES にストリーミングすると、使用料が高くなる可能性があります。請求情報とコスト管理コンソールで予算を作成することをお勧めします。詳細については、「予算によるコストの管理」を参照してください。

前提条件

開始する前に、Amazon ES ドメインを作成します。Amazon ES ドメインではパブリックアクセスまたは VPC アクセスが可能ですが、その場合はドメインの作成後にアクセスのタイプを変更することはできません。後で Amazon ES ドメイン設定を確認し、クラスターが処理するデータの量に基づいてクラスター設定を変更することができます。

Amazon ES の詳細については、Amazon Elasticsearch Service デベロッパーガイドを参照してください。

Amazon ES ドメインを作成するには

コマンドプロンプトで、次の create-elasticsearch-domain コマンドを使用します。

aws es create-elasticsearch-domain --domain-name my-domain

Amazon ES へのロググループのサブスクライブ

CloudWatch コンソールを使用して、ロググループを Amazon ES に登録できます。

ログ グループを Amazon ES にサブスクライブする方法

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. ロググループの名前を選択します。

  4. [Actions」 (アクション)、[Create Elastisearch subscription filter ] (Elastisearch サブスクリプションフィルターを作成) の順に選択します。

  5. このアカウントのクラスターにストリーミングするか、別のアカウントにストリーミングするかを選択します。

  6. [Amazon ES cluster (Amazon ES クラスター)] には、前のステップで作成したクラスターを選択します。

  7. [Lambda Function (Lambda 関数)] の [Lambda IAM Execution Role (Lambda IAM 実行ロール)] で、Amazon ES の呼び出し時に Lambda が使用する IAM ロールを選択してから、[Next (次へ)] を選択します。

    選択した IAM ロールは、これらの要件を満たす必要があります。

    • 信頼関係に lambda.amazonaws.com が含まれている必要があります。

    • 以下のポリシーが含まれている必要があります。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "es:*" ], "Effect": "Allow", "Resource": "arn:aws:es:region:account-id:domain/target-domain-name/*" } ] }
    • ターゲットの Amazon ES ドメインで VPC アクセスを使用する場合、ロールには AWSLambdaVPCAccessExecutionRole ポリシーがアタッチされている必要があります。Amazon が管理するこのポリシーにより、お客様の VPC へのアクセスが Lambda に許可され、Lambda は VPC の Amazon ES エンドポイントに書き込むことができます。

  8. [ログの形式] で、ログの形式を選択します。

  9. [Subscription Filter Pattern (サブスクリプションフィルタパターン)] に、ログイベントで検索する用語やパターンを入力します。これにより、関心のあるデータだけが Amazon ES クラスターに送信されるようになります。詳細については、mfleufiltersフィルターを使用してログイベントからメトリクスを作成する を参照してください。

  10. (オプション) [Select Log Data to Test (テストするログデータの選択)] を開き、ログストリームを選択してから、[Test Pattern (テストパターン)] を選択して、期待通りの結果が出ることを確認します。

  11. [ストリーミングの開始] を選択します。