How gurjyot-gurz/elastic-beanstalk-containerized-app works
This repository is a Flask portfolio site packaged for deployment on AWS Elastic Beanstalk. A visitor reaches the site through the load balancer; Flask serves the landing page and its assets, while a separate health route supports infrastructure checks. The documented deployment branch covers Docker-hosted compute, multi-zone scaling, and CloudWatch log streaming. The README describes these AWS relationships, but the corresponding cloud provisioning implementation is not present in the sampled source; those links reflect documentation rather than inspected code.
Main entry points: Dockerfile Docker container · application.py Flask application · 01_cloudwatch.config Platform configuration · index.html Landing page
Components 12
Web application
- Flask application
application.py
Portfolio frontend
- Landing page
templates/index.html - Stylesheet
static/styles.css - Frontend interactions
static/script.js
AWS hosting
- Application Load Balancer
- Elastic Beanstalk
- Auto Scaling Group
- EC2 instances
- Docker container
Dockerfile
Observability
- Platform configuration
.ebextensions/01_cloudwatch.config - CloudWatch
Other components
- Visitor
Connections 13
- Visitor → Application Load Balancer: HTTPS request
- Application Load Balancer → EC2 instances: routes traffic
- Application Load Balancer → Flask application: health probes
- Elastic Beanstalk → Auto Scaling Group: manages capacity
- Elastic Beanstalk → Application Load Balancer: provisions ingress
- Auto Scaling Group → EC2 instances: scales instances
- EC2 instances → Docker container: runs container
- Docker container → Flask application: runs application
- Flask application → Landing page: renders template
- Visitor → Stylesheet: loads asset
- Visitor → Frontend interactions: loads asset
- Platform configuration → CloudWatch: enables log streaming
- Docker container → CloudWatch: streams logs