A library of production-ready, opinionated Terraform modules for AWS. Each module follows AWS Well-Architected Framework best practices with security hardening, cost optimization, and operational excellence built in.
| Module | Description | Version |
|---|---|---|
| vpc | Three-tier VPC with flow logs, NAT, endpoints | 1.0.0 |
| eks | Managed Kubernetes with IRSA, Karpenter, Bottlerocket | 1.0.0 |
| rds | Aurora PostgreSQL with Multi-AZ, encryption, backups | 1.0.0 |
| s3 | Hardened S3 bucket with versioning, encryption, lifecycle | 1.0.0 |
| iam | IAM roles with permission boundaries and ABAC | 1.0.0 |
| kms | KMS key with rotation, key policies, aliases | 1.0.0 |
| cloudfront | CDN distribution with WAF, logging, custom headers | 1.0.0 |
| lambda | Lambda with IRSA, VPC, X-Ray, reserved concurrency | 1.0.0 |
| api-gateway | REST/HTTP API with auth, throttling, WAF | 1.0.0 |
| ecs | ECS Fargate cluster with service discovery | 1.0.0 |
| elasticache | Redis cluster with encryption in-transit and at-rest | 1.0.0 |
module "vpc" {
source = "github.com/Chebis26/terraform-aws-modules//modules/vpc"
name = "my-vpc"
cidr_block = "10.0.0.0/16"
availability_zones = ["us-east-1a", "us-east-1b", "us-east-1c"]
tags = {
Environment = "production"
ManagedBy = "Terraform"
}
}
module "rds" {
source = "github.com/Chebis26/terraform-aws-modules//modules/rds"
name = "my-database"
engine = "aurora-postgresql"
instance_class = "db.r6g.large"
database_name = "appdb"
subnet_ids = module.vpc.data_subnet_ids
vpc_id = module.vpc.vpc_id
}- Secure by default — Encryption, public access blocked, least-privilege assumed
- No breaking changes — Semantic versioning; major bumps for breaking changes
- Validated inputs — Variable validation blocks catch misconfiguration early
- Complete outputs — Every resource ID, ARN, and endpoint is output
- Example included — Every module has a working
examples/configuration
MIT License