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

CategoryDetails
ComputeAWS EC2 - Amazon Linux 2, t2.micro baseline, auto-scaled
NetworkingVPC - custom network with public/private subnets, Internet Gateway, NACLs
Web ServerApache HTTP Server - static content, caching, compression
Load BalancingApplication Load Balancer - traffic distribution, health checks
ScalingAuto Scaling Group - demand-based capacity adjustment
MonitoringCloudWatch - metrics, dashboards, alarms

Impact

VPC
isolated network architecture with layered security
Auto Scaling
dynamic capacity from 1 to 4 instances
ALB
removes unhealthy instances automatically
  • 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.