Operational Documentation, Architecture & Verification Runbooks
Three.js containerized web application hosted on Web EC2, routed via Cloudflare Anycast edge with DDoS protection and TLS termination.
Grafana dashboard querying Prometheus on the Monitoring EC2, accessed via an outbound Cloudflare Zero Trust Tunnel with zero public inbound ports.
Complete Infrastructure-as-Code (Terraform), Ansible automation, Docker packaging, CI/CD workflows, and durable operational runbooks.
| Component | Configuration / Resource | Security / Network Placement |
|---|---|---|
| VPC Network | 10.0.0.0/24 | AWS ap-southeast-1 (Singapore) |
| Public Subnet | 10.0.0.0/25 (IGW + NAT Gateway) | Inbound Port 80 (HTTP) to Web Server |
| Private Subnet | 10.0.0.128/25 (Route to NAT) | Zero public IPs; outbound internet via NAT |
| Web Server | 10.0.0.5 + Elastic IP | Serves web container on port 80; node_exporter on port 9100 (private) |
| Ansible Controller | 10.0.0.135 (Private Subnet) | Manages targets via VPC private network; SSM access only |
| Monitoring Server | 10.0.0.136 (Private Subnet) | Prometheus (:9090) + Grafana (:3000); Cloudflare Tunnel connector |
| ECR Registry | devops-bootcamp/final-project-hasb | Private AWS container registry; IAM auth on instance profile & GitHub OIDC |