Flask App with Load Balancer
Deploy a scalable Flask application with Application Load Balancer and Auto Scaling Groups
Difficulty
IntermediateDuration
4-6 hours
Cost
~$15-25 (if left running)
Project Overview
Build upon your EC2 knowledge by deploying a scalable Flask web application with an Application Load Balancer. This project introduces advanced networking concepts, auto-scaling, and high availability patterns. We acknowledge this is not the prefered method to create this application, however the manual setup will help to comprehend the services being created.
You'll create a custom VPC, deploy multiple EC2 instances running a Flask application, configure an Application Load Balancer for high availability, and implement Auto Scaling Groups for automatic scaling and healing.
Learning Objectives
Technical Skills
- • Deploy Python Flask applications
- • Create custom VPC networking
- • Configure Application Load Balancers
- • Set up Auto Scaling Groups
AWS Concepts
- • Custom VPC design and implementation
- • Multi-AZ deployment strategies
- • Launch Templates and versioning
- • Target Groups and health checks
Technologies Used
Prerequisites
- • Complete EC2 Project 1 or have equivalent EC2 experience
- • AWS CLI configured with appropriate permissions
- • Basic understanding of networking concepts (subnets, routing)
- • Familiarity with Flask or similar web frameworks
- • Understanding of load balancing concepts
Architecture Overview

Project Steps
Create the Flask App Bootstrap Script
Create a Custom VPC with Public and Private Subnets
Create Security Groups for ALB and EC2
Create Application Load Balancer
Create Launch Template
Create Auto Scaling Group
Test Your Application
Monitor and Scale Your Application
Clean Up Resources