モニタリングは、ソフトウェア開発ライフサイクルのメンテナンス段階にとって欠かせない要素です。しかし、企業がクラウドベースの環境に業務を移行するにつれて、アプリケーションのセキュリティ、信頼性、および可用性を確保するために、モニタリングの重要性はさらに増しています。
Amazon Web Services (AWS) は、クラウドシステムのモニタリングを支援するさまざまなモニタリングツールを提供しています。最も広く使用されている重要なモニタリングツールとして、CloudTrailとCloudWatchの2つがあります。以下の記事では、これら2つのツールを比較して、主要な機能、相違点、および類似点を説明します。
詳細
この記事では、インフラストラクチャオブザーバビリティをAWSに実装する利点について説明します。また、AWSがこの分野で提供するものと、オブザーバビリティ機能を強化するためにAWSアカウントと統合できる外部サービスについて説明します。
AWS CloudTrailとは
AWS CloudTrailは、担当するユーザーまたはサービス、タイミング、変更内容に関する情報など、アカウント内のすべてのAPIアクティビティの完全な記録をキャプチャします。これにより、AWSインフラストラクチャの変更に関する包括的な監査証跡が提供されます。CloudTrailは、AWSアカウント内で行われたすべてのアクティビティの完全なイベント履歴を保持するため、コンプライアンスやセキュリティ関連の目的で重要なツールとなっています。
ユーザーがAWSアカウント内でリソースが欠落していることに気付いた場合、CloudTrailはそのリソースを削除したアクション、誰(または何)がそのアクションを実行したか、そしてその実行がいつ行われたかを調査するのに役立ちます。
CloudTrailは、次の3種類のイベントをログに記録します。
- 管理イベントは、AWS環境に影響を与えます(新しいIAMユーザーの作成、EC2インスタンスの起動、セキュリティグループの変更など)。
- データイベントには、AWSサービス内のデータが含まれます(S3バケットからのオブジェクトの取得、EC2インスタンスからのファイルのダウンロード、データベースのコンテンツの変更など)。
- インサイトイベントは、AWSアカウントのパフォーマンスと運用状態に関する情報を提供します(AWSのサービスクォータ、セキュリティのベストプラクティス、コンプライアンスの確認など)。
追加コストなしでアクセスできるのは管理イベントのみで、データとインサイトイベントには追加コストが発生する場合があります。
主な機能
CloudTrailの主な機能は次のとおりです。
- AWSアカウント内のすべてのアクティビティの詳細なイベント履歴を生成します。
- CloudWatch LogsまたはS3バケットにログを転送して、保存と分析を行うことができます。
- SNSやCloudWatchなどの他のAWSサービスとの統合をサポートし、アーキテクチャの自動化を促進します。
- ログファイルの真正性と整合性を確保するためのログファイル整合性検証を提供します。
AWS CloudWatchとは
AWS CloudWatchは、メトリックを収集し、イベントをログに記録して、アラームを提供するモニタリングサービスです。CloudWatchは、AWSのリソースとアプリケーションをリアルタイムでモニタリングするため、AWSユーザーはシステムのパフォーマンスとコストを最適化できます。
CloudWatchは、さまざまな主要コンポーネントで構成されており、それらが連携して包括的なモニタリングソリューションを形成します。これらのコンポーネントについて、詳しく見ていきましょう。
CloudWatch Metrics
CloudWatch Metricsは、定量的なデータポイントを使用して、AWSのリソースとアプリケーションのパフォーマンスを測定します。ユーザーはCloudWatch Metricsを使用して、システムの正常性とパフォーマンスをモニタリングできます。例えば、CPU使用状況、ネットワークトラフィック、ディスク/RAM使用状況を測定できます。
CloudWatch Alarms
CloudWatch Alarmsは、特定のメトリックが重大なしきい値を超えたときにアクションをトリガーします。例えば、ユーザーはEC2インスタンスのCPU使用率が80%を超えた場合にCloudWatchアラームを作成できます。アラームによってトリガーされるアクションには、追加の負荷に対応するためのアプリケーションのスケールアップや、オンコールのDevOpsエンジニアへのEメール通知の送信などがあります。
CloudWatch Events
CloudWatch Eventsは、特定のイベントに応じてアクションをトリガーします。例えば、新しいEC2インスタンスが起動するたびにトリガーするようCloudWatchイベントを設定できます。結果として実行されるアクションは、Lambda関数を呼び出したり、SNSトピックに公開したりすることができます。
AWSでは、CloudWatch EventsではなくAWS EventBridgeでイベントを管理することを推奨しています。
CloudWatch Logs
CloudWatch Logsは、AWSクラウド内外のカスタムアプリケーションまたはAWSサービス(CloudTrailやLambdaなど)からのログファイルを収集、分析、保存します。さらに、CloudWatch Logsはログデータを分析およびフィルタリングして、問題のトラブルシューティングを行い、アプリケーションのパフォーマンスをモニタリングします。
その他のCloudWatch機能には、次のものがあります。
- CloudWatch Dashboardsでは、メトリックとアラームのカスタマイズ可能なビューが提供されます。
- CloudWatch Unified Agentは、カスタムメトリックとログの収集に使用します。
- CloudWatch Syntheticsは、アプリケーションのエンドポイントをテストおよびモニタリングします。
AWS CloudTrailとAWS CloudWatchの比較
CloudTrailとCloudWatchはどちらもAWSが提供するモニタリングサービスであり、さまざまなユースケースに適したさまざまな機能を備えています。
CloudTrailは、AWSアカウントのすべてのAPIアクティビティをキャプチャするため、監査とコンプライアンスモニタリングに使用されます。組織はCloudTrailを使用して、AWSアカウントで行われたすべてのAPIコールを追跡し、承認された担当者のみがリソースにアクセスしていることを確認できます。
CloudTrailはAPIアクティビティイベントをキャプチャしてログを生成しますが、これらのログを分析して視覚化したり、自動化されたプロセスを作成したりする機能はありません。CloudTrailログを分析し、自動化されたプロセスを確立するには、CloudTrailからCloudWatch Logsに転送する必要があります。CloudWatch Logs内では、ログの調査、アラームの作成、通知のトリガーを行うことができます。
一方、CloudWatchは、メトリック、ログファイル、AWSリソースイベントを収集、追跡、およびモニタリングします。また、特定のイベントが発生したときに通知するアラームも提供します。組織はCloudWatchを使用して、アプリケーションの正常性とパフォーマンスをモニタリングし、問題が発生した場合により効果的なトラブルシューティングを行うことができます。
次に、2つのサービスの追加の違いをいくつか示します。
| CloudWatch | CloudTrail | |
|---|---|---|
| 無料機能 |
|
|
| 有料機能 |
|
|
| データの頻度 |
|
|
サマリー
CloudTrailとCloudWatchは、AWSが提供する重要なモニタリングツールですが、それぞれ異なる機能を持っています。CloudTrailは、AWSアカウントのすべてのAPIアクティビティを記録するため、監査やコンプライアンスの目的に適しています。CloudWatchは主に、アプリケーションやリソースのパフォーマンスをモニタリングし、特定のメトリックに注意が必要な場合にアラートを発し、最適化やコスト削減の機会を見つけるために使用されます。
両方のサービスの強みを組み合わせることで、AWS環境における包括的で自動化されたモニタリングおよびレスポンスシステムを実現できます。