Autoplay
Autocomplete
Previous Lesson
Complete and Continue
DevOps Deployment Automation with Terraform, AWS and Docker
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
Setup dev environment
Install and test dependencies (5:59)
Setup GitLab Account and SSH Authentication (4:02)
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
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
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
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)
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
Configure network
Network overview (2:05)
Create VPC (6:40)
Create public subnets (16:50)
Create private subnets (16:28)
Network quiz
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)
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
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
Using Bastion
Introduction to using bastion (0:35)
Create an API superuser (8:09)
Test ECS service (1:56)
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)
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
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
Summary
Test final app (7:12)
Thank you! (1:00)
Teach online with
Setup GitLab CI/CD pipeline build job
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock