AWSのモニタリング機能まとめ📈
動機
AWSはモニタリング機能がありすぎて、どのサービスに利用できるのか、サービス付随のモニタリング機能との使い分けの部分などややこしかったので、まとめてみました。
データベース関連のモニタリング機能
Amazon RDS
・CloudWatchメトリクス : CPU使用率、メモリ使用率、ディスクI/O、データベース接続数、レプリカラグなどを提供します。
・Enhanced Monitoring: OSレベルのメトリクス(CPUの詳細な内訳、プロセスリストなど)をより詳細に収集し、CloudWatch Logsに送信します。
・Performance Insights: データベースの負荷を可視化し、パフォーマンスのボトルネックを特定するのに役立ちます。SQLクエリレベルでの分析も可能です。
・CloudTrail: RDSのAPIコールを記録します。
Amazon DynamoDB
・CloudWatchメトリクス: テーブルのスループット(読み込み/書き込みキャパシティユニットの使用状況)、レイテンシー、エラー数、スロットルされたリクエスト数などを自動的にCloudWatchに送信します。
・DynamoDB Streams: テーブルに対する変更(項目レベルの変更)をキャプチャし、Lambdaなどで処理することで、リアルタイムのデータ変更監視や監査が可能です。
・CloudTrail: DynamoDBのAPIコール(テーブル作成、削除など)を記録します。
Amazon Aurora
・RDSと同様のモニタリング機能(CloudWatchメトリクス、Enhanced Monitoring、Performance Insights)を提供します。
・Auroraに特化したメトリクス(レプリケーション遅延、キャッシュヒット率など)も利用できます。
コンピューティング関連のモニタリング機能
Amazon EC2 (Elastic Compute Cloud)
-
Amazon CloudWatch:
EC2インスタンスのメトリクスを監視します。 - CloudWatchメトリクス: CPU使用率、ネットワークI/O、ディスクI/Oなどを提供します(基本モニタリングは5分間隔、詳細モニタリングは1分間隔)。
- CloudWatch Logs: EC2インスタンス内のアプリケーションログやシステムログを収集し、集中管理できます。
-
AWS Systems Manager:
EC2インスタンスの状態とパフォーマンスを監視します。 - System Manager (SSM): インスタンスの状態管理やパッチ適用、インベントリ収集など、運用の側面からモニタリングを補完します。
-
AWS CloudTrail:
CloudTrail: EC2のAPIコール(インスタンス起動、停止など)を記録します。
AWS Lambda
-
Amazon CloudWatch:
Lambda関数のメトリクスを監視します。
CloudWatchメトリクス: 呼び出し回数、エラー数、実行時間、スロットルされた呼び出し数などを自動的に提供します。 - CloudWatch Logs: Lambda関数の標準出力やエラーログを自動的にCloudWatch Logsに送信します。
- X-Ray: Lambda関数のトレースを有効にすることで、ダウンストリームサービスへの呼び出しを含め、実行パスを可視化できます。
- CloudTrail: LambdaのAPIコールを記録します。
Amazon ECS (Elastic Container Service) / Amazon EKS (Elastic Kubernetes Service)
- CloudWatch Container Insights: コンテナ化されたアプリケーションやマイクロサービスからメトリクスとログを自動的に収集し、CloudWatchで可視化します。
- CloudWatch Logs: コンテナのログを収集します。
- X-Ray: コンテナ化されたアプリケーションの分散トレースに使用できます。
- Prometheus/Grafana: EKS環境では、PrometheusとGrafanaをデプロイして、より詳細なコンテナレベルのモニタリングを行うことが一般的です(Amazon Managed Service for PrometheusやAmazon Managed Grafanaの利用も推奨されます)。
ネットワーク関連のモニタリング機能
Amazon VPC
-
Amazon CloudWatch:
VPCのネットワークトラフィックを監視します。 -
AWS Network Firewall:
ネットワークトラフィックを監視し、ポリシーを適用します。
Elastic Load Balancing (ELB)
- CloudWatchメトリクス: リクエスト数、レイテンシー、HTTPエラーコード(4xx/5xx)、健全なホスト数などを提供します。
- CloudWatch Logs: アクセスログをS3に送信し、リクエストの詳細を分析できます。
Amazon Route 53
-
Amazon CloudWatch:
DNSクエリのメトリクスを監視します。 - CloudWatchメトリクス: DNSクエリ数、ヘルスチェックの状態などを提供します。
- ヘルスチェック: エンドポイントの健全性を監視し、異常時にはトラフィックをルーティングしないように設定できます。
ストレージ関連のモニタリング機能
Amazon S3 (Simple Storage Service)
-
Amazon CloudWatch:
S3バケットの使用状況を監視します。 - CloudWatchメトリクス: バケットのサイズ、オブジェクト数、リクエスト数、エラー数などを提供します。
-
AWS Config:
S3バケットの設定を監視します。 - S3アクセスログ: バケットへのすべてのリクエスト(誰が、何を、いつ、どのようにアクセスしたか)を記録し、別のS3バケットに保存できます。
- S3イベント通知: オブジェクトの作成、削除などのイベントをLambda、SQS、SNSに通知できます。
Amazon EBS
-
Amazon CloudWatch:
EBSボリュームのI/Oパフォーマンスを監視します。
その他関連のモニタリング機能
AWS Global Accelerator
-
Amazon CloudWatch:
Global Acceleratorのメトリクスを監視します。
AWS CloudFormation
-
AWS Service Catalog:
CloudFormationスタックの状態を監視します。
Amazon SQS (Simple Queue Service)
- CloudWatchメトリクス: キュー内のメッセージ数、送信/受信/削除されたメッセージ数、メッセージの可視性タイムアウトなどを提供します。
Amazon SNS (Simple Notification Service)
- CloudWatchメトリクス: 発行されたメッセージ数、配信に成功/失敗したメッセージ数などを提供します。
まとめ
とりあえずCloudWatch。