Scalable Web Application on AWS

Designed and deployed a highly available web application architecture using Amazon EC2, Application Load Balancer, Auto Scaling Group, and Multi-AZ deployment.

View Architecture Key Learnings Back to Portfolio

Executive Summary

This project demonstrates how to build a scalable and fault-tolerant web application on AWS. The application was deployed across multiple Availability Zones using an Auto Scaling Group and served through an Application Load Balancer.


The goal of this project was to understand real-world cloud architecture concepts such as high availability, load balancing, self-healing infrastructure, health checks, and automated instance replacement.

Technologies Used

Amazon EC2

Used to host the web application on Linux-based virtual servers.

Application Load Balancer

Distributed incoming traffic across healthy EC2 instances.

Auto Scaling Group

Automatically maintained the desired number of EC2 instances.

Multi-AZ Deployment

Improved availability by deploying instances across multiple Availability Zones.

Security Groups

Controlled inbound and outbound traffic for EC2 instances and the load balancer.

Launch Template

Defined instance configuration including AMI, instance type, security group, and user data.

Architecture Overview

Architecture

Implementation Steps

1. Created Launch Template

Created an EC2 Launch Template using Amazon Linux 2, a security group, and user data to automatically install and start the Apache web server.

Launch Template

2. Configured Security Groups

Allowed HTTP traffic on port 80 for web access and restricted SSH access on port 22 to my IP address for secure administration.

3. Created Target Group

Created a target group to register EC2 instances and monitor their health using load balancer health checks.

Target Group

4. Created Application Load Balancer

Configured an internet-facing Application Load Balancer to distribute user traffic across healthy EC2 instances.

Application Load Balancer

5. Created Auto Scaling Group

Created an Auto Scaling Group across two Availability Zones with a desired capacity of two instances to support high availability.

Auto Scaling

6. Tested Self-Healing

Terminated one EC2 instance manually and verified that the Auto Scaling Group automatically launched a replacement instance.

Self-Healing

Project Outcome

High Availability

The application was deployed across multiple Availability Zones.

Load Distribution

The ALB successfully routed traffic to healthy backend instances.

Self-Healing

Auto Scaling automatically replaced terminated EC2 instances.

Hands-On Architecture

This project strengthened practical understanding of AWS scalable design.

Technical Document

Download the complete implementation guide, architecture details,validation testing, and troubleshooting steps.

📄 Download Full Documentation

Key Learnings