サブスクリプションを使用したログデータのリアルタイム処理
サブスクリプションを使用して CloudWatch Logs からのログイベントのリアルタイムフィードにアクセスし、カスタム処理、分析、他のシステムへのロードを行うために、Amazon Kinesis ストリーム、Amazon Kinesis Data Firehose ストリーム、AWS Lambda などの他のサービスに配信することができます。ログイベントが宛先サービスに送信されると、base64 でエンコードされ、gzip 形式で圧縮されます。
ログイベントのサブスクリプションを開始するには、Kinesis データストリームなど、イベントを配信する受信リソースを作成します。サブスクリプションフィルターは、AWS リソースに配信されるログイベントのフィルタリングに使用するフィルターパターンと、一致するログイベントの送信先に関する情報を定義します。
ロググループごとに、最大 2 つのサブスクリプションフィルターを関連付けることができます。
注記
送信先のサービスが、スロットリングの例外や再試行可能なサービス例外 (HTTP 5xx など) の再試行可能なエラーを返した場合、CloudWatch Logs は最大 24 時間配信を再試行し続けます。AccessDeniedException や ResourceNotFoundException などの再試行不可能なエラーの場合、CloudWatch Logs は再配信を試みません。
また、CloudWatch Logs は、サブスクリプションへのログイベントの転送に関する CloudWatch メトリクスを作成します。詳細については、「CloudWatch メトリクスによるモニタリング」を参照してください。
CloudWatch Logs サブスクリプションを使用して、Amazon OpenSearch Service クラスターにほぼリアルタイムでログデータをストリーミングすることもできます。詳細については、「Amazon OpenSearch Service への CloudWatch Logs データのストリーミング」を参照してください。
概念
各サブスクリプションフィルタは以下のキー要素で構成されています。
- log group name
-
サブスクリプションフィルタを関連付けるロググループ。このロググループにアップロードされたすべてのログイベントにはサブスクリプションフィルターが適用され、フィルターに一致するログイベントは、一致するログイベントを受信する宛先サービスに配信されます。
- フィルタパターン
-
CloudWatch Logs による各ログイベントのデータの解釈を記号によって記述したもので、送信先の AWS リソースに配信される内容を制限するフィルタリング式を含みます。フィルタパターンの構文の詳細については、「メトリックスフィルター、サブスクリプションフィルター、フィルター ログイベントのフィルターパターン構文」を参照してください。
- destination arn
-
サブスクリプションフィードの送信先として使用する Kinesis データストリーム、Kinesis Data Firehose ストリーム、または Lambda 関数の Amazon リソースネーム (ARN)。
- role arn
-
選択された宛先にデータを置くのに必要な権限を CloudWatch Logs に付与する IAM ロール。CloudWatch Logs は Lambda 関数自体のアクセスコントロール設定から必要なアクセス権限を取得できるため、Lambda の送信先にはこのロールは必要ありません。
- ディストリビューション
-
送信先にログデータを配信するのに使用する方法。この場合、宛先は Amazon Kinesis Data Streams です。デフォルトでは、ログデータは、ログストリームによってグループ化されています。さらに詳細に分散する場合でも、ログデータはランダムにグループ化することができます。