はじめに
AWSにおける主要サービスのログの出力先をまとめていきます。
ログの種類と出力先
ログと出力先、S3に関しては対応する暗号化方式を記載します。
S3の場合、バケットポリシー、KMSを利用する場合キーポリシーの編集が必要ですので、参考のURLを見て設定を忘れないようにしましょう。
ログの種類 | 出力先 | 概要 | 備考 |
---|---|---|---|
CloudWatchAgent経由のログ(OSログ等) | CloudWatchLogs | EC2等でCloudWatchAgent経由でログ転送するもの | CloudWatchAgent設定 |
Lambda関数ログ | CloudWatchLogs | Lambda関数の実行時のログ | Lambdaログ |
APIGateway APIログ | CloudWatchLogs | APIGatwayのAPI実行、アクセスログ | APIGatewayログ |
RDS・Auroraログ | CloudWatchLogs | RDS、Aurora等でのDB、slowログ | RDSログ |
VPCフローログ | CloudWatchLogs/S3(SSE-S3/SSE-KMS) | VPC上のパケットのフローログ | VPCフローログ |
CloudTrail | CloudWatchLogs/S3(SSE-KMS) | AWS上でのAPI操作ログ | CloudTrailログ |
GuardDutyログ | S3(SSE-KMS) | GuardDutyの検出ログ | GuardDuty検出ログ |
S3アクセスログ | S3(SSE-S3) | S3へのアクセスログ | S3アクセスログ |
AWSConfigログ | S3(SSE-S3/SSE-KMS) | Configスナップショットの格納先(AWS上での構成情報) | AWS Configスナップショット |
ELBアクセスログ | S3(SSE-S3) | ALB・NLBへのアクセスログ | ALBアクセスログ |
CloudFrontアクセスログ | S3(SSE-S3/SSE-KMS) | CloudFrontへのアクセスログ | CloudFrontアクセスログ |
AWSWAFログ | CloudWatchLogs/S3(SSE-S3/SSE-KMS)/KinesisDataFirehose | WAFの処理ログ | AWSWAFログ |
出力から監視、可視化までのまとめ
1枚の絵にしてみました。
CloudWatchLogsに入ったものは、そのままでもLogsInsightの機能で分析や可視化が可能です。
また、ログのメッセージに応じて、アラートを出すというアクションも可能になります。
また、OpenSearch等で詳細な可視化分析をしたい場合ストリーミングも可能ですし、KinesisDataFirehoseへのストリーミングも可能です。
S3に出力したものは、そのままライフサイクルルールでGlacierへの長期保管も可能ですし、Athenaを利用し、分析をかけることも可能です。Athenaを利用したQuickSightでの分析、可視化も可能ですし、OpenSearchでのデータのインポートも可能です。
まとめ
サービスごとにCloudWatchLogs、S3と出力先が異なります。
両方に出力可能なサービスについては、ログの保管目的を考慮し出力先を選定しましょう。
例えば、保管だけを目的にするのであれば、S3で十分です。料金としても、CloudWatchLogsとS3では、S3のほうがコストが低くすみます。一方で、ログのメッセージに応じた監視を行いたい、Insightでリアルタイムにログがみたいなどの場合はCloudWatchLogsに転送しましょう。その先はどちらもそれほど変わりませんが、詳細な分析や可視化をしたい場合は、OpenSearch、Athena、QuickSight、データ変換の必要に応じてKinesisやLambda、Glueを組み合わせて利用しましょう。また、CloudWatchLogsの保管料金を削減するために、LogsからS3に転送する方法もいくつかあります。(これは別途書こうと思います。)コスト、要件に応じて適切に選択しましょう。