Deep DivesInfrastructure
Tech Specification
Technical specification for the RawStack Infrastructure component.
Runtime
| Language | TypeScript v5.3 |
| Framework | AWS CDK v2 |
AWS services used
| Service | Purpose |
|---|---|
| VPC | Network isolation, public/private subnets |
| RDS (PostgreSQL) | Primary relational database |
| ElastiCache (Redis) | Caching and token storage |
| ECS Fargate | Serverless container runtime |
| ECR | Docker image registry |
| ALB | Application Load Balancer |
| CloudFront | CDN for web and admin |
| S3 | Static asset hosting for admin |
| Lambda | Deployment trigger on ECR push |
| EventBridge | Event bus for Lambda triggers |
| ACM | TLS certificates |
| Route 53 | DNS management |
| Secrets Manager | Database credentials |
Environment variables
Copy infrastructure/aws/.env.dist to infrastructure/aws/.env and fill in all required values.
Required for all deployments
AWS_ACCOUNT_ID=123456789012
AWS_REGION=eu-west-1
ENVIRONMENT=dev # dev | staging | prod
ENABLE_DELETION_PROTECTION=false # true in productionCore Stack
CORE_ECR_REPOSITORY_NAME=rawstack/core-api
CORE_DB_NAME=rawstack
CORE_DB_USER=rawstack
CORE_ACCESS_TOKEN_TTL=900
CORE_JWT_SECRET=your-strong-secret
CORE_REDIS_MODE=single # single | cluster
CORE_REDIS_NODE_TYPE=cache.t4g.microWeb Stack
WEB_ECR_REPOSITORY_NAME=rawstack/web
WEB_CLOUDFRONT_PRICE_CLASS=PRICE_CLASS_100 # 100 | 200 | ALLAdmin Stack
ADMIN_BUILD_PATH=apps/admin/dist # defaults to this
ADMIN_CLOUDFRONT_PRICE_CLASS=PRICE_CLASS_100Custom Domains (optional)
DOMAIN_HOSTED_ZONE_NAME=example.com
WEB_DOMAIN_ENABLED=true
WEB_DOMAIN_NAME=example.com
WEB_DOMAIN_ADD_WWW=true
ADMIN_DOMAIN_ENABLED=true
ADMIN_DOMAIN_NAME=admin.example.com
CORE_DOMAIN_ENABLED=true
CORE_DOMAIN_NAME=api.example.com