Context
Traditional on-premise or basic shared hosting lacks the scalability, security isolation, and operational visibility that production web applications require. This project was about learning to build cloud infrastructure correctly - not just 'it works', but 'it's secure, scalable, and observable'.
Objective
Deploy a website on AWS within a custom VPC, using EC2 for hosting, Apache for content delivery, Auto Scaling and ELB for reliability, and CloudWatch for monitoring - building a complete production-grade hosting architecture.
Key Contributions
VPC Network Architecture
Custom VPC with public subnet (web servers) and private subnet (future database tier). Internet Gateway for public access, NACLs for network-level access control, Security Groups for instance-level rules.
EC2 & Apache Configuration
Amazon Linux 2 EC2 instance with Apache HTTP Server - configured with caching headers, compression (gzip), and server-side performance tuning for static content delivery.
Auto Scaling Groups
Launch template defining instance configuration, Auto Scaling Group with min=1, max=4, scaling policies triggered on CPU utilisation > 70%. New instances automatically register with the load balancer.
Elastic Load Balancer
Application Load Balancer distributing HTTP/HTTPS traffic across EC2 instances using round-robin. Health checks every 30s - unhealthy instances automatically removed from rotation.
CloudWatch Monitoring
Custom dashboards tracking CPUUtilisation, NetworkIn/Out, RequestCount, and HTTP 5xx error rate. Alarms configured to notify on sustained high CPU or elevated error rates.
Security Configuration
HTTPS with SSL certificate, HTTP→HTTPS redirect. Security Groups: ALB accepts 80/443 from internet; EC2 only accepts traffic from the ALB Security Group - no direct internet exposure.
Technologies
| Category | Details |
|---|---|
| Compute | AWS EC2 - Amazon Linux 2, t2.micro baseline, auto-scaled |
| Networking | VPC - custom network with public/private subnets, Internet Gateway, NACLs |
| Web Server | Apache HTTP Server - static content, caching, compression |
| Load Balancing | Application Load Balancer - traffic distribution, health checks |
| Scaling | Auto Scaling Group - demand-based capacity adjustment |
| Monitoring | CloudWatch - metrics, dashboards, alarms |
Impact
- Security-first architecture - EC2 instances never directly exposed to internet
- Auto Scaling handles traffic spikes without manual intervention or over-provisioning
- ELB health checks provide fault tolerance - failed instances removed within 60s
- CloudWatch alarms enable proactive response before users are impacted
Conclusion
This project established core cloud infrastructure skills that became the foundation for later work - particularly the Multi-Cloud Provisioner at IBM. Understanding how VPC, compute, load balancing, and monitoring fit together at the architecture level is what makes designing cloud systems intuitive.