Arsitektur yang Akan Dibangun
React frontend di S3 + CloudFront, Node.js backend di EC2 (Auto Scaling Group), PostgreSQL di RDS, dan file uploads di S3. Semua dalam private VPC dengan public load balancer.
Langkah 1: VPC Setup
Buat VPC dengan public dan private subnets di minimal 2 AZ. EC2 dan RDS di private subnet, Load Balancer dan NAT Gateway di public subnet.
Langkah 2: RDS PostgreSQL
Buat RDS instance di private subnet group. Enable Multi-AZ untuk production. Simpan credentials di AWS Secrets Manager, bukan environment variable.
Langkah 3: EC2 dan ALB
Buat Launch Template dengan User Data script untuk install dan start aplikasi. Buat Auto Scaling Group dengan target tracking policy. Buat Application Load Balancer yang forward ke ASG.
Langkah 4: S3 + CloudFront untuk Frontend
Build React app, upload ke S3 bucket. Buat CloudFront distribution yang pointing ke S3 dengan custom error page untuk SPA routing. Konfigurasikan HTTPS dengan ACM certificate.
Langkah 5: CI/CD dengan GitHub Actions
Deploy frontend: build React, sync ke S3, invalidate CloudFront cache. Deploy backend: push Docker image ke ECR, trigger ASG instance refresh.