Autoplay
Autocomplete
Previous Lesson
Complete and Continue
DevOps Deployment Automation with Terraform, AWS and Docker
Introduction
Welcome (2:54)
Course Requirements (4:42)
How to Get Help (8:18)
What is DevOps Automation? (3:24)
Technologies (10:53)
Architecture Overview (4:34)
What is the Recipe API? (2:12)
AWS Cost Calculation (6:26)
Course Update (6:30)
Disclaimer (3:43)
Software Requirements
Intro to Software Requirements (1:30)
Required Dependencies (2:22)
Required Accounts (3:36)
Create Docker Hub Token (2:24)
Checking Each Dependency (10:19)
Setup AWS Account
Intro to AWS Setup (2:22)
Setup AWS Account (3:09)
Give IAM Users Access to Billing Information (1:13)
Setup IAM Identity Center (12:10)
Setup aws-vault (9:03)
Create Budget (4:39)
AWS Setup Quiz
Prepare Project
Intro to Preparing the Project (2:13)
Clone and Create Repo (5:00)
Project Overview (3:17)
Run Project Locally (9:12)
Overview of Design Changes (4:44)
Update Static and Media Files (21:07)
Switch uWSGI to Gunicorn (9:53)
Test Project Locally (2:46)
Prepare Project Quiz
Configure Terraform
Intro to Terraform Setup (1:18)
Create Backend Resources in AWS (5:12)
Terraform Structure (5:49)
Add Docker Compose Config (8:28)
Configure Setup Terraform (12:48)
Initialise Setup Terraform (9:57)
Configure Deploy Terraform (14:02)
Configure Terraform Quiz
AWS Setup Terraform
Intro to AWS Setup Terraform (2:34)
Create IAM User for CD (34:00)
Create ECR Repos (9:12)
Add IAM Permissions for ECR Repos (6:13)
AWS Setup Terraform Quiz
CI/CD
Introduction to CI/CD (0:58)
Workflow Design (9:09)
GitHub vs GitLab (5:18)
CI/CD Quiz
GitHub Actions
Overview of Workflow Design (5:23)
Intro to GitHub Actions (1:40)
Set GitHub Actions Variables (15:14)
Add Python Checks (19:45)
Add Terraform Checks (8:39)
Build and Push Docker Images (20:50)
Add Terraform Apply Job (9:50)
Add Terraform Destroy Jobs (8:23)
Test Configured Workflow (11:38)
Summary of GitHub Actions Setup (1:09)
GitHub Actions Quiz
GitLab CI/CD
GitLab CI/CD Introduction (2:16)
Overview of Workflow Design (2:58)
Add Python Checks (10:56)
Set GitLab CI/CD Variables (16:42)
Add Terraform Checks (3:38)
Test Housekeeping Checks (4:57)
Build and Push Docker Images (10:34)
Add Terraform Apply Job (15:01)
Add Terraform Destroy Job (7:31)
Test Configured Workflow (12:44)
Summary of GitLab CI/CD Setup (1:10)
GitLab CI/CD Quiz
Configure Network
Network Overview (7:19)
Add Network IAM Permissions (6:16)
Create VPC (14:47)
Create Public Subnets (15:10)
Create Private Subnets (7:05)
Create Endpoints (19:37)
Summary of Configure Network (0:59)
Configure Network Quiz
Create Database
Introduction to Creating a Database (2:48)
Add RDS IAM Permissions (4:06)
Add RDS Instance (17:56)
Deploy RDS Instance Change (7:06)
Summary of Create Database (0:38)
Create Database Quiz
Setup ECS
Intro to Setup ECS (2:59)
Add ECS Permissions to CD User (3:44)
Create Cluster (1:43)
Create ECS Task Execution Role (9:01)
Create ECS Task Role (5:59)
Create Log Group (2:13)
Create Task Definition (10:02)
Create Proxy Container Definition (13:18)
Create App Container Definition (14:01)
Create Service Security Group (8:12)
Create ECS Service (9:05)
Deploy Changes and Test (5:31)
View Logs (6:05)
Summary of Setup ECS (1:11)
Setup ECS Quiz
Test ECS Service
Intro to Test ECS Service (0:30)
Using ECS Exec (5:30)
Create Admin User (6:34)
Create Load Balancer
Intro to Create Load Balancer (2:13)
Add Load Balancer Permissions (3:08)
Add Security Group (7:15)
Add Load Balancer (3:57)
Add Target Group (6:03)
Add Listeners (3:42)
Update ECS to Use Load Balancer (3:31)
Update Django ALLOWED_HOSTS (6:30)
Deploy Load Balancer and Test (5:13)
Summary of Create Load Balancer (0:42)
Create Load Balancer Quiz
Setup EFS
Intro to Setup EFS (3:01)
Add EFS Permissions (3:13)
Create EFS File System (3:29)
Create EFS Security Group (5:14)
Create EFS Mount Targets (2:50)
Create Access Point (4:31)
Configure ECS Task (11:58)
Merge and Deploy EFS (3:50)
Test Media Uploads (10:37)
Summary of Setup EFS (1:17)
Setup EFS Quiz
Configure Custom DNS
Intro to Configure Custom DNS (2:37)
Add Route 53 Permissions (2:36)
Register Domain (2:01)
Add Route53 Zone (13:31)
Add ACM Certificate (13:43)
Update Load Balancer to use Custom DNS (7:34)
Deploy and Test Custom DNS (4:29)
Configure Custom DNS Quiz
Summary
Test Final App (6:25)
Summary (4:01)
[OLD] Introduction
Welcome (2:51)
Course requirements (2:01)
What is DevOps Automation? (3:47)
Technologies (6:31)
Architecture overview (3:03)
What is the recipe app? (1:07)
AWS cost estimation (5:25)
Disclaimer (2:16)
How to get help (4:27)
UPDATE: New default branch name
[OLD] Setup dev environment
Install and test dependencies (5:59)
Setup GitLab Account and SSH Authentication (4:02)
[OLD] Setup AWS
Introduction to AWS setup (1:35)
Setup AWS Account (3:01)
Give IAM users access to billing information (1:26)
Setup AWS IAM account (9:28)
Set MFA on IAM account (5:36)
Setup aws-vault (8:58)
Create budget in AWS (4:50)
AWS setup quiz
[OLD] Setup NGINX proxy
Introduction to NGINX proxy (3:25)
Create project for NGINX proxy (0:56)
Configure NGINX proxy GitLab project (8:31)
Setup AWS for NGINX proxy (7:28)
Set repository variables (4:57)
Create NGINX config files (11:19)
Create NGINX Dockerfile (12:40)
Setup GitLab CI/CD pipeline build job (8:05)
Setup GitLab CI/CD pipeline push jobs (14:24)
Test proxy pipeline (13:09)
NGINX proxy quiz
[OLD] Prepare recipe app project for deployment
Introduction to preparing project for deployment (1:57)
Create new project on GitLab (2:42)
Configure GitLab project (0:58)
Add uWSGI server to project (8:49)
Update Dockerfile to run entrypoint (8:10)
Configure static and media files in app settings (2:51)
Setup environment variable configuration (8:16)
Test proxy deployment locally (9:45)
IMPORTANT UPDATE: Update Dockerfile to run entrypoint
[OLD] Setup Terraform
Introduction to setting up Terraform (1:47)
Get AWS ready for Terraform (6:48)
Configure Terraform (10:35)
Setup Docker Compose for running Terraform (6:39)
Initialize Terraform (6:21)
Create bastion EC2 instance (22:07)
Create Terraform workspace (2:42)
Create resource prefix (10:33)
Add tags (9:50)
[OLD] Setup GitLab CI/CD
Introduction to setting up GitLab CI-CD (3:38)
Create skeleton CI/CD config (21:20)
Test workflow (10:53)
Add automated code checks (5:43)
Setup Terraform linting (15:42)
Create CI user in AWS (13:09)
Add build job (8:44)
Add Terraform plan jobs (6:51)
Add Terraform apply jobs (4:32)
Add Terraform destroy jobs (3:10)
Test full workflow (8:28)
UPDATE: Must go back and change code from previous lesson
GitLab CI-CD setup quiz
[OLD] Configure network
Network overview (2:05)
Create VPC (6:40)
Create public subnets (16:50)
Create private subnets (16:28)
Network quiz
[OLD] Create database
Introduction to database (0:50)
Update CI user policy (3:30)
Add RDS instance (17:44)
Set CI variables for database (8:02)
[OLD] Update bastion
Introduction to updating bastion (1:29)
Update CI user and add SSH key (4:29)
Create user data script (5:29)
Create bastion instance profile (7:27)
Update bastion subnet and SSH key (3:44)
Add security group (10:15)
Add output for bastion address (5:05)
Update bastion quiz
[OLD] Setup Elastic Container Service (ECS)
Introduction to ECS (2:18)
Add permissions to CI user (2:02)
Create cluster (2:39)
Create task role (9:49)
Create log group (1:33)
Create container definition template (9:28)
Create task definition (16:12)
Create and deploy service (10:03)
Inspect ECS task logs (4:20)
UPDATE: Create and deploy service
[OLD] Using Bastion
Introduction to using bastion (0:35)
Create an API superuser (8:09)
Test ECS service (1:56)
[OLD] Create load balancer
Introduction to creating load balancer (1:17)
Add permissions to CI IAM policy (1:43)
Add load balancer (14:48)
Update ALLOWED_HOSTS setting and test (6:47)
[OLD] Handle media uploads
Overview of media uploads (1:15)
Add S3 permissions to CI IAM policy (1:09)
Create S3 bucket for images (6:38)
Give ECS task permissions for S3 (6:13)
Update app to use S3 backend for images (1:09)
Handling media uploads quiz
[OLD] Setup custom DNS
Overview of DNS (1:03)
Register domain (1:41)
Add IAM permissions for CI user (1:49)
Add DNS to Terraform (19:27)
Update load balancer and ECS to use new domain (12:31)
Setup custom DNS quiz
[OLD] Summary
Test final app (7:12)
Thank you! (1:00)
Teach online with
Add Python Checks
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock