
Outline the prerequisite knowledge for success, including intermediate Python and Flask, SQLAlchemy and Flask-SQLAlchemy, Linux basics, and Git workflows with remote repositories.
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.
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.
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.
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.
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.
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.
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.
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.