【AWS基礎】Amazon CloudWatchとは | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

今日はAWSのサービス監視機能として有名な、Amazon CloudWatchについて勉強していきます。

2023年4月時点の情報です。

 

もくじ

1.Amazon CloudWatchとは

2.Amazon CloudWatchの主な機能

 ・メトリクス

 ・アラーム

 ・ログ

3.Amazon CloudWatchのその他の機能

 

1.Amazon CloudWatchとは

Amazon CloudWatchは、AWSのサービスモニタリング(監視)や、モニタリングデータの活用を行えるサービスである。

AWS上のサービスはもちろん、オンプレミスや他のクラウド上のリソースとアプリケーションも監視対象にできる(ただし統合CloudWatchエージェントをインストールしておく必要あり)。

 

2.Amazon CloudWatchの主な機能

Amazon CloudWatchの主な機能を3つ紹介する。

 

◎メトリクス

メトリクス(CloudWatch Metrics)は、監視対象リソースのメトリクスの収集・集計・可視化を行う機能である。

メトリクスとは、システムのパフォーマンスに関するデータのことで、

CPU使用率の推移やデータのI/Oなどが例として挙げられる。

 

デフォルトでは、無料で多数のサービスの基本メトリクスが自動で発行されている。

(どのサービスでどんなデータが取られているかは公式ドキュメント参照)

 

一部のサービスでは、有料だが、より詳細なメトリクスの発行も設定できる。

(どのサービスで詳細メトリクスを発行できるかは公式ドキュメント参照)

 

例えばAmazon EC2なら、CPU使用率のメトリクス取得間隔を、基本メトリクスの5分から1分に変更したり、メトリクスを取得したりといったことができる。

 

↓EC2インスタンスのCPU使用率のメトリクス(無料範囲)をグラフで確認した例

 

↓グラフによる可視化方法を指定したり、メトリクスデータを利用して統計情報を計算・確認したりといったこともできる。

 

◎アラーム

アラーム(CloudWatch Alarms)では、収集したメトリクスデータを利用して、アラームと実行アクションを定義できる。

例えば、CPU使用率がxx%を超えたらアラームを発行し、

Amazon SNSに通知を送信する、Amazon EC2 Auto Scalingのアクションを実行するといったことができる。Systems Managerにて、OpsItemやインシデントを作成することも可能だ。

また、複数の条件を全て満たしたときのみアラームを発行することもできる(複合アラーム)。

 

アラームの状態には以下の3つがある。

状態 説明
OK 正常
アラーム状態 異常(定義された状態である)
データ不足 データが不足しており、状態の判別不可

 

◎ログ

CloudWatch Logsは、AWSサービスやアプリケーションのログファイルの監視・保存・アクセスが行えるサービスである。

ログの取得自体は、統合CloudWatchエージェント(旧サービスではCloudWatch Logsエージェント)が行い、CloudWatch Logsに送られる。受信したログは、CloudWatch Logsにて階層構造で管理される。

エージェントをインストールしていれば、オンプレミスサーバからもログを送信できる。

 

3.Amazon CloudWatchのその他の機能など

CloudWatchには、上で紹介した以外にも、様々な機能がある。

一部機能は、AWSの他のサービスと統合したり、後継サービスに引き継がれたりもしている。

その他の主な機能の概要を以下に示す。

 

機能 概要
CloudWatch  Events ※後継サービス「Amazon EventBridge」に統合。
イベント(リソースの変更)を契機に、定義済のルールとイベント内容を照らし合わせ、一致したイベントの実行を管理する機能。イベント駆動だけでなく、スケジュール駆動でもルールを設定できる。
CloudWatch Service Lens  ※「AWS X-Ray」に統合。
トレース、メトリクス、ログ、アラーム、および他のリソースヘルス情報を一元管理する機能。アプリケーションのパフォーマンス状況を一気通貫で確認できるため、ボトルネックを特定しやすい。クロスアカウントにも対応。
CloudWatch Evidently 新機能の適用を部分的に行い、利用者の状況をモニタリング・検証する機能。全体適用前に、新機能のパフォーマンス性やリスクを確認できる。また、機能のバリエーションを同時に最大5つ適用し、その中で優れている機能をレコメンドすることもできる。
CloudWatch RUM Webアプリケーションのクライアント側のパフォーマンスデータを、ほぼリアルタイムで現実のユーザセッションから収集・表示する機能。
CloudWatch Container Insights コンテナ関連のメトリクスやログを収集・集計・要約する機能。Amazon ECS、Amazon EKSのいずれでも利用できる。
CloudWatch Lambda Insights Lambdaで実行されるサーバレスアプリケーションのメトリクスとログの収集・集計を行う機能。
CloudWatch Contributor Insights ログを分析して、システムパフォーマンスに影響する要因の上位一覧を提供する機能。
CloudWatch Application Insights アプリケーションのリソースを監視し、データを継続的に分析することで、問題の徴候を検出する機能。

 

 

今回は以上!