AWSの監視を行う上で、重要な役割を果たす監視サービスが、AWS提供のAmazon CloudWatchです。CloudWatchは複数の機能が提供されているため、本記事では基本的な機能を纏めて解説します。1、「Amazon CloudWatch」とは?本章では、Amazon CloudWatchの概要や特徴、料金体系について解説いたします。(1)Amazon CloudWatchの概要・特徴AWSが提供する監視サービスの「Amazon CloudWatch」は、コンピューティング、ストレージ、データベース、ネットワーキングなど、AWS上のあらゆるリソースのメトリクスを収集し、リアルタイムでの可視化や監視が可能です。例えば、EC2インスタンスのCPU使用率やRDSデータベースのディスク使用量、Lambda関数の実行回数など、さまざまなリソースの状態をリアルタイムで把握できます。標準的な項目だけでなく、カスタマイズした項目にも対応しており、自社の環境や要件に合わせて柔軟な監視設定が行えることも特徴の1つです。Amazon CloudWatchを利用することにより、システム全体の健全性やパフォーマンスに関する洞察を得るだけでなく、問題の早期発見や迅速な対応も可能となります。(2)Amazon CloudWatchの料金体系CloudWatchの中でも様々な機能がありますが、一般的な機能を対象にした無料枠の範囲と有料枠の料金体系は以下の表をご参考ください。※金額は月額※各サービスの詳細については、後述します。機能無料枠の範囲有料枠の料金体系メトリクス■基本メトリクス(デフォルトで用意されているメトリクス)■カスタムメトリクス(カスタムで作成するメトリクス)アラーム・標準解像度アラーム10個まで無料・標準解像度アラーム11個目以上:0.1USD / 個ログ・5GBまで無料(収集、保存、分析を含む)・収集:0.76USD / GBイベント・カスタムイベント以外は無料・1,000,000カスタムイベントあたり:1USD / 件ダッシュボード・3つまで無料・4つ目以上:3USD / 個上記は2024年2月時点の利用料金となりますので、最新の料金や、料金体系に関する注意事項は公式ドキュメントの「Amazon CloudWatch 料金表」をご確認ください。2、「Amazon CloudWatch」の機能CloudWatchでは、主に以下のような機能が提供されており、用途に合わせて組み合わせて利用します。CloudWatch メトリクスCloudWatch AlarmsCloudWatch LogsAmazon EventBridge(旧CloudWatch Events)CloudWatch ダッシュボード(1)CloudWatch メトリクスCloudWatchのメトリクスは、監視対象から収集されるデータポイントの集合であり、AWS内に立てた仮想サーバーのCPU使用率やDiskの読み書き回数、インターフェースの通信量など、様々な監視項目をカバーしています。CloudWatchのメトリクスからは、異なる統計情報を選択して表示することが可能で、ユーザーは必要な情報を効果的に抽出できます。また、データの解像度は、ユーザーが設定可能であり、標準的な解像度は1分間隔のデータですが、1秒間隔などの高解像度のデータも取得・保存可能です。ただし、高解像度のメトリクスを利用する場合は料金が発生し、頻繁に利用するほど料金が高額になります。ユーザーは任意の監視項目をカスタムメトリクスとして追加することもでき、仮想サーバーのメモリ使用率や指定したサービスのプロセス数など、さまざまな状態を監視することが可能です。(2)CloudWatch AlarmsCloudWatch Alarmsは、特定の条件が満たされた場合に通知を発行する機能です。この通知により、メトリクスが設定された閾値を超えたり、下回ったり、監視が失敗したりした場合に、リアルタイムで通知を受け取ることができます。通知アラームは、AWSのSNS(Simple Notification Service)と連携されており、様々な通知方法を提供します。Eメール通知はもちろんのこと、他のAWSサービスとの統合を通じて、直接チャットツールに通知を送信するなど、APIを介したさまざまなサードパーティアプリケーションとの連携が可能です。(3)CloudWatch LogsCloudWatch Logsは、CloudWatchエージェントを使用して、システムやアプリケーション、AWSサービスなどのログを監視できるサービスです。CloudWatch Logsのログ監視により、特定のキーワードやエラーコードなどを指定してログを監視し、問題を素早く検出することが可能です。また、ログデータをアーカイブとして保持することができるため、後からの分析やアーカイブの目的にも活用できます。さらに、CloudWatch Logs Insightsという拡張機能を使用すると、ログデータを検索して分析することができ、監視や運用中に発生した問題や障害の原因を特定し、迅速に対処することができます。(4)Amazon EventBridge(旧CloudWatch Events)Amazon EventBridgeは、メトリクスの状態変化や特定のイベントが発生した際に、事前に設定されたアクションを実行するサービスです。事前に設定されたアクションにより、定期的な時間指定だけでなく、メトリクスの状態変化に応じたリアルタイムな処理を行うことができます。AWS内での設定は、WindowsのタスクスケジューラーやLinuxのCronジョブと同様の機能として捉えることができますが、より高度な設定が可能です。さらに、障害検知時の自動復旧処理として、例えばAutoScalingアクションのトリガーとして利用することもできます。このように、Amazon EventBridgeはシステムの監視と自動化を組み合わせることで、運用効率を向上させることができます。また、Amazon EventBridgeでは、その他の様々なAWSサービスとの連携機能が提供されているため、より柔軟で拡張性のあるイベントドリブンアーキテクチャを実現できます。(5)CloudWatch ダッシュボードCloudWatchダッシュボードは、メトリクス、ログ、イベントの状況を一元的に可視化し、カスタマイズ可能な表示を提供する機能です。複数の情報を同時に表示したり、特定の条件で絞り込んだりすることができます。障害対応の時間を最小限に抑えるだけでなく、リソースの利用状況を把握するのに役立ちます。また、リソースが過剰に使用されているかどうかを特定し、コスト削減のための機会を見つけることもできます。このように、CloudWatchの機能を活用することで、検知から復旧までの時間を短縮し、リソースの状況を可視化し、運用を最適化することが可能です。CloudWatchは単なる監視ツールに留まらず、運用の最適化に向けて有効なツールとして活用されます。3、「Amazon CloudWatch」の監視の重要ポイントCloudWatchを利用することで、効率的な監視運用を行えることをお伝えしてきましたが、以下のようなケースの場合、CloudWatchでも簡単に実現できない場合があります。CloudWatchと併用してその他インフラサービスを利用している場合異なるアカウントで複数のプロダクトを運用している場合(1)CloudWatchと併用してその他インフラサービスを利用している場合CloudWatchと併用してその他インフラサービスを利用している場合、イベントログはそれぞれのサービスごとに確認する必要があり手間になります。これはCloudWatchがAWSのサービスであるが故に、複数のインフラサービスを跨いだ一元管理のような機能は提供されておらず、簡単に実現できません。(2)異なるアカウントで複数のプロダクトを運用している場合異なるアカウントで複数のプロダクトを運用しており、CloudWatchの情報を一つのアカウントに集約してモニタリングを行う場合、CloudWatchの機能で集約することは可能です。しかし、実際の運用を想定すると、読み取り専用と障害対応時にアクション可能なIAMロールを分けて用意する必要があり、プロダクト数が増えるとアカウントの管理が煩雑になります。5、Cloud Watchのイベントログを横断可視化する上記のようなケースの場合、実現するための設定が複雑な上、設定できたとしても運用チームの負荷が想定されます。これらの課題に対して、弊社で提供しているようなイベントログ一元監視サービスを利用することも解決策の一つです。弊社ではイベントログ一元監視サービス「srest」を提供しており、「srest」基盤を導入頂くことによって、CloudWatchを含めた様々なインフラサービスのイベントログを、ダッシュボードを用いて一元で集約し管理することが可能となります。更に、ダッシュボードを実現する上で必要な、視認性やトレーサビリティといった要素に対応した機能を提供しています。横断検索・横断可視化リアルタイム可視化・通知(1)横断検索・横断可視化イベントログの検索・ソート機能・日付やフィルタ機能を用いて、過去に発生したイベントを、サービスを横断した柔軟な検索が可能となります。また、監視ツールで計測しているSLOの計測値を複数サービスを横断する形でsrest上で可視化することで、複数サービスの健康状態を一元的にチェックすることができます。(2)リアルタイム可視化・通知イベントログに対して具体的なアラート条件を設定することができ、設定した条件を満たすイベントが発生した際は、自動的にSlackやメール等のコミュニケーションチャネルを通じて通知が送信されます。加えて、イベントログの収集により、一定期間内に繰り返し発生したアラートや、現在発生中のアラート情報をリアルタイムで可視化することが可能です。リアルタイム可視化によって、イベントログ見逃しによる対応の遅延解消をサポートします。まとめCloudWatchについて包括的に解説しました。CloudWatchは、ここで紹介した機能以外にも多様な機能を提供しており、これらを活用することで保守性の高いシステムを設計することができます。