翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudWatch Logs Insights を使用してアプリケーションアクティビティをモニタリングする
Amazon Web Services、Ram Kandaswamy
概要
このパターンでは、Amazon CloudWatch Logs Insights を使用することで、アプリケーションにおける課題の自動検出とアラートを実装する手法を説明します。自動のログ分析とアラートを実装することで、本番環境のアプリケーションの問題をすばやく特定して対応できます。
ログは、システム動作のモニタリング、問題の特定、最適なパフォーマンスの確保において重要な役割を果たします。移行プロセス中、ログファイルは、新しい環境でのシステムの機能検証、互換性の問題の検出、予期しない動作の特定に役立ちます。発生する問題は、オペレーションやセキュリティに起因するものがほとんどです。セキュリティ関連の問題において、不正アクセスの試みや疑わしいアクティビティの早期検出は、セキュリティと規制の遵守に不可欠です。機密データや重要なシステムを扱う際には特に重要な要素となります。
このパターンは、以下を行う必要があるチームにとって特に重要です。
アプリケーションの高可用性を維持します。
本番環境の問題に迅速に対応します。
AWS のサービス ログでキャプチャされないアプリケーション固有のエラーを分析します。
事前構築されたインフラストラクチャなしでオンデマンドログ分析を実行します。
CloudWatch Logs Insights は、アプリケーションコード内にのみエラーコンテキストが存在するアプリケーション生成ログを分析するのに最適です。CloudWatch Logs Insights は、次のタスクに優れています。
非構造化または半構造化ログデータをクエリします。
インシデント対応中にオンデマンド分析を実行します。
複数のロググループ間でイベントを関連付けます。
外部ツールを使用せずにクイックビジュアライゼーションを作成します。
前提条件と制限
前提条件
アクティブにデプロイされた本稼働アプリケーション AWS アカウント
本番環境のアプリケーションにおけるログの記録形式と例外パターンの基本理解
Amazon CloudWatch Logs へのストリーミング設定を行ったアプリケーションログ
制限事項
一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「AWS サービス (リージョン別)
」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択してください。
アーキテクチャ
次の図は、CloudWatch Logs Insights がリソースログを評価し、関連する視覚データを CloudWatch ダッシュボードに送信する流れを示しています。

この図表は、次のワークフローを示しています:
リソースが CloudWatch Logs にログを発行します。リソースには、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスや Amazon Simple Storage Service (Amazon S3) バケットなどの AWS リソースを含めることができます。もう一方の例では、CloudWatch にログを発行できる CloudWatch Agent がインストールされたオンプレミスシステムが含まれます。
CloudWatch Logs Insights は、関連するパターン文字列をフィルタリングします。検索パターン文字列の例には「エラー」や「例外」、あるいは特定の正規表現が含まれます。
視覚パターンの CloudWatch ダッシュボードへの追加は、通常、本番環境のサポートチームおよび開発者が行います。
自動化とスケール
開発者は AWS Cloud Development Kit (AWS CDK)、、、または AWS SDKs を使用して複数の文字列パターンを処理することで AWS CloudFormation、このパターンのソリューションを自動化できます。また、この自動化プロセスは継続的インテグレーションやデプロイ (CI/CD) DevOps プロセスに組み込むこともできます。
ツール
AWS のサービス
Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、 からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。
ベストプラクティス
クエリ効率
ロググループの定義・設定を行うことで、関連するログデータの分析ができます。
フィールドエクスプローラーを使えば、ログデータで利用可能な構造とフィールドに対する理解を深めることができます。
CloudWatch Logs Insights のクエリ構文を使用することで、クエリを効率的に記述できます。
サンプルクエリを特定の要件に合わせて調整すれば、迅速な分析が可能です。
クエリの時間範囲を制限して、スキャンされるデータを減らし、パフォーマンスを向上させます。
クエリを保存しておけば、将来的に再利用でき、時間の節約と安定した分析に寄与します。
セキュリティ
CloudWatch Logs Insights とロググループに適切な IAM ポリシーを適用します。最小特権の原則に従い、タスク実行に必要最小限の権限を付与します。詳細については、IAM ドキュメントの「最小限の特権を認める。」と「IAM でのセキュリティのベストプラクティス」を参照してください。
機密ログデータを扱う際には、AWS KMSを使用してデータ暗号化を有効にします。
コスト最適化
CloudWatch Logs Insights は、クエリごとにスキャンされたデータの GB ごとに課金されます。時間範囲を絞り込み、特定のロググループをターゲットにしてコストを削減します。
適切なログ保持ポリシーを設定して、ストレージコストを管理します。
大規模な履歴データセットを頻繁に分析するには、ログを Amazon S3 にエクスポートしAmazon Athena を使用することを検討してください。
CloudWatch の料金
を確認して、ユースケースのコストへの影響を理解します。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
IAM 許可を設定します。 | 次の設定を行い、IAM のアクセスを許可してください。
IAM ポリシーを作成する方法、または既存のポリシーにアクセス許可を追加する方法について、詳しくは IAM ユーザーガイドの「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」および「IAM ポリシーを編集する」をご確認ください。さらに詳しくは、Amazon CloudWatch Logs ユーザーガイドの「Identity and access management for Amazon CloudWatch Logs」および「CloudWatch Logs permissions reference」をご確認ください。 | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア |
ロググループを作成します。 | ロググループの作成には次のいずれかの作業を実施します。
| AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア |
CloudWatch Logs Insights クエリを作成します。 | CloudWatch Logs Insights クエリを作成して保存するには、次の手順を実行します。
| AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア |
CloudWatch ダッシュボードで視覚データを作成します。 | 以下の手順に従い、CloudWatch ダッシュボードで視覚データを作成します。
ダッシュボードのオプションと機能について、詳しくは Amazon CloudWatch Logs ユーザーガイドの「Amazon CloudWatch ダッシュボードの使用」および「ダッシュボード変数を使用した柔軟な CloudWatch ダッシュボードの作成」をご確認ください。 | AWS 管理者、AWS DevOps、AWS システム管理者、クラウド管理者、クラウドアーキテクト、DevOps エンジニア |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
クエリ結果を表示できない、またはクエリが破損している | サンプルクエリを修正した作業クエリを確認します。クエリの一部 (フィルターやフィールドなど) に小さな増分変更を実行し、CloudWatch Logs のクエリジェネレーター機能を活用します。 |
ロググループがログストリームを生成しない | IAM ポリシーで、CreateLogStream オペレーションと CreateLogGroup オペレーションのリソースにワイルドカード文字 |
クエリのタイムアウトまたはパフォーマンスの低下 | 時間範囲を短縮するか、特定のロググループをターゲットにするか、クエリを簡素化します。複雑な正規表現 ( |
有効な時間範囲のデータは返されません | ロググループの選択を検証し、ログが取り込まれていることを確認し (ログストリームのレビュー)、フィルターパターンがログ形式と一致することを確認します。 |