Skip to content

utkarshm1505/aws-auto-scaling-load-balancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AWS Auto Scaling and Load Balancer Infrastructure

Overview

This project demonstrates the implementation of a self-scaling and highly available web infrastructure on Amazon Web Services (AWS) using Auto Scaling Groups (ASG) and an Application Load Balancer (ALB).

The infrastructure automatically scales based on workload demand and distributes incoming traffic across multiple EC2 instances to ensure high availability, fault tolerance, and efficient resource utilization.


Architecture

Architecture Diagram

The architecture consists of an Application Load Balancer integrated with an Auto Scaling Group. Incoming requests are distributed across healthy EC2 instances while scaling policies dynamically adjust the number of instances based on CPU utilization.


Key Features

  • Elastic and Self-Scaling Infrastructure
  • Application Load Balancer (ALB)
  • Auto Scaling Groups (ASG)
  • Dynamic Scale-Out and Scale-In
  • CPU-Based Target Tracking Policy
  • High Availability Architecture
  • Automatic Traffic Distribution
  • Improved Fault Tolerance
  • Resource Optimization

AWS Services Used

  • Amazon EC2
  • Auto Scaling Groups (ASG)
  • Application Load Balancer (ALB)
  • Target Groups
  • Amazon CloudWatch
  • Security Groups
  • Ubuntu Linux

Infrastructure Configuration

Launch Template

  • Ubuntu 20.04 AMI
  • Instance Type: t3.micro
  • Existing SSH Key Pair
  • Security Group Configuration
  • User Data Script

Target Group

  • Protocol: HTTP
  • Port: 80
  • Health Check Path: /

Application Load Balancer

  • Internet-Facing Load Balancer
  • HTTP Listener (Port 80)
  • Integrated with Target Group

Auto Scaling Group

  • Desired Capacity: 2
  • Minimum Capacity: 2
  • Maximum Capacity: 4

Scaling Policy

  • Target Tracking Scaling Policy
  • CPU Utilization Threshold: 50%

Workflow

  1. Create Launch Template
  2. Create Target Group
  3. Configure Application Load Balancer
  4. Create Auto Scaling Group
  5. Attach Target Group to ASG
  6. Configure Target Tracking Policy
  7. Generate CPU Load
  8. Observe Automatic Scaling
  9. Verify Traffic Distribution

Load Balancer Configuration

Load Balancer Configuration

The Application Load Balancer distributes incoming requests across healthy EC2 instances registered in the target group, ensuring application availability and fault tolerance.


Auto Scaling Group Configuration

Auto Scaling Group

The Auto Scaling Group manages EC2 instances and automatically adjusts capacity based on workload demand.


Auto Scaling Configuration

Auto Scaling Group Configuration

The scaling configuration defines the minimum, maximum, and desired instance capacity along with target tracking policies.


Scaling Demonstration

CPU Load Generation

CPU Load Test

CPU load was generated using the Linux stress utility to simulate increased traffic and processing demand.

Automatic Scale-Out

Scaling Result

When CPU utilization exceeded the configured threshold, the Auto Scaling Group automatically launched additional EC2 instances to maintain performance and availability.


Results

  • Successfully implemented a self-scaling cloud infrastructure.
  • Additional EC2 instances were launched automatically under increased load.
  • Application Load Balancer distributed traffic across healthy instances.
  • Infrastructure maintained high availability without manual intervention.
  • Resource utilization was optimized through dynamic scaling.

Learning Outcomes

This project demonstrates practical knowledge of:

  • Auto Scaling Concepts
  • Application Load Balancing
  • Elastic Cloud Infrastructure
  • High Availability Architecture
  • Cloud Monitoring
  • AWS Compute Services
  • Cloud Resource Optimization
  • Fault-Tolerant System Design

Repository Structure

aws-auto-scaling-load-balancer
│
├── README.md
│
├── architecture
│   └── architecture-diagram.png
│
├── screenshots
│   ├── auto-scaling-group.png
│   ├── auto-scaling-group-config.png
│   ├── load-balancer-config.png
│   ├── load-balancer-listeners.png
│   ├── scaling-result-cpu-load.png
│   └── scaling-result-new-instances.png
│
└── docs
    └── aws-auto-scaling-lab-report.pdf

Documentation

Detailed implementation report is available in:

docs/aws-auto-scaling-lab-report.pdf

Future Enhancements

  • HTTPS using AWS Certificate Manager
  • Auto Scaling Based on Multiple Metrics
  • CloudWatch Dashboards
  • Infrastructure as Code using Terraform
  • CI/CD Integration using GitHub Actions
  • Multi-AZ Production Deployment

Author

Utkarsh Mahajan

B.Tech Computer Science Engineering (Cloud Computing)

AWS | Cloud Infrastructure | DevOps | Auto Scaling | Load Balancing

GitHub: https://github.com/utkarshm1505


About

AWS elastic infrastructure using Auto Scaling Groups and Application Load Balancer for automatic scaling, high availability, and traffic distribution.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors