CloudWatch(Logs)とCloudTrailについて

はじめに

システムの写真

AWSが提供する監視サービスであるAmazon CloudWatchですが、これを利用することによりシステム全体の可視性を確保して、問題を素早く解決することが可能です。また、AWS CloudTrailは、AWSのAPI操作にたいする監査機能です。AWSの各種サービスはすべてAPIを使って利用します。このAPI利用履歴についてすべて保管し、監査することで、誰がいつどこから何をしたのか確認することができます。これをCloudWatch Logsに保管することで、ログに保管されたタイミングで確認でき、通知などを行うことができます。今回はこのような機能を持つAWS Cloudwatch、AWS CloudTrailの概要についてご紹介いたします。

Amazon CloudWatchとは

Amazon CloudWatch(以下、CloudWatch)は、AWSクラウドリソースとAWSで実行されるアプリケーションの監視サービスです。CloudWatchを使用することで、メトリクスの収集/ログの収集/モニタリング/アラームの設定を行えます。またEC2インスタンス/RDS/DynamoDBなどのAWSリソースを監視し、ダッシュボードにグラフを表示したり、閾値を設定してアクションを実行したりできます。

AWSリソースの監視を行うCloudWatchは、CloudWatch/CloudWatch Logs/CloudWatch Eventsという3つのサービスで構成されています。CloudWatchは、AWS上で稼働するAWSサービスのメトリクスを収集し、死活監視.性能監視/キャパシティ監視を行います。CloudWatch LogsはAWSのログ監視サービスで、AWSマネージドサービスのログやEC2インスタンス上のOS/アプリケーションのログを取得します。CloudWatch Eventsは、AWS上にあるリソースの状態の変更をトリガーとしてアクションを実行する機能を提供します。

CloudWatchを構成するサービス役割機能
CloudWatchAWSのシステム監視サービスAWSサービスのメトリクスの収集、閾値によるアラーム通知
CloudWatch LogsAWSのログ管理サービスAWSマネージドサービスのログ管理、EC2インスタンスのOS/アプリケーションのログ管理
CloudWatch EventsAWSリソースの状態監視サービスAWSリソースの変更をトリガーとしてアクションを実行

CloudWatch

多くのAWSサービスはCloudWatchによる監視をサポートしており、対応しているAWSサービスから各サービスで定義されたメトリクス(監視対象のパフォーマンス項目、例えばCPU使用率など)が収集されます。AWSサービスがデフォルトで収集する標準メトリクス以外にも、ユーザが任意のデータを独自に収集するカスタムメトリクスも設定可能です。EC2インスタンスの場合、標準で監視可能なメトリクスと、CloudWatchエージェントをインストールすることによりEC2インスタンスのOS情報を収集できるメトリックがあります。例えばCPU使用率は標準で収集されますが、CPU詳細はCloudWatchエージェントを利用しなければ収集されません。EC2インスタンスでは、5分間隔の基本モニタリングがデフォルトで、1分間隔の詳細モニタリングは有償で、明示的に有効にする必要があります。メトリクスの解像度(メトリクスを収集する間隔)は、標準で最小で1分間隔ですが、カスタムメトリクスは標準解像度が1分間隔で、高解像度では1秒間隔で収集できます。収集したメトリクスは保存期間が定められています。短い期間で収集されたメトリクスは集約されます。CloudWatchでは、5分間隔で収集されるメトリクスを基本モニタリングメトリクス、1分間隔で収集されるメトリクスを詳細モニタリングメトリクスと呼び、基本モニタリングと10個の詳細モニタリングメトリクスが無料で利用できます。ダッシュボードによりメトリクスのグラフを表示することもできます。

CloudWatchアラーム(以下、アラーム)は、CloudWatchの通知機能です。メトリクスを監視し、閾値を設定して、アラームを通知できます。アラームは3つの状態があり、閾値を下回るOK、閾値を超えた状態を示すALARM、アラームの状態が判定できない状態を示すINSUFFICIENT_DATAがあります。請求に関するアラームもあります。

CloudWatch Logs

CloudWatch Logsとはログ収集サービスです。対応しているAWSサービスのログを収集し、保存します。ログの保存期間を指定でき、1日から10年間の保持期間を指定するか、または保持期間を無制限とするか選択します。AWSサービスでCloudWatch Logsと連携できる主要サービスは、以下の通りです。

AWSサービスCloudWatch Logsとの連携
CloudTrailAESサービスの操作を記録。AWSマネジメントコンソール/AWS CLI/AWS SDKで実行された操作を記録
Route 53DNSクエリのログを記録
LambdaLambda関数の実行時の出力を記録
VPCVPCフローログを記録
SNSSNSトピックの配信ステータスを記録
EC2アプリケーションおよびシステムのログを記録
RDSデータベースの監査ログ/エラーログ/全般ログ/スロークエリログを記録

CloudWatch Events

CloudWatch Eventsは、AWSリソースの変化をトリガーとしてアクションを実行できるサービスです。CloudWatch Eventsのコンポーネントは、イベント/ターゲット/ルールです。イベントは、対象となるAWSリソースの変化を示します。イベントのソースをしては、EC2/AutoScaling/CloudTrail/AWSマネジメントコンソールへのログイン/スケジュールイベントなどがあります。ターゲットとは実行する処理です。ルールは、定義したイベントソースとターゲットへのアクションの組み合わせを示します。ターゲットには、Lambda関数、SNS、SQSなどが設定できます。

Amazon CloudTrailとは

AWS CloudTrail(以下、CloudTrail)は、AWSサービスの操作を監視し、AWSアカウントのガバナンス/コンプライアンス/運用とリスクの監査を実施するためのマネージドサービスです。CloudTrailは、ユーザーのAWSマネジメントコンソールのログイン、ユーザーが実施したAWSサービスに関する設定変更/APIを利用した操作、およびAWSサービスが実施した操作など、AWSに対するアクティビティログを記録します。標準で90日間、アクティビティを各リージョンで記録しています。証跡を有効化すると、S3バゲットにアクティビティログを保存します。また、CloudWatch Logsへの送信を有効化すると、ログをCloudWatch Logsに送信できます。AWSコンソールまたはCloudTrail API/SDKを利用し、記録されているアクティビティを確認できます。

おわりに

今回はAWS Cloudwatch、AWS CloudTrailについての概要をご紹介させていただきました。
これらは、AWSを運用監視するうえで便利なサービスとなっています。管理者の手間を大幅に省くことができますので、ぜひこの機会に導入を検討してみてはいかがでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です