Live App →

Terraform Modules

Reusable Terraform modules for provisioning Sentinel’s AWS infrastructure.


Module Catalog

Module Path Purpose
ecs-service modules/ecs/service/ Fargate service, task definition, auto-scaling
alb modules/alb/ External/internal ALB, listeners, target groups
cloudfront modules/cdn/cloudfront/ CDN distribution, OAC, cache policies
documentdb modules/documentdb/ MongoDB-compatible cluster
postgres modules/rds/postgres/ PostgreSQL instance
opensearch modules/opensearch/ Search cluster
redis modules/elasticache/redis/ ElastiCache cluster
s3-static-site modules/s3/static-site/ S3 + CloudFront for static hosting
route53 modules/dns/ Hosted zone, records, health checks
vpc modules/vpc/ VPC, subnets, NAT, IGW

State Management

  • Backend: S3 (terraform-iac-data)
  • Locking: DynamoDB (terraform-locks)
  • Encryption: AES-256 (SSE-S3)

Usage Pattern

module "nexus_backend" {
  source = "../../modules/ecs/service"

  name           = "nexus-backend"
  cluster        = aws_ecs_cluster.main.id
  image          = "${aws_ecr_repository.nexus.repository_url}:${var.image_tag}"
  cpu            = 2048
  memory         = 4096
  desired_count  = 2

  environment = {
    MONGODB_URI = var.mongodb_uri
    REDIS_URL   = var.redis_url
  }
}

CI/CD for IaC

Terraform plans run in Jenkins on every PR:

  1. terraform fmt -check
  2. terraform validate
  3. terraform plan (dev account)
  4. Manual approval for prod apply