MiniWebApp Project

CloudFormation, ALB, Auto Scaling & EC2 on AWS

About the Project

This project demonstrates a fully automated AWS web application deployment using CloudFormation. It includes:

The project is designed for high availability and scalability, with EC2 instances automatically replaced if unhealthy.

GitHub Repository

All code, CloudFormation templates, and scripts are available on GitHub:

https://github.com/Jazblue/Miniwebapp

Key Features Demonstrated

SSH access to EC2 instances is possible for demonstration purposes, but the project is fully deployable without manual intervention.

Notes / Lessons Learned

Live Demo

The web page served by the stack displays a simple message:

Hello, Manchester United!

Accessible via the ALB DNS after stack creation.

🚀 Auto Scaling Group (ASG) Test

To demonstrate that the Mini Web App scales under load, I performed a simple load test against the Application Load Balancer (ALB).

ALB URL: MiniWebALB-1107566933.eu-west-2.elb.amazonaws.com

Load Test

I used Apache Bench (ab) to simulate 500 requests with 10 concurrent connections:

ab -n 500 -c 10 http://MiniWebALB-1107566933.eu-west-2.elb.amazonaws.com/

Results:

Auto Scaling Reaction

The Auto Scaling Group (ASG) detected the increased load and automatically launched two new EC2 instances to handle traffic. Desired capacity changed from 0 → 2, and the ALB started routing traffic to both instances.


Launching a new EC2 instance: i-040f108e7af753f1d
Launching a new EC2 instance: i-06f9bf8094de8126a
  

Verification

Refreshing the ALB URL in your browser shows different hostnames from multiple instances:


Hello, Manchester United!
Hostname: ip-10-0-2-237.eu-west-2.compute.internal
AZ: eu-west-2b
  

This confirms traffic is distributed across multiple AZs and instances.

Portfolio Notes