This site is powered by
course builder. Create your online course today.
Start now
Create your course
with
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)
Create user data script
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock