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

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

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

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

注記

大量の 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. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

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

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

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

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

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

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

    選択した 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 クラスターに送信されるようになります。詳細については、「フィルターを使用したログイベントからのメトリクスの作成」を参照してください。

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

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