Skip to main content
CF

DevOps Deployment Automation with Terraform, AWS and Docker

10h 59m 9s
English
Paid

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.

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)

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 98 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 98 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Course requirements
All Course Lessons (98)
#Lesson TitleDurationAccess
1
Course requirements Demo
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
Unlock unlimited learning

Get instant access to all 97 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before taking this course?
Before enrolling in the course, you should have a basic understanding of DevOps principles and experience with cloud services, particularly AWS. Familiarity with GitLab and Docker is recommended, as the course involves setting up GitLab accounts, configuring Dockerfiles, and working with GitLab CI/CD pipelines.
What kind of project will I be building during the course?
Throughout the course, you will build and configure an automated deployment system capable of handling high user traffic. This includes setting up an NGINX proxy server, creating and testing CI/CD pipelines on GitLab, deploying infrastructure using Terraform, and managing scalable infrastructure on AWS.
Who is the target audience for this course?
The course is designed for IT professionals, DevOps engineers, and software developers who want to enhance their skills in deployment automation. It is particularly suitable for those interested in using Terraform, AWS, and Docker to manage scalable infrastructures.
How does this course compare to other DevOps courses?
Unlike introductory DevOps courses, this advanced course focuses on deploying and automating a scalable infrastructure using Terraform, AWS, and Docker. It offers practical exercises like setting up an NGINX proxy and configuring CI/CD pipelines, which provide hands-on experience in managing real-world infrastructure.
What specific tools and platforms will I learn to use?
The course covers several key tools and platforms, including AWS for cloud infrastructure, Terraform for infrastructure as code, Docker for containerization, and GitLab for CI/CD pipelines. You will also work with NGINX, uWSGI, and AWS-vault for secure access management.
What topics are not covered in this course?
The course does not cover basic AWS setup or Docker installation from scratch, as it assumes some foundational knowledge in these areas. Additionally, it does not delve into Kubernetes orchestration or other cloud providers beyond AWS.
How much time should I expect to commit to this course?
With 98 lessons in total, the course requires a significant time commitment. While the runtime is not specified, the practical and hands-on nature of the lessons, including setting up AWS accounts and configuring CI/CD pipelines, will require dedicated effort and time outside of the lesson videos.