Amazon Web Services ブログ
Amazon CloudWatch の強化された自動ダッシュボードでログ使用状況を分析する
Amazon CloudWatch の強化された自動ダッシュボードを活用することで、Amazon CloudWatch Logs の使用パターン、コスト、潜在的な問題をより詳しく把握し、効率的な運用管理を実現できます。この記事では、使用状況を理解することの重要性、ダッシュボードの確認方法、そこから得られる知見について説明します。さらに、CloudWatch の使用状況とコストを把握するための他の便利なツールもご紹介します。
図1. CloudWatch Logs の新しい強化された自動ダッシュボードの一部
使用状況の把握が重要な理由
CloudWatch は、アプリケーションやインフラストラクチャのオブザーバビリティを把握するための監視サービスです。オブザーバビリティにより、カスタマーエクスペリエンスの理解、運用の健全性維持、リソース使用の最適化、パフォーマンスの変化への迅速な対応が可能になります。CloudWatchは、メトリクス、ログ、トレースデータを収集することで、データに基づいた分析、可視化、アクションの実行を可能にします。
アプリケーションに関連するコストを理解することは、そのアプリケーションがもたらす価値を理解する上で重要な要素です。コストと使用状況のデータにより、オブザーバビリティなどの運用サポートに関連するものを含め、コスト最適化が可能な領域を特定できます。CloudWatch の使用状況の要因を理解することで、オブザーバビリティ戦略についてデータに基づいた意思決定を行い、その変更がコストに与える影響を確認することができます。さらに、CloudWatch でのエラーやスロットリングの発生箇所を理解することで、期待するすべてのデータを使用できるよう、問題を特定して解決することができます。
この新しいダッシュボードは、CloudWatch Logs でよく要求される領域の使用状況の詳細を提供する、すぐに使える機能です。ダッシュボードは CloudWatch コンソールにあります。
- 左側のメニューの「ダッシュボード」セクションに移動し、次に「自動ダッシュボード」タブに移動します。
- このタブには、すぐに使えるダッシュボードがいくつか含まれています。CloudWatch Logs を選択してダッシュボードを表示します。
図2. CloudWatch Logs の新しい改善された自動ダッシュボードの一部
ダッシュボードの概要
ダッシュボードはセクションごとに分かれており、CloudWatch Logs の使用状況をさまざまな観点から確認できます。 表示されるデータは、現在選択しているリージョンとアカウントに対応しています。他のリージョンの CloudWatch 使用状況を確認するには、コンソール右上のリージョン選択を変更するだけです。
ほとんどのデータは時系列グラフとして表示され、変更の影響を観察することができます。数値表示では、選択した期間の集計データを確認できます。ダッシュボード右上の時間設定で、期間とタイムゾーンの両方を調整できます。特定の時系列データを単一のグラフで詳しく調べるには、凡例で名前を選択して他のすべての系列を非表示にします。同じ系列名を含む関連ウィジェットは、自動的に選択に合わせて調整されます。系列名を再度選択すると、全体表示に戻ります。
図3. 凡例から選択した後、単一の系列が表示されているCloudWatchダッシュボードウィジェット
ダッシュボードは使用状況を表示します。これをコストに変換する方法の詳細については、Amazon CloudWatch 料金ページ を参照してください。
ダッシュボードは、それぞれに複数のダッシュボードウィジェットを持ついくつかの主要なセクションに分かれています。
- アカウント別のログ取り込み
- ロググループ別のログ取り込み
- サービス使用状況
- Embedded Metric Format (EMF)
- サブスクリプションフィルター
- ログ異常検出
- ログデータ保護
- ログトランスフォーマー
セクション1と2: ログ取り込み
CloudWatch Logs のコストの中で、通常、ログの取り込みが最も大きな要因の一つとなっています。ログ取り込みにかかるコストは、それがもたらす価値に見合ったものであるべきです。どのロググループがコストを発生させているかを把握することで、関連するアプリケーションを担当するチームと建設的な話し合いを持つことができます。取り込むログの内容(ボリューム、詳細度、フィルタリング)を検討するとともに、必要な機能に応じて、標準ログクラスか低頻度アクセスログクラス のどちらを使用するかを検討することをお勧めします。これはロググループレベルで設定できます。
セクション1: アカウントのログ取り込み
ウィジェット
- 取り込まれたログの合計GBボリューム
- 時間経過に伴う取り込まれたログのGBボリューム
図4. アカウントのログ取り込みに関するダッシュボードセクション
セクション2: ロググループごとのログ取り込み
ウィジェット
- ロググループ間でログ取り込み(GB)がどのように分散されているかを示す円グラフ
- ロググループ別の時間経過に伴うボリューム(GB)ログ取り込み
図5. ロググループ別に分類されたログ取り込みに関するダッシュボードセクション
セクション3: サービス使用状況
サービスの使用量には、CloudWatchへの直接的または間接的なすべてのAPI呼び出しが含まれます。ロググループにログをアップロードする際は、PutLogEvents APIが使用されます。同様に、Logs Insightsでクエリを実行する際は、StartQuery APIが呼び出されます。 CloudWatchには API 呼び出しの制限 があり、この制限を超えるとAPIエラーやスロットリングが発生する可能性があり、これらはこのセクションで確認できます。スロットリングについて詳しくは、「CloudWatchログでスロットリングエラーのトラブルシューティングを行うにはどうすればよいですか?」をご参照ください。
ウィジェット
- 時間経過に伴う主要なAPI呼び出しの数(例:DescribeDestinations)
- 時間経過に伴うAPIエラー数
- 時間経過に伴うAPIスロットリング数
図6. サービス使用状況のダッシュボードセクション
セクション4: Embedded Metric Format
Embedded Metric Format (EMF) を使用すると、メトリクスと詳細なログ情報を同じログイベントに含めることができます。CloudWatch は、EMF ログイベントを取り込む際に、自動的に対応するメトリクスを CloudWatch Metrics に作成します。メトリクスデータと詳細なログ情報を同じイベントで組み合わせることで、ログメッセージとそれに関連するメトリクスの間に直接的な関連付けが可能となります。これは、PutMetricData API を使用してメトリクスを送信する代替手段として効果的です。 ログから適切にメトリクスを自動抽出するために、EMF仕様 に従って正しいJSON構造を確保してください。提供されているウィジェットを使用して、取り込みの失敗を監視することができます。
ウィジェット
- ロググループ名別に分類された、時系列の検証エラー数
- ロググループ名別に分類された、時系列の解析エラー数
図7. Embedded Metric Format (EMF)のダッシュボードセクション
セクション5: サブスクリプションフィルター
サブスクリプションフィルター は、CloudWatch Logs から他の AWS サービスへのログデータのリアルタイムストリーミングを可能にし、追加の処理、分析、またはストレージを行います。ロググループにサブスクリプションフィルターを作成して、一致するログイベントを選択した宛先に自動的に送信できます。
サブスクリプションフィルター自体には追加コストは発生しませんが、Amazon Data Firehose や AWS Lambda などの宛先サービスによってコストが発生します。転送されたイベントの数とそのソースロググループを監視することで、使用状況と関連コストを把握できます。このセクションには、ロググループ別に分類された時系列のエラーとスロットリングのグラフも含まれているため、問題を特定して修復できます。
ウィジェット
- ロググループ名別に分類された、時系列の転送イベント数
- ロググループ名別に分類された、時系列のエラー数
- ロググループ名別に分類された、時系列のスロットリング数
図8. サブスクリプションフィルターのダッシュボードセクション
セクション6: ログ異常検知
CloudWatch ログの異常検出 は、機械学習を使用してログデータを分析し、ログのパターンを識別します。例えば、ステータスコード 200 のログイベントが突然減少するような異常な動作を検出します。異常が検出された場合、CloudWatch はログイベント数の変化の大きさや「Exception」などの特定のキーワードに基づいて、検出結果に高、中、低の優先度を割り当てます。なお、Logs Insights の パターン機能 は、異常検出機能とは独立して使用することができます。
ウィジェット
- 検出された低、中、高のログ異常の総数
図9. ログ異常検知のダッシュボードセクション
セクション7: ログデータ保護
CloudWatch Logs を使用すると、取り込み時に機密データを識別してマスクする データ保護ポリシー を作成できます。ポリシー内で、クレジットカード番号、APIキー、個人識別情報(PII)などの 機密データの種類 を定義します。個別のロググループまたはアカウント全体に対してポリシーを作成できます。
ウィジェット
- ロググループ別に分類された、時系列のポリシーに一致するログイベント数
図10. ログデータ保護のダッシュボードセクション
セクション8: ログトランスフォーマー
ログを標準化したい場合、CloudWatch Log Transformers を使用してログデータを取り込み時に処理および変換することができます。Transformers を使用することで、フィールド名の標準化(user_id、userId、user などの表記ゆれの統一)によって一貫性を向上させたり、検索を容易にするためにログイベントを JSON 形式に変換して構造化したり、アプリケーション名などの追加データを含めることでコンテキストを強化したりすることができます。Transformers は 組み込みプロセッサー を使用し、これらを連続して適用することで目的の結果を達成できます。Transformersは個別のロググループに適用することも、アカウント全体に適用することも可能です。
ウィジェット
- ロググループ別の、時系列の変換されたログイベント数
- ロググループ別の、時系列の変換されたバイト数
- ロググループ別の、時系列の変換エラー数
図11. ログトランスフォーマーのダッシュボードセクション
コスト
CloudWatch Logsダッシュボードは、追加コストなしですぐに使用できるエクスペリエンスを提供します。
使用状況とコストを理解するためのその他のツール
この新しいダッシュボードは貴重な洞察を提供しますが、CloudWatch の使用状況とコストを理解するための他のリソースもあります。
- CloudWatch コストの分析、最適化、削減 に関する AWS ドキュメント
- AWS Cost Explorer: アカウント全体の AWS 支出を可視化、理解、管理
- CUDOS Dashboard: Cloud Intelligence Dashboards フレームワークの一部で、組織全体の AWS 支出と使用状況に関する深い洞察を提供
- 特定の関心領域を探索するために、独自のカスタム CloudWatch ダッシュボードも構築できます。例と AWS CloudFormation テンプレートについては、「Visualizing Amazon CloudWatch Costs – Part 1」および「Visualizing Amazon CloudWatch Costs – Part 2 – Where does the data come from?」を参照してください。
注意:独自の CloudWatch カスタムダッシュボードを作成すると、ダッシュボードに関連するコストが発生します。詳細については、Amazon CloudWatch の料金 ページを参照してください。
まとめ
この強化された標準搭載の CloudWatch 自動ダッシュボードは、追加コストなしで CloudWatch Logs の使用状況をより深く理解することができます。このデータを活用して、コストの要因を特定し、サービスから最大の価値を得るためにCloudWatch の使用を最適化することができます。 使用状況の監視を強化するために、このダッシュボードに表示されているロググループの取り込みなどの詳細なメトリクスデータに基づいて、請求アラーム や CloudWatch アラーム の設定を検討してください。CloudWatch アラームは、個別のメトリクスまたはメトリクス数式を使用して設定でき、静的しきい値または異常検出のいずれかを柔軟に使用することができます。
本記事は、Analyze logs usage with Amazon CloudWatch enhanced automatic dashboard を翻訳したものです。翻訳は Technical Account Manager の 日平 が担当しました。