2026-08-17 13:05:22 -04:00
|
|
|
# S3 bucket for logs
|
|
|
|
|
resource "aws_s3_bucket" "logs" {
|
2026-08-18 10:21:55 -04:00
|
|
|
bucket = "${var.cluster_name}-logs"
|
|
|
|
|
force_destroy = true
|
2026-08-17 13:05:22 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_s3_bucket_lifecycle_configuration" "logs" {
|
|
|
|
|
bucket = aws_s3_bucket.logs.id
|
|
|
|
|
|
|
|
|
|
rule {
|
|
|
|
|
id = "expire-old-logs"
|
|
|
|
|
status = "Enabled"
|
|
|
|
|
|
2026-08-18 10:00:53 -04:00
|
|
|
filter {
|
|
|
|
|
prefix = ""
|
|
|
|
|
}
|
2026-08-17 13:05:22 -04:00
|
|
|
|
|
|
|
|
transition {
|
|
|
|
|
days = 30
|
|
|
|
|
storage_class = "INTELLIGENT_TIERING"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
expiration {
|
|
|
|
|
days = 365
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_s3_bucket_server_side_encryption_configuration" "logs" {
|
|
|
|
|
bucket = aws_s3_bucket.logs.id
|
|
|
|
|
rule {
|
|
|
|
|
apply_server_side_encryption_by_default {
|
|
|
|
|
sse_algorithm = "AES256"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Athena database + workgroup
|
|
|
|
|
resource "aws_athena_database" "logs" {
|
2026-08-18 10:00:53 -04:00
|
|
|
name = "${replace(var.cluster_name, "-", "_")}_logs"
|
2026-08-17 13:05:22 -04:00
|
|
|
bucket = aws_s3_bucket.athena_results.bucket
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_s3_bucket" "athena_results" {
|
2026-08-18 10:21:55 -04:00
|
|
|
bucket = "${var.cluster_name}-athena-results"
|
|
|
|
|
force_destroy = true
|
2026-08-17 13:05:22 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_athena_workgroup" "logs" {
|
2026-08-18 10:00:53 -04:00
|
|
|
name = "${var.cluster_name}-logs"
|
2026-08-17 13:05:22 -04:00
|
|
|
|
|
|
|
|
configuration {
|
|
|
|
|
result_configuration {
|
|
|
|
|
output_location = "s3://${aws_s3_bucket.athena_results.bucket}/results/"
|
|
|
|
|
|
|
|
|
|
encryption_configuration {
|
|
|
|
|
encryption_option = "SSE_S3"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output "logs_bucket" {
|
|
|
|
|
value = aws_s3_bucket.logs.bucket
|
|
|
|
|
}
|