This repository deploys CloudFront + S3 + Kinesis + Firehose + Lambda for processing CloudFront real-time logs using Terraform.
aws_kinesis_stream.cloudfront_streams
) for real-time logsus-east-2
.export AWS_PROFILE=default
export AWS_REGION=us-east-2
terraform init
terraform plan
terraform apply -auto-approve
aws_region
(default: us-east-2
) — Region to deploy resourcesenv
(default: dev
) — Environment name suffixbucket_name
— S3 bucket name for frontend assetsYou can override them via terraform.tfvars
or CLI -var
flags.
The Kinesis stream name is cloudfront-stream-${var.env}
, e.g. cloudfront-stream-dev
.
Console:
Example (replace us-east-2
and cloudfront-stream-dev
with your region and stream name if different):
https://console.aws.amazon.com/kinesis/home?region=us-east-2#/streams/details?streamName=cloudfront-stream-dev
CLI example:
aws kinesis describe-stream-summary --stream-name cloudfront-stream-dev --region us-east-2
To destroy all resources created by Terraform:
terraform destroy -auto-approve
If CloudFront distributions don’t delete due to being enabled, disable them in the Console or via the AWS CLI before deleting.
terraform destroy
fails, check for prevent_destroy
lifecycle rules, dependencies, or resources managed outside Terraform.aws sts get-caller-identity
).lambda/kinesis_to_cloudwatch.py
. It decodes records and writes to CloudWatch Logs. It was updated to log exceptions and include client IP when possible.If you want a more detailed README (architecture diagram, diagram links, or CI/CD steps), tell me what you’d like and I’ll expand it.