目次
AWS CloudWatchとは?
Amazon CloudWatch はアマゾン ウェブ サービス(AWS)が提供するモニタリングサービスで、リソースやアプリケーションのパフォーマンスをリアルタイムで監視することができます。後ほど説明するログ、メトリクス、イベントを通して監視および運用データを収集します。これらのデータは自動化されたダッシュボードを通じて表示され、AWS のリソース、アプリケーション、サービスなどの情報を見ることができます。
Amazon CloudWatch の主要なワークフローは以下の4ステージから構成されます。
まずデータ収集から始まり、モニタリングとアクションを経て、運用決定に役立つ分析を実行します。
- 1. 収集
- 2. モニタリング
- 3. アクション
- 4. 分析
それぞれのステージについて解説します。
CloudWatch - Collect - (収集)
【目的】
AWSリソースやアプリケーションからのメトリクスとログを収集
【機能】
・ メトリクス収集:EC2やRDSなどのAWSサービスからパフォーマンスデータを収集
・ ログ収集:アプリケーションやシステム、イベントに関する記録を収集
CloudWatch Metrics(メトリクス)
CloudWatchのメトリクスは、AWSリソースやアプリケーションのパフォーマンス、使用状況に関する数値データのことです。例えば、CPU使用率、メモリ使用量、データベースの読み取り・書き込み回数、ネットワークトラフィックなどがあります。
目的:メトリクスの主な目的は、システムのパフォーマンスと効率性を測定し、リソースの使用状況やシステムを監視することです。メトリクスを使用し、監視を行うことでパフォーマンスの問題を迅速に特定し、最適化やトラブルシューティングを効果的に行うことができます。
特徴:メトリクスは数値化されたデータのため、時間経過での変化やしきい値超過の際にアラートを設定することができます。また、メトリクスには異常検出の機能があり、これを設定することで異常なパターンや行動を自動的に識別することができます。CloudWatch Alarmと併用し、異常を検知した場合に通知するといったケースで使用されます。
CloudWatch Log(ログ)
CloudWatchログとは、システムやアプリケーションの動作やイベントに関する記録です。エラーやアクセス情報など、様々な活動の記録が含まれます。
目的:ログを保存、監視、記録し、問題発生時の原因特定や分析のために利用されます。
特徴:特定のイベントやエラーに関する分析に適しており、リアルタイムでの監視や後からの検索・分析に利用されます。ユーザーは特定の時期、しきい値、メトリクス、またはパターンを監視することができます。例えば、特定のアプリケーションのリクエスト遅延グラフを見たり、データベースCPUのパフォーマンス履歴を確認したり、EC2インスタンスのCPU使用率を確認したりすることができます。
ログを使用することで問題の起点を探ることができ、問題への根本的解決へ迅速に対応することができます。
ログには3つの主要カテゴリーがあります。
- 1. Vended Logs:AWSによってネイティブに発行されるログ
- 2. AWSによって公開されるログ:
- Route 53、Lambda、CloudTrailを含む30以上のサービスがログを発行しています。
- 3. Custom Logs:ユーザー独自のアプリケーションやオンプレミスリソースから派生したログ
CloudWatch - Monitor -(モニタリング)
【目的】
収集されたデータを使ってシステムとアプリケーションのパフォーマンスを監視
【機能】
・ ダッシュボード:メトリクスを可視化してパフォーマンスを一目で把握
・ アラーム:特定のしきい値に達した場合に通知や自動アクションを実施
CloudWatch Dashboard(ダッシュボード)
CloudWatch ダッシュボードは、重要なリソースデータと情報をダッシュボードに集約し、簡単に把握できるようにするカスタマイズ可能なシステムです。
目的:情報の迅速な把握が可能であり、重要なデータを一目で確認できます。データの変動や傾向を視覚的に捉えるトレンド分析も備えていて、異なるリージョンのリソースでも一目でシステムの状態やパフォーマンスを把握することができます。
特徴:ウィジェットの作成やアニメーション化などのカスタマイズが可能なため、異なるニーズに合わせてデータセットやレイアウトを調整できます。また、グラフやチャートなどのグラフィカルな要素も表示できます。
CloudWatch Alarm(アラーム)
CloudWatchアラームは定義された条件や基準に沿って警告や通知を行うシステムです。CloudWatchメトリクスでも述べた通り、メトリクスの異常検出モデルに基づいたアラーム設定や、特定の条件を満たしたときにカスタムでアラーム設定ができます。
目的:問題や異常が発生した際に通知を送る早期警告や、問題が発生する前の潜在的リスクの特定、24時間365日の継続した監視などが目的です。
特徴:ユーザー自身がトリガーを設定することができ、アプリケーションやサービスごとに設定を変更することが可能です。自動化も特徴の一つで、人間の介入なしに自動的に効率的な監視を行うこともできます。
例えば、EC2のCPU使用率が80%を超えた場合に自動的にスケーリングすることや、アラートを受け取るように設定することなどが可能です。
また、メールやSMS(ショートメッセージサービス)など様々な方法で通知することができます。
CloudWatch - Act -(アクション)
【目的】
モニタリングデータを利用して自動的なアクションを起こす
【機能】
イベント: AWSリソースの状態変更や特定の操作に応答
CloudWatch Events(イベント管理)
CloudWatch イベントは、AWSのサービスやリソースからのイベント(変更、アクション、システムの状態変化など)に基づいて定義されたルールに従い、自動的にアクションを起こすサービスです。ルールはユーザーで設定することができ、「何かが起こった場合に、何かを実行する」といった条件を設定するものです。例えば、EC2インスタンスが停止したときにLambda関数を実行するようなことができます。
目的:設定したルールに基づいて自動でアクションを起こすツールです。
特徴:柔軟なルール設定が可能で、特定のイベントや条件に基づいたトリガーを細かく設定できます。例えば、AWSリソースの変更や特定の条件を満たすイベントに自動的に応答するルールや「毎日特定の時刻にバッチ処理を開始する」などの定期的なスケジュールに基づいたイベントのトリガーも可能です。
CloudWatch - Analyze-(分析)
【目的】
収集されたデータを分析しビジネスや運用に用いる
【機能】
・ ログ分析: CloudWatch Logs Insightsを使ったクエリと分析。
・ メトリクス分析: カスタム数式やデータ加工でより詳細な洞察を提供
・ 拡張データ保持: 最大15ヶ月間のメトリクス保持で長期的なトレンド分析
CloudWatch Logs Insights
Amazon CloudWatch Logs Insightsは、Amazon CloudWatchで提供されるログ分析のサービスです。サーバーやソフトウェアの複雑な設定や管理を行わずに、ログデータから情報を抽出し、直接問題に対処することができます。
Logs InsightsではAWSリソースやアプリケーションから生成されるログデータをリアルタイムで検索および分析することができます。
リソースの使用率も細かく監視し、メトリクス数式を用いたリアルタイムデータ分析を使用することでアプリケーションのパフォーマンスの最適化を図ることも可能となります。
目的:膨大なログデータの中からパターンやトレンドを素早く検索したり分析したりすることができます。
加えてAWS上で動作するアプリケーションやインフラのセキュリティ分析、運用監視にも使われます。Logs Insightsを使用することでより効率的にログデータを分析できるため、システムを安定して稼働させることができます。
特徴:ログデータの検索や分析にクエリ構文を使用できることが特徴です。収集されたデータはリアルタイムで分析され、分析結果をグラフや表などで可視化できます。
まとめ
以上がCloudWatchに関する解説となりましたので4つのステージについてまとめました。
収集 -Collect- |
・AWSまたはオンプレミスサーバーで実行されるリソース、アプリケーション、およびサービスからのメトリクスやログを収集する |
モニタリング -Monitor- |
・ダッシュボードを使ってアプリケーションやインフラを可視化 ・相関するログとメトリクスでトラブルシューティング(異常検出) ・アラートを設定 |
アクション -Act- |
・イベント管理及びオートスケーリングで運用変更に対する自動応答(リアルタイムでの修正) |
分析 -Analyze- |
・細かいデータと長期保持 ・クエリ構文を用いた検索や分析 |
CloudWatchは、AWSのリソースやアプリケーションパフォーマンスの監視に不可欠なツールです。企業によってはパフォーマンスの追跡、最適化、トラブルシューティングに利用されています。ログの収集からメトリクスの分析、アラームの設定、イベント管理まで、多岐にわたる機能を広範囲で提供しており、AWSを使用する上で非常に便利なサービスです。AWSを初めて使用する方も、これらの機能を理解し、適切に活用することで、AWSのリソース管理や障害対策を安易にすることができます。
以上Amazon CloudWatchについて最後までご覧いただきありがとうございました。