I've implemented a simple web application using terraform.
-
VPC: in eu-central-1 with 3 private subnets, 3 public subnets for each AZ. IGW, NAT gateway and route tables are created, S3 endpoint.
-
S3: private bucket, public bucket.
-
Cloudfront: distribution and SSL termination for public bucket.
-
RDS: postgres database in private subnet with access from ECS cluster.
-
ECS: cluster with 1 task to run backend application that has access to RDS.
-
ECR: repository for backend application.
-
LB: application load balancer under ECS cluster.
-
IAM: created a user with credentials to access your S3 buckets to use in programmatic way.
terraform init
terraform plan
terraform apply
- SQS module
- Cloudwatch module
- ASG module
- Terragrunt to manage different environments