AWSの基礎 〜Part5: 監視関連サービス〜

第5回の今日は種々のサービスに対して、リソースがどの程度使われているのかやサービスがどのような出力をしているのかを監視するサービスについてご紹介いたします。これらのサービスは単体で使うことはありませんが、別のサービスを使う際には併用することが常に考えられるサービスとなりますので、参考になれば幸いです。
目次
はじめに
第5回の今日はAWSのサービスの中でも、リソースやアプリケーションの動作を監視するサービスであるAWS CloudWatchについて紹介します。このサービスは主にシステムで何らかの不具合があった場合に、いつどこでエラーが発生したのかを見るために使われます。「監視」ではありますが、あくまでリソースの状態を見ているだけで、基本的にはセキュリティ等とは無関係なので注意してください。
サービス概要
リソースやアプリケーション監視を行っているサービスとして、AWS CloudWatchを紹介します。CloudWatchは非常にたくさんの機能を持っているため、監視関連のサービスの総称がCloudWatchであるという認識で良いと思います。
この記事では以下の機能を扱います。
- CloudWatch Metrics
- CloudWatch Logs
- CloudWatch Alarms
- CloudWatch Events
前者2つのサービスがリソースの使用状況等を出力・可視化するサービスにあたり、後者2つがその使用状況に応じてアクションを発生させるサービスです。
CloudWatch Metrics
CloudWatch Metricsは、AWSリソースのメトリクス(性能データ)を収集、追跡、表示するためのサービスです。これにより、EC2インスタンス、RDSデータベース、DynamoDBテーブルなどのAWSリソースのパフォーマンスをモニタリングできます。メトリクスは特定の時間間隔で収集され、ユーザーはこれらのメトリクスを使用してリソースの利用状況やパフォーマンスを分析できます。
ただし、このツールはあくまでもデータを追跡し、表示する部分までしか行いません。特定の閾値に応じて通知したり制限したりといった操作については別のサービスの範囲となります。
CloudWatch Logs
CloudWatch Logsは、AWSリソースのログデータを収集、監視、保存するためのサービスです。これにより、アプリケーションやシステムのログファイルを中央に集約し、ログデータをリアルタイムで監視し、異常を検知できます。ログデータの保存期間も指定でき、長期間にわたるログの保持が可能です。
エラー発生時の原因追及はもちろん、lambdaにおけるデバッグに使用したプリント等などを確認する際にもlogsを見ることになるかと思います。
CloudWatch Alarms
CloudWatch Alarmsは、指定したメトリクスのしきい値に基づいてアラームを設定し、異常が検知された際に通知を行うサービスです。アラームはメトリクスデータに基づいてトリガーされ、アクション(通知、Auto Scalingの実行など)を設定することができます。
こちらのサービスは、前の2つのようにリソース状況を収集するサービスというよりは収集したデータに対するアクションを定義するサービスになります。基本的には閾値のようなものを設定しておき、その値に応じて処理を行います。
CloudWatch Events
CloudWatch Eventsは、AWSリソースやアプリケーションのイベントを監視し、指定したルールに基づいてアクションを実行するためのサービスです。イベントは、AWSリソースの変更、スケジュールタスク、APIコールなどをトリガーとします。ルールを設定して、特定の条件に一致するイベントが発生した際にLambda関数の実行や通知の送信などを行うことができます。
こちらもリソース状況の変化に対して、アクションを起こすサービスとなります。Alarmsと異なり、通知などのアクションまで定義するというよりは他のサービスと組み合わせて、トリガーとして使用することが多いイメージです。
終わりに
伸縮性の高いクラウドサービスにおいて、リソースのマネジメントは重要となります。CloudWatchを適切に利用して最適な利用を行いましょう。また、クラウド環境でのエラー処理にはログサービスを利用することもあるかと思います。積極的に活用しましょう。