見出し画像

【AWS】 CloudWatchの解説

CloudWatch

AWSリソースとアプリケーションをリアルタイムで監視するサービスで、メトリクス、イベント、アラーム、ダッシュボード、ロギング、トレース、サービスレベル監視などの機能を提供します。


メトリクス

AWSサービスやカスタムアプリケーションから収集される数値データです。これらのメトリクスは、インスタンスのCPU使用率やディスクI/Oなど、パフォーマンス指標を監視するために使用されます。
基本モニタリングでは、メトリクスデータは5分ごとに収集されます。一方、詳細モニタリングでは、メトリクスデータは1分ごとに収集されます。どちらの場合も、収集されたデータは15ヶ月間保持されます。

基本メトリクス
AWSサービスにデフォルトで組み込まれているメトリクスで、AWSリソースの一般的な性能指標を提供。

設定例

  1. CPUUtilization: Amazon EC2インスタンスのCPU使用率をパーセンテージで示す。通常、高いCPU使用率は処理能力の飽和を示す。

  2. NetworkIn / NetworkOut: EC2インスタンスに入ってくる、またはそこから出ていくネットワークトラフィックの量をバイト単位で測定する。

  3. ReadIOPS / WriteIOPS: Amazon RDSやAmazon EBSでのディスクへの読み取り・書き込み操作の数を測定する。

  4. RequestCount: Amazon S3バケットへのリクエスト数を測定する。リクエスト数が多いと、それだけアクセスが高いことを示す。

  5. Latency: Amazon ELB(ロードバランサー)によるレイテンシーを秒単位で測定する。このメトリクスは、トラフィックを処理するのにどれだけ時間がかかっているかを示す。

  6. Invocations: AWS Lambda関数の呼び出し回数を測定する。関数がどれだけ使用されているかの指標。

詳細メトリクス
一部のAWSサービスでは、より高い頻度(たとえば1分間隔)でデータを提供する詳細なメトリクスが利用できる。これにより、より細かい監視が可能になる。

カスタムメトリクス
ユーザーが定義してCloudWatchに送信するメトリクス。これには、アプリケーションの特定のパフォーマンス指標やビジネスメトリクスなどが含まれる。

集計メトリクス
複数のデータポイントを集計して作成されるメトリクス。例えば、複数のインスタンスにまたがる平均CPU使用率など。


モニタリング

基本モニタリング
AWSサービスでデフォルトで提供されるメトリクス収集レベルです。標準モニタリングでは、一部の基本的なメトリクスが収集され、5分間隔でデータが送信される。無料で利用できます。

詳細モニタリング
より高頻度でメトリクスデータを取得するための有料オプションです。詳細モニタリングでは、1分間隔でデータが送信され、より詳細な情報を提供する。


CloudWatchアラーム

指定されたメトリクスに対して、特定のしきい値を設定し、そのしきい値を超えた場合や特定の条件が満たされた場合に通知を送信する機能。
SNS(Simple Notification Service)を介して通知を受け取ることができ、メール、SMS、Lambda関数などで通知を送信できます。また、アラームを使用して、Auto ScalingやEC2インスタンスの停止/開始などの自動化されたアクションをトリガーすることもできる。

3つの状態

  • OK: メトリクスが設定されたしきい値や条件に従って正常に動作している状態。

  • ALARM: メトリクスが設定されたしきい値や条件を満たさなくなった状態で、問題が発生していることを示す。ALARM状態に遷移した際に、設定された通知が送信され、自動化されたアクションがトリガーされます。例えば、CPU使用率が80%を超えた場合にALARM状態になり、通知を受け取ります。

  • INSUFFICIENT_DATA: CloudWatchが十分なデータを収集できない状態です。これは、メトリクスがまだ収集されていないか、収集が途中で停止した場合に発生する。



CloudWatchイベント

AWSリソースの変更や状態遷移に対応して自動的にアクションを実行する機能です。

イベントルール
イベントパターンやスケジュールに基づいてイベントに応じたアクションを実行するための設定です。例えば、特定の時間や間隔で定期的に実行されるイベントをスケジュールすることができます。

ターゲットアクション
CloudWatchイベントルールにマッチしたイベントに応じて、特定のアクションを自動的に実行できます。例えば、AWS Lambda関数を呼び出す、Amazon Simple Notification Service(SNS)トピックにメッセージを送信する、Amazon EC2インスタンスを起動/停止するなどのアクションが考えられます。


CloudWatch Logs

アプリケーションやシステムのログデータを収集、分析、保存、監視することができます。

ログデータの収集
CloudWatch LogsエージェントやAWS SDKを利用して、AWSリソースやオンプレミス環境からログデータを収集できます。また、AWSサービスの組み込みログ機能(例:Amazon VPC Flow Logs、AWS Lambda、Amazon RDSなど)を利用して、ログデータをCloudWatch Logsに送信することも可能です。

ログデータの監視
ログデータに対してリアルタイムのフィルタリングや検索を行うことができます。特定の文字列やパターンを含むログイベントを簡単に特定できます。

アラームと通知
ログデータ内の特定のパターンや文字列が一定数を超えた場合にアラームを設定し、通知を受け取ることができます。

ログデータの保存
ログデータを長期間保存することができます。保存期間は、短期間(例:7日)から無期限まで設定可能です。

ログデータの分析
CloudWatch Logs Insightsを利用することで、ログデータのインタラクティブな分析が可能


トレース

AWS X-Rayと連携して、分散アプリケーションのパフォーマンスを分析し、ボトルネックや遅延の原因を特定することができます。


サービスレベル監視

Amazon CloudWatch ServiceLensを使用して、マイクロサービスアーキテクチャを監視し、異常な動作やパフォーマンスの低下を迅速に特定できます。


EC2のCPU使用率に関するアラーム設定例

AWSマネジメントコンソールにサインインし、サービスページで「CloudWatch」を選択する。

CloudWatchコンソールの左側のナビゲーションペインで、「アラーム」を選択し、その後「アラームの作成」ボタンをクリックする。

「アラームの作成」ページで、以下の情報を入力する。

「アラーム名」: このアラームの名前を入力する(例: "HighCPUUsage")。 「説明」: アラームの詳細について説明を入力する(任意)。 「条件」セクションで以下の設定を行う。

「選択したメトリック」: 「EC2」カテゴリを選択し、「Per-Instance Metrics」をクリックする。 メトリクスリストから、監視対象となるEC2インスタンスの「CPU使用率」メトリックを選択し、「アラームの作成」ボタンをクリックする。 「条件」セクションで、以下の情報を入力する。

「しきい値」: アラームがトリガーされるしきい値を設定する(例: CPU使用率が80%を超えた場合)。 「期間」: アラームを評価する期間を選択する(例: 1分、5分、15分など)。 「アラーム状態」: 条件が満たされたときにアラームが「アラーム」状態になることを確認する。 「アクション」セクションで、アラームがトリガーされたときに実行するアクションを設定する。例えば、SNSトピックに通知を送信する場合、以下の設定を行う。

「アラーム状態のアクション」: 「通知を送信」を選択し、ドロップダウンから既存のSNSトピックを選択するか、新しいトピックを作成する。 「通知の詳細」: 通知の内容に関する詳細情報を入力する(任意)。

必要に応じて、「アラーム状態からの移行」や「不足データ状態のアクション」についても設定できる。

設定が完了したら、「アラームの作成」ボタンをクリック。












































よろしければサポートお願いします!よりいい情報を発信します。