Three-Tier Architecture
The infrastructure is divided into three layers, each building on the previous one:Layer 1: Infrastructure
The foundation layer provisions core AWS infrastructure:- VPC & Networking: Virtual Private Cloud, subnets, NAT gateways
- EKS Cluster: Kubernetes cluster and node groups
- Tailscale VPN: Secure network access via subnet router
- Vault Infrastructure: KMS keys and DynamoDB tables for secrets management
Layer 2: Platform
The platform layer deploys essential Kubernetes components:- AWS Load Balancer Controller: Manages ALBs for ingress
- Cert Manager: Automated TLS certificate management
- External Secrets Operator: Syncs secrets from Vault to Kubernetes
- Vault Helm: Deploys Vault server on Kubernetes
Layer 3: Apps
The applications layer deploys user-facing services:- ArgoCD: GitOps continuous delivery
- Traefik: Ingress controller and routing
- Application TLS Certificates: Automated cert provisioning
- Vault Policies: Application-specific access controls
Layer Dependencies
Each layer depends on outputs from the previous layer:Directory Structure
The Terraform code is organized as follows:Deployment Flow
The complete deployment follows this sequence:Next Steps
Prerequisites
Set up required tools and accounts
Bootstrap
Initialize Terraform state backend