ログ出力先選択におけるCloudWatch Logs優先の原則
AWSサービスのログ出力先を選択する際は、CloudWatch Logsに対応しているサービスについては基本的にCloudWatch Logsを優先的に使用し、それ以外はS3を使用します
1.CloudWatch Logsを優先する理由
リアルタイム監視: ログの即座の確認・検索が可能
統合管理: 複数サービスのログを一元管理できる
アラート連携: CloudWatch Alarmsとシームレスに連携
コスト効率: 短期的なログ分析に最適
2.S3を選択する理由
長期保存が必要: 監査ログや構成履歴などの永続的な保管
大量データの保存: アクセスログなど高頻度・大容量のログに対応
分析結果の永続化: クエリ結果やレポートの保存
コンプライアンス要件: セキュリティ検出結果の長期保管とアーカイブ
コストの最適化: 大容量データの長期保存に低コスト
1.ログをCloudWatch Logsに出力するサービス
| サービス名 | ログの種類 |
|---|---|
| EC2 | 【CloudWatch Agentのインストールが必要】 システムログ アプリケーションログ |
| Lambda | 関数実行ログ |
| Elastic Beanstalk | アプリケーションログ |
| Batch | ジョブログ |
| App Runner | アプリケーションログ |
| ALB | 【S3からLambdaで転送】 アクセスログ |
| NLB | アクセスログ |
| ECS | コンテナログ |
| EKS | コントロールプレーンログ |
| Fargate | コンテナログ |
| ECR | API呼び出しログ |
| App Mesh | Envoyアクセスログ |
| RDS | データベースログ |
| Aurora | データベースログ |
| ElastiCache | エンジンログ |
| Neptune | データベースログ |
| DocumentDB | データベースログ |
| VPC | VPCフローログ |
| CloudFront | アクセスログ 【Kinesis Data StreamsからLambdaで転送】 リアルタイムログ |
| Route 53 | クエリログ |
| API Gateway | アクセスログ/実行ログ |
| WAF | ウェブACLログ |
| Firewall Manager | API呼び出しログ |
| CloudTrail | API呼び出しログ |
| OpenSearch | クラスターログ |
| Glue | ジョブ実行ログ |
| EMR | クラスターログ |
| SageMaker | トレーニング/推論ログ |
| X-Ray | トレースデータ |
| EventBridge | イベント配信ログ |
| Step Functions | 実行履歴ログ |
| AppFlow | フローの実行ログ |
| CodeBuild | ビルドログ |
| CloudFormation | スタックイベントログ |
| SES | 送信イベントログ |
| SNS | 配達ステータスログ |
| SSM | Session Managerのセッションログ Run Commandの実行ログ Automation実行ログ Patch Managerのログ |
| CodePipeline | ビルドログ |
| CodeDeploy | デプロイメントログ エージェントログ |
| quicksight | 監査ログ アクセスログ |
| cognito | セキュリティ機能のログ Lambda関数の実行ログ |
| Global Accelerator | フローログ |
| FSx | 監査ログ |
2.ログをS3に出力するサービス
| サービス名 | ログの種類 |
|---|---|
| DynamoDB | CloudTrailイベント |
| GuardDuty | 【EventBridgeからLambdaで転送】 検出結果 |
| Security Hub | 【EventBridgeからLambdaで転送】 検出結果 |
| Macie | 【EventBridgeからLambdaで転送】 検出結果 |
| Config | 構成履歴 |
| Redshift | 監査ログ |
| Athena | クエリ結果 |
| S3 | サーバーアクセスログ |
| S3 Glacier | サーバーアクセスログ |