VPC Solutions with EC2 for Production: AWS with Terraform
Created by Niyazi Erdogan, Last Updated 24-Aug-2020, Language:English
VPC Solutions with EC2 for Production: AWS with Terraform
Learn Terraform with AWS, infrastructure-as-code! Develop Scalable, Highly-Available Architecture with an AWS Architect!
Created by Niyazi Erdogan, Last Updated 24-Aug-2020, Language:English
What Will I Get ?
- You'll learn how to code against AWS using Terraform!
- You'll learn the AWS Well-Architected Framework Best-Practices while implementing!
- You'll learn how to isolate and control your own infrastructure with Terraform using Route Tables, Internet Gateways, Security Groups and Rules!
- You'll learn how to launch Highly-Available, Scalable, Fault-Tolerant and Resilient EC2 Instances on AWS using Terraform!
- You'll have very good understanding of VPC concepts like Subnets, Route Tables and Internet Gateways by putting all into real-world practice with Terraform code!
- You'll be confident to work with AWS using Terraform for any kind of AWS Resource on VPC and EC2 Instances!
- You'll learn how to read and code against an Terraform HCL language!
- You'll be able to launch your own infrastructure on AWS without even signing-in to AWS!
Requirements
- An AWS Account - Free Tier Available!
- General Knowledge on AWS Model would be nice
- Theoretical Knowledge on VPC and EC2 Concepts would be nice but not necessary!
- Any IDE or even a text-editor, recommend with a Terraform Plugin
Description
Learn to implement production-ready infrastructure with AWS and Terraform today with an AWS Certified Solutions Architect!
Do you want to implement your complete infrastructure as code? Do you want to learn the coolest and most popular infrastructure configuration management tool on the market, Terraform and make a huge contribution to your skillset?
Then this course is what you need! You will not only learn how to implement Terraform code but also implement an AWS Well-Architected Framework recommended deployment model which will be Highly-Available, Scalable, Fault-Tolerant and Resilient!
In this course, we will start by exploring the tools we need throughout the course. Just to note here too, we will need an IDE with a proper Terraform plugin available. An AWS account is also necessary so I will show you how to get one if you do not already have it. Sure we will set up our environment variables for Terraform deployments and also configure our IDE to use Terraform efficiently by installing a Terraform Plugin which will highlight the syntax and auto-complete everything we intend to do.
In between all these, I will also give you a crash course on Terraform where you will gain all the information you need to implement this infrastructure!
Once we have everything set up, now is time to get our hands dirty and write some Terraform code to implement our cool, shiny architecture!
We will start off with implementing our remote state and obtaining a key pair which we will use to connect to the instances we will launch. Once we get these done, we will first create the Virtual Private Cloud (VPC) environment. To meet the demands of high-availability, we will spread our private and public subnets to three different availability zones inside a region. We will also create our Private and Public Route Tables to manage the routing between our resources inside VPC.
We’ll also make sure to attach an Internet Gateway (IGW) to our VPC to use with public subnets so the resources in those will be able to access and receive public internet traffic. Our private subnet also need some form of internet connection but not both ways; we want only internet access for outgoing connections from our resources in private subnets! To satisfy this requirement, we will launch and attach a NAT Gateway to our private route table.
After configuring the low-level networking infrastructure, we will proceed to implement our Launch Configurations for both public and private EC2 instances we will launch through Auto-Scaling Groups. Once we implement the instance launching configurations, we will move on to implement our Auto-Scaling Groups using these launch configurations. We will configure the subnets, machine images, startup scripts and simply everything we need to launch instances successfully.
Auto-Scaling doesn’t come out of the box; we will need to configure it regarding our demands and how we want to scale our instances. For our implementation, we will use Target Tracking Scaling which will help use scale and manage our EC2 instances all by itself; we don’t have to do a single thing!
We do not do anything for Auto-Scaling once we set it up but for sure we want to know what’s going on with our instances. That’s why we will create a SNS Topic and subscribe to it to get real-time notifications on what’s happening with our instances and infrastructure.
There are much more to come in this course and I cannot wait for you to come and learn the best practices from an AWS Certified Solutions Architect!
Course Content
-
Introduction
5 Lectures 00:10:54-
Source Code
-
Introduction
Preview00:01:14 -
About This Course
Preview00:02:50 -
What We Will Build in This Course
Preview00:04:36 -
What Do You Need For This Course
Preview00:02:14
-
-
Preparing The Environment for Development
5 Lectures 00:37:42-
Section Overview
Preview00:03:43 -
About Tools and Environment
Preview00:04:29 -
Create an AWS Account If You Don't Already Have It!
00:09:04 -
Logging in to AWS Console and A Walkthrough
00:09:13 -
Let's Create Our AWS Credentials!
00:11:13
-
-
Windows Environment Setup
3 Lectures 00:11:53-
Installing Terraform and IntelliJ Plugin
00:04:37 -
Installing AWS SDK (CLI)
00:04:20 -
Preparing AWS Credentials for Environment
00:02:56
-
-
MacOS Environment Setup
3 Lectures 00:08:17-
Installing Terraform and IntelliJ Plugin
00:03:16 -
Installing AWS SDK (CLI)
00:03:01 -
Preparing AWS Credentials for Environment
00:02:00
-
-
Terraform Refresher
1 Lectures 00:18:38-
Terraform Crash Course
00:18:38
-
-
Virtual Private Cloud (VPC) Network Infrastructure with Terraform - Part 1
7 Lectures 00:23:49-
Creating a Key Pair for EC2 Instances
00:01:36 -
Creating a S3 Bucket for Terraform Remote State
00:01:15 -
Creating Our Project
00:02:23 -
Defining Our Remote State Configuration
00:03:08 -
Creating a Virtual Private Cloud (VPC)
00:06:25 -
Creating Public Subnets
00:05:14 -
Creating Private Subnets
00:03:48
-
-
Virtual Private Cloud (VPC) Network Infrastructure with Terraform - Part 2
7 Lectures 00:31:59-
Creating a Route Table for Public Routes
00:00:55 -
Creating a Route Table for Private Routes
00:00:45 -
Associating Route Tables with Subnets
00:05:07 -
Creating an Elastic IP for NAT Gateway
00:02:12 -
Creating the NAT Gateway and Adding to Route Table
00:03:55 -
Create an Internet Gateway (IGW) and Adding to Route Table
00:02:49 -
Executing Terraform and Outputting Variables for Remote State Reading
00:16:16
-
-
Elastic Compute Cloud (EC2) with Terraform - Part 1
8 Lectures 00:44:12-
Defining Backend and Reading Remote State for Layer 1 Infrastructure
00:06:49 -
Creating Security Groups for EC2 Instances and ELB
00:10:45 -
Creating an IAM Role for EC2 Instances
00:05:17 -
Creating an IAM Role Policy for EC2 Instances
00:04:20 -
Creating an IAM Instance Profile
00:01:30 -
Dynamically Using Latest AMI for EC2 Instances
00:01:50 -
Launch Configuration for Private EC2 Instances
00:10:24 -
Launch Configuration for Public EC2 Instances
00:03:17
-
-
EC2 High Availability, Scalability and Fault Tolerance with Terraform
12 Lectures 01:16:55-
Creating a Load Balancer for Public Web App Tier
00:04:59 -
Creating a Load Balancer for Private Backend App Tier
00:03:42 -
Creating an Auto-Scaling Group for Private EC2 Instances
00:05:58 -
Creating an Auto-Scaling Group for Public EC2 Instances
00:03:53 -
Creating an Auto-Scaling Policy for Public EC2 Instances
00:05:15 -
Creating an Auto-Scaling Policy for Private EC2 Instances
00:01:41 -
Creating a SNS Topic for Auto-Scaling Notifications
00:01:33 -
Creating a SNS Subscription for SMS to Receive Auto-Scaling Notifications
00:01:49 -
Defining Auto-Scaling Notifications for Triggering on Certain Events
00:03:05 -
Reviewing Our Code and Infrastructure Before Execution
00:15:06 -
Providing Tfvars, Planning and Executing Everything
00:09:00 -
Testing Out The Whole Architecture and Verifying Our Setup
00:20:54
-
-
Wrapping Up
1 Lectures 00:01:47-
Thank You!
00:01:47
-