Cloud
Running multi-tenant SaaS on AWS with Terraform
How we structure Terraform so that adding a client or an environment is a configuration change, not a new project.
Techindeck Ventures ·
When one platform serves several clients, infrastructure needs to be repeatable. Our rule: a new client should be a new configuration file, not a new project.
Modules, not copies
Each building block — network, compute, database, cache, load balancer — is a Terraform module with clear inputs. Environments and clients reuse the same modules with different variables.
tfvars per client and environment
A small set of tfvars files describes each client in each environment: instance sizes, domains, feature flags. Dev, validation and production stay identical in shape, which removes most “works on staging” surprises.
Cost-aware compute
- Spot instances for non-production and stateless workloads
- Auto Scaling Groups behind an ALB for production traffic
- Managed data services — RDS PostgreSQL, ElastiCache Redis and MongoDB Atlas — so backups and patching are handled
What it gives clients
Faster onboarding, predictable costs, and the confidence that production is built exactly like the environment they tested.
Thinking about moving a platform to AWS? We can review your current setup and suggest the simplest architecture that will scale.