DevOps Deployment Automation with Terraform, AWS and Docker
Welcome to the advanced course on how to set up a deployment automation that’s capable of handling millions of users! In this course you will learn some of the most in-demand skills in the marketplace today by creating automated workflows to deploy and manage a scalable and secure infrastructure.
More
The demand for DevOps engineers is skyrocketing because few people have these skills and the value they add to a business’s bottom line is so high. Software development is expensive, and DevOps saves money by automating and streamlining the process. It also makes it easier to deploy more frequently, so you can catch issues early and improve the reliability of your product or service. Not to mention it saves hundreds of hours of manually administering servers and running deployments (like the good old days).
People in DevOps roles are some of the highest earners in the industry, are looking for work the least, and are the most sought after by companies. (Source: Stack Overflow Developer Survey 2019 and Indeed).
Needless to say, mastering the technologies and skills used for DevOps is a great return on investment.
Whether you’re a developer, system administrator, or tech entrepreneur - this course will give you the tools to advance your skills in some of the most in-demand DevOps technologies in the marketplace today.
In this course, you’ll be deploying a sample Django REST API to AWS using Terraform, GitLab, Docker and a suite of AWS technologies, including:
Elastic Container Registry (ECR)
Relational Database Service (RDS)
Elastic Container Service (ECS)
Application Load Balancer (ALB)
Elastic Cloud Compute (EC2)
Virtual Private Cloud (VPC)
Subnets
Gateways
Simple Storage Service (S3)
Route53
Identity and Access Management (IAM)
and AWS Certificate Manager (ACM)
Watch Online DevOps Deployment Automation with Terraform, AWS and Docker
# | Title | Duration |
---|---|---|
1 | Course requirements | 02:02 |
2 | What is DevOps Automation? | 03:48 |
3 | Technologies | 06:32 |
4 | Architecture overview | 03:04 |
5 | Recipe Application | 01:08 |
6 | AWS cost estimation | 05:26 |
7 | Disclaimer | 02:17 |
8 | How to get help | 04:28 |
9 | Install and test dependencies | 06:00 |
10 | Setup GitLab Account and SSH Authentication | 04:03 |
11 | Introduction to AWS setup | 01:36 |
12 | Setup AWS Account | 03:02 |
13 | Give IAM users access to billing information | 01:27 |
14 | Setup AWS IAM account | 09:29 |
15 | Set MFA on IAM account | 05:37 |
16 | Setup AWS-vault | 08:59 |
17 | Create budget in AWS | 04:51 |
18 | Introduction to NGINX proxy | 03:26 |
19 | Create project for NGINX proxy | 00:57 |
20 | Configure NGINX proxy GitLab project | 08:32 |
21 | Setup AWS for NGINX proxy | 07:29 |
22 | Set repository variables | 04:58 |
23 | Create NGINX config files | 11:20 |
24 | Create NGINX Dockerfile | 12:41 |
25 | Setup GitLab CI/CD pipeline build job | 08:06 |
26 | Setup GitLab CI/CD pipeline push jobs | 14:25 |
27 | Test proxy pipeline | 13:10 |
28 | Introduction to preparing project for deployment | 01:58 |
29 | Create new project on GitLab | 02:44 |
30 | Configure GitLab project | 00:59 |
31 | Add uWSGI server to project | 08:50 |
32 | Update Dockerfile to run entrypoint | 08:11 |
33 | Configure static and media files in app settings | 02:52 |
34 | Setup environment variable configuration | 08:17 |
35 | Test proxy deployment locally | 09:46 |
36 | Introduction to setting up Terraform | 01:48 |
37 | Get AWS ready for Terraform | 06:49 |
38 | Configure Terraform | 10:36 |
39 | Setup Docker Compose for running Terraform | 06:40 |
40 | Initialize Terraform | 06:22 |
41 | Create bastion EC2 instance | 22:08 |
42 | Create Terraform workspace | 02:43 |
43 | Create resource prefix | 10:34 |
44 | Add tags | 09:51 |
45 | Introduction to setting up GitLab CI-CD | 03:39 |
46 | Create skeleton CI/CD config | 21:21 |
47 | Test workflow | 10:54 |
48 | Add automated code checks | 05:44 |
49 | Setup Terraform linting | 15:43 |
50 | Create CI user in AWS | 13:10 |
51 | Add build job | 08:45 |
52 | Add Terraform plan jobs | 06:52 |
53 | Add Terraform apply jobs | 04:33 |
54 | Add Terraform destroy jobs | 03:11 |
55 | Test full workflow | 08:29 |
56 | Network overview | 02:06 |
57 | Create VPC | 06:41 |
58 | Create public subnets | 16:51 |
59 | Create private subnets | 16:29 |
60 | Introduction to database | 00:51 |
61 | Update CI user policy | 03:31 |
62 | Add RDS instance | 17:45 |
63 | Set CI variables for database | 08:03 |
64 | Introduction to updating bastion | 01:30 |
65 | Update CI user and add SSH key | 04:30 |
66 | Create user data script | 05:30 |
67 | Create bastion instance profile | 07:28 |
68 | Update bastion subnet and SSH key | 03:45 |
69 | Add security group | 10:16 |
70 | Add output for bastion address | 05:06 |
71 | Introduction to ECS | 02:19 |
72 | Add permissions to CI user | 02:03 |
73 | Create cluster | 02:40 |
74 | Create task role | 09:50 |
75 | Create log group | 01:34 |
76 | Create container definition template | 09:29 |
77 | Create task definition | 16:13 |
78 | Create and deploy service | 10:04 |
79 | Inspect ECS task logs | 04:21 |
80 | Introduction to using bastion | 00:36 |
81 | Create an API superuser | 08:10 |
82 | Test ECS service | 01:57 |
83 | Introduction to creating load balancer | 01:18 |
84 | Add permissions to CI IAM policy | 01:44 |
85 | Add load balancer | 14:49 |
86 | Update ALLOWED_HOSTS setting and test | 06:48 |
87 | Overview of media uploads | 01:16 |
88 | Add S3 permissions to CI IAM policy | 01:10 |
89 | Create S3 bucket for images | 06:39 |
90 | Give ECS task permissions for S3 | 06:14 |
91 | Update app to use S3 backend for images | 12:21 |
92 | Overview of DNS | 01:04 |
93 | Register domain | 01:42 |
94 | Add IAM permissions for CI user | 01:50 |
95 | Add DNS to Terraform | 19:28 |
96 | Update load balancer and ECS to use new domain | 12:32 |
97 | Test final app | 07:13 |
98 | Thank you! | 01:01 |