
Adam introduces the ultimate guide to deploying Flask to AWS, covering server-based setups with Nginx, a Python application server, Flask, and PostgreSQL, plus serverless SAM, API Gateway, Lambda, and DynamoDB.
Explore Flask on Linux with Nginx and Postgres, and AWS services like API Gateway, Lambda, and DynamoDB, plus monolith to serverless scaling and CI/CD with CodePipeline.
Outline the prerequisite knowledge for success, including intermediate Python and Flask, SQLAlchemy and Flask-SQLAlchemy, Linux basics, and Git workflows with remote repositories.
Explore the standalone monolith model, where a single Linux host runs nginx, a Python Flask application, and a PostgreSQL database, with reverse proxy, static asset handling, and deployment on AWS.
Explore a scalable AWS architecture with multiple Flask app servers behind an application load balancer, using horizontal scaling and auto scaling to distribute requests to the app and database.
Discover serverless deployment of a rest-based Flask app using API Gateway, Lambda, and DynamoDB, routing todo operations (create, list, fetch, complete, delete) to dedicated functions with automatic scaling.
Master identity and access management (iam) to control access, roles, and policies across aws resources. Leverage the aws cli, s3 storage, ec2 compute, and codecommit for secure, scalable cloud operations.
Install and configure the AWS CLI on your machine, set a region, create an IAM user with programmatic access, then create an S3 bucket and upload a hello world file.
Learn practical ec2 management with aws cli and iam to start, stop, and list instances, create a custom policy, and attach it to a role.
Demonstrate how an IAM role and security policy govern AWS CLI actions on an EC2 instance, using describe-instances, start-instances, and stop-instances, with permission checks and error handling.
Configure AWS CodeCommit as a git-based version control service, set up IAM credentials, clone repos, and push your first hello world file from VS Code.
Explore a monolith where a web server, uwsgi application server, Flask framework, and PostgreSQL database all run on a single Linux host in an AWS EC2 instance.
Review the simple Flask app included in the course zip, its three directories, and the single root route that fetches the AWS instance id and renders it.
Push a simple Flask app to an AWS CodeCommit repository and securely store the .env file in S3, keeping sensitive environment variables out of version control.
Create an IAM service role for EC2 to enable read-only access to CodeCommit and S3 by attaching S3 read-only and CodeCommit read-only policies.
Launch an EC2 instance, configure a security group, and deploy a Flask app with nginx and uwsgi by cloning from code commit and setting up a Python virtual environment.
Discover EC2 user data to automate Flask app installation at launch, using a two-script bootstrap that clones from S3 and runs post scripts.
Learn to set up domain names and DNS with GoDaddy by creating an A record pointing to an Elastic IP, migrate DNS to Route 53, and configure an ACM certificate.
Migrate the domain to Route 53 by creating a hosted zone, updating name servers, and pointing the naked domain to the AWS instance IP with an A record.
Learn to use Let's Encrypt to install SSL on a standalone EC2 instance, update web server configuration, and force redirects to https.
Automate Let's Encrypt renewal with a cron job to renew certs every 90 days, using a Python sleep that delays 0–60 minutes before running Certbot renewal.
Install and run a more realistic Flask todo app with authentication, database access, and multi-page views, inspect the project structure, and configure local PostgreSQL and migrations.
Review the flask todo app codebase, push to code commit, and upload the environment variables file to a dedicated S3 location, then configure nginx and wsgi to run the app.
Install and run a Flask Todo monolith on AWS, provisioning an EC2 instance, setting up PostgreSQL 11, creating a dedicated flask_todo database user, deploying with Nginx, and preparing environment variables.
Demonstrate vertical scaling for a monolith app by stopping an AWS EC2 instance, upgrading from micro to medium in the AWS console, and restarting it on a single server.
Learn a distributed architecture with separate application and database servers using EC2 and RDS PostgreSQL, featuring managed services, easy scaling, and multi-zone failover for reliability.
Spin up an audience database on an RDS PostgreSQL 11 dev/test instance, enable automatic backups, and plan optional multi-AZ replication while shrinking the primary to save costs.
Migration to rds part 2 guides configuring security groups, testing connections, and updating environment variables for the audience database, then applying migrations to enable scalable deployment.
Deploy flask applications to aws using application load balancers and auto scaling groups. Distribute traffic across availability zones, connect to the rdx database instance, and enable ssl with certificate manager.
Configure auto scaling groups with launch templates in AWS to scale Flask deployments across multiple availability zones using CPU-based policies and user data scripts, behind a load balancer.
Link an elastic load balancer and a target group to an auto scaling group, configure health checks, and route traffic to healthy Flask instances across multiple availability zones.
Tie your domain in Route 53 to the elastic load balancer by creating an alias A record using the ELB DNS name, then enable SSL with AWS Certificate Manager.
Learn to secure a domain with AWS certificate manager by requesting a public SSL certificate, validating via DNS, and attaching it to an elastic load balancer over https.
Explore how AWS CodePipeline automates deployments using CodeCommit and CodeDeploy, configure the app spec YAML file with lifecycle hooks, permissions, and environment variables for EC2 and beyond.
Examine flask todo app deployment with code deploy, focusing on the appspec.yml, source-destination pairs, and deployment hooks. Learn how scripts configure before install, after install, start services, and validate health.
Learn to build an AWS CodePipeline for deploying a Flask app by creating a CodeCommit repository, configuring EC2 instances with CodeDeploy roles, and enabling commit-triggered deployments.
Learn to set up AWS CodePipeline with CodeDeploy for a Flask app, linking CodeCommit, configuring deployment groups on EC2, choosing in-place or blue-green deploys, and monitoring via CloudWatch.
install aws sam on your computer to deploy flask to aws using infrastructure as code with yaml templates, then explore canned templates and example serverless projects for faster deployment.
Discover how to spin up a hello world rest api with aws sam, using a python template and lambda-backed api gateway, and deploy via sam build and sam deploy guided.
Modify the hello world template to accept a dynamic path parameter and return hello plus the parameter, then deploy the updated api with SAM and Lambda and view logs.
Refactors the hello world into a flask rest api using the flask lambda library for a serverless deployment.
Learn to remove resources provisioned for a hello world flask app by deleting its CloudFormation stack in the console or via the CLI, and observe the delete in progress.
Review how to deploy a flask-based to-do rest API to the cloud using API gateway, Lambda, and DynamoDB, with SAM templates, environment variables, and IAM policies.
Extend a flask todo app into a serverless REST API by implementing complete and delete functions, updating DynamoDB entries with a timestamp, and testing via a cloud http client.
In this course you will learn how to deploy Python based Flask applications to the AWS Cloud using both traditional EC2 Virtual Private Servers (VPS) along with the ever increasingly popular Serverless method using Fully Managed AWS service offerings. In the sections on traditional Server based EC2 deployments I present professional grade, open source, and battle tested technologies such as Nginx web server, uWSGI Python application server, and PostgreSQL database. For server based deployment methods I cover a variety of architectures ranging from the simple all-in-one monolith EC2 architecture to more distributed approaches with RDS (PostgreSQL) Instances, and Auto Scaling Groups of EC2 Application servers sitting behind Elastic Load Balancers. For Serverless deployments I utilize the AWS Serverless Application Model (SAM) using AWS API Gateway, AWS Lambda and AWS DynamoDB managed services to build a microservices like REST API. This course covers the most common, industry leading, methods of architecting and deploying Python based Flask applications utilizing the AWS Cloud in ways that are fault tolerant, cost effective, and scalable. The skills demonstrated in this course should leave the learner able to bring their Python Flask apps to life in the AWS Cloud where limitless potential for innovation can unleashed to provide value and excitement to users at web scale.