

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudWatch Logs Insights を使用してアプリケーションアクティビティをモニタリングする
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights"></a>

*Amazon Web Services、Ram Kandaswamy*

## 概要
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-summary"></a>

このパターンでは、Amazon CloudWatch Logs Insights を使用することで、アプリケーションにおける課題の自動検出とアラートを実装する手法を説明します。自動のログ分析とアラートを実装することで、本番環境のアプリケーションの問題をすばやく特定して対応できます。

ログは、システム動作のモニタリング、問題の特定、最適なパフォーマンスの確保において重要な役割を果たします。移行プロセス中、ログファイルは、新しい環境でのシステムの機能検証、互換性の問題の検出、予期しない動作の特定に役立ちます。発生する問題は、オペレーションやセキュリティに起因するものがほとんどです。セキュリティ関連の問題において、不正アクセスの試みや疑わしいアクティビティの早期検出は、セキュリティと規制の遵守に不可欠です。機密データや重要なシステムを扱う際には特に重要な要素となります。

このパターンは、以下を行う必要があるチームにとって特に重要です。
+ アプリケーションの高可用性を維持します。
+ 本番環境の問題に迅速に対応します。
+  AWS のサービス ログでキャプチャされないアプリケーション固有のエラーを分析します。
+ 事前構築されたインフラストラクチャなしでオンデマンドログ分析を実行します。

CloudWatch Logs Insights は、アプリケーションコード内にのみエラーコンテキストが存在するアプリケーション生成ログを分析するのに最適です。CloudWatch Logs Insights は、次のタスクに優れています。
+ 非構造化または半構造化ログデータをクエリします。
+ インシデント対応中にオンデマンド分析を実行します。
+ 複数のロググループ間でイベントを関連付けます。
+ 外部ツールを使用せずにクイックビジュアライゼーションを作成します。

## 前提条件と制限
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-prereqs"></a>

**前提条件**
+ アクティブにデプロイされた本稼働アプリケーション AWS アカウント
+ 本番環境のアプリケーションにおけるログの記録形式と例外パターンの基本理解
+ Amazon CloudWatch Logs へのストリーミング設定を行ったアプリケーションログ

**制限事項**
+ 一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「[AWS サービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照して、サービスのリンクを選択してください。

## アーキテクチャ
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-architecture"></a>

次の図は、CloudWatch Logs Insights がリソースログを評価し、関連する視覚データを CloudWatch ダッシュボードに送信する流れを示しています。

![\[CloudWatch Logs Insights はリソースログを評価し、視覚データをダッシュボードに送信します。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/082ff4b6-9303-42e6-bc62-263e2254f232/images/b1cbb699-07cd-45e6-ac06-839159bafa6b.png)


この図表は、次のワークフローを示しています:

1. リソースが CloudWatch Logs にログを発行します。リソースには、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Simple Storage Service (Amazon S3) バケットなどの AWS リソースを含めることができます。もう一方の例では、CloudWatch にログを発行できる CloudWatch Agent がインストールされたオンプレミスシステムが含まれます。

1. CloudWatch Logs Insights は、関連するパターン文字列をフィルタリングします。検索パターン文字列の例には「エラー」や「例外」、あるいは特定の正規表現が含まれます。

1. 視覚パターンの CloudWatch ダッシュボードへの追加は、通常、本番環境のサポートチームおよび開発者が行います。

**自動化とスケール**

開発者は AWS Cloud Development Kit (AWS CDK)、、、または AWS SDKs を使用して複数の文字列パターンを処理することで AWS CloudFormation、このパターンのソリューションを自動化できます。また、この自動化プロセスは継続的インテグレーションやデプロイ (CI/CD) DevOps プロセスに組み込むこともできます。

## ツール
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-tools"></a>

**AWS のサービス**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) を使用すると、すべてのシステム、アプリケーション、 からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。

## ベストプラクティス
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-best-practices"></a>

**クエリ効率**
+ [ロググループ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)の定義・設定を行うことで、関連するログデータの分析ができます。
+ フィールドエクスプローラーを使えば、ログデータで利用可能な構造とフィールドに対する理解を深めることができます。
+ [CloudWatch Logs Insights のクエリ構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_LogsInsights.html)を使用することで、クエリを効率的に記述できます。
+ [サンプルクエリ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html)を特定の要件に合わせて調整すれば、迅速な分析が可能です。
+ クエリの時間範囲を制限して、スキャンされるデータを減らし、パフォーマンスを向上させます。
+ [クエリを保存](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_Insights-Saving-Queries.html)しておけば、将来的に再利用でき、時間の節約と安定した分析に寄与します。

**セキュリティ**
+ CloudWatch Logs Insights とロググループに適切な IAM [ポリシー](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html)を適用します。最小特権の原則に従い、タスク実行に必要最小限の権限を付与します。詳細については、IAM ドキュメントの「[最小限の特権を認める。](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)」と「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
+ 機密ログデータを扱う際には、[AWS KMSを使用してデータ暗号化](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Encrypt.html)を有効にします。

**コスト最適化**
+ CloudWatch Logs Insights は、クエリごとにスキャンされたデータの GB ごとに課金されます。時間範囲を絞り込み、特定のロググループをターゲットにしてコストを削減します。
+ 適切なログ保持ポリシーを設定して、ストレージコストを管理します。
+ 大規模な履歴データセットを頻繁に分析するには、ログを Amazon S3 にエクスポートしAmazon Athena を使用することを検討してください。
+ [CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)を確認して、ユースケースのコストへの影響を理解します。

## エピック
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-epics"></a>

### ロググループを作成し、ダッシュボード上に表示されるように設定します。
<a name="create-log-group-and-configure-logs-to-view-in-dashboard"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| IAM 許可を設定します。 | 次の設定を行い、IAM のアクセスを許可してください。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)IAM ポリシーを作成する方法、または既存のポリシーにアクセス許可を追加する方法について、詳しくは *IAM ユーザーガイド*の「[カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」および「[IAM ポリシーを編集する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)」をご確認ください。さらに詳しくは、*Amazon CloudWatch Logs ユーザーガイド*の「[Identity and access management for Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/auth-and-access-control-cwl.html)」および「[CloudWatch Logs permissions reference](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/permissions-reference-cwl.html)」をご確認ください。 | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア | 
| ロググループを作成します。 | ロググループの作成には次のいずれかの作業を実施します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html) | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア | 
| CloudWatch Logs Insights クエリを作成します。 | CloudWatch Logs Insights クエリを作成して保存するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html) | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア | 
| CloudWatch ダッシュボードで視覚データを作成します。 | 以下の手順に従い、CloudWatch ダッシュボードで視覚データを作成します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/monitor-application-activity-by-using-cloudwatch-logs-insights.html)ダッシュボードのオプションと機能について、詳しくは *Amazon CloudWatch Logs ユーザーガイド*の「[Amazon CloudWatch ダッシュボードの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」および「[ダッシュボード変数を使用した柔軟な CloudWatch ダッシュボードの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html)」をご確認ください。 | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア | 

## トラブルシューティング
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| クエリ結果を表示できない、またはクエリが破損している | [サンプルクエリ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html)を修正した作業クエリを確認します。クエリの一部 (フィルターやフィールドなど) に小さな増分変更を実行し、CloudWatch Logs の[クエリジェネレーター機能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Assist.html)を活用します。 | 
| ロググループがログストリームを生成しない | IAM ポリシーで、[CreateLogStream](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html) オペレーションと [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html) オペレーションのリソースにワイルドカード文字 `(*)` の値が提供されていることを確認します。このワイルドカードアクセス許可がないと、`create ` オペレーションは成功しません。 | 
| クエリのタイムアウトまたはパフォーマンスの低下 | 時間範囲を短縮するか、特定のロググループをターゲットにするか、クエリを簡素化します。複雑な正規表現 (`regex`) パターンと大きな時間範囲により、クエリ時間が長くなります。 | 
| 有効な時間範囲のデータは返されません | ロググループの選択を検証し、ログが取り込まれていることを確認し (ログストリームのレビュー）、フィルターパターンがログ形式と一致することを確認します。 | 

## 関連リソース
<a name="monitor-application-activity-by-using-cloudwatch-logs-insights-resources"></a>
+ [Analyzing Log Data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)
+ [Amazon CloudWatch のよくある質問](https://aws.amazon.com/cloudwatch/faqs/#topic-0)
+ [ダッシュボード変数を使用した柔軟な CloudWatch ダッシュボードの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html)
+ [Logs Insights QL の使用を開始する: クエリチュートリアル](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_Tutorials.html)
+ [自然言語を使用して CloudWatch Logs Insights クエリを生成および更新する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatchLogs-Insights-Query-Assist.html)
+ [AWS SDK または CLI で PutDashboard を使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/example_cloudwatch_PutDashboard_section.html)
+ [ロググループとログストリームの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)