Home / Shop
- Description
- Course Outline
Course Description
This Infrastructure as code means writing code to provision, manage and deploy IT infrastructure. Terraform is an open-source tool built by Hashicorpto automate the provisioning of infrastructure resources. It is used to build, manage, update and delete infrastructure resources like virtual machines, containers, networking and others using infrastructure as a coding philosophy. Terraform is a vendor agnostic tool and can manage infrastructure for multiple resource providers (for example AWS, Google Cloud, Azure, Aviatrix, Heroku, Oracle, etc.). This course will cover how to use Terraform with a focus on the AWS Environment.
Learning Objectives
- Understand Infrastructure as code
- Understand, use and apply terraform, including advanced terraform features
- Use terraform to provision AWS resources
- Use terraform with Packer to create custom images
- Use terraform with AWS ECS, and CodePipelines
- Be able to apply DevOps techniques using
terraform
Who Should Attend
- Data Center Architects
- Cloud Infrastructure Architects
- Network Engineers
- System Administrators
- Storage Administrators
- Anyone interested in IAC
Prerequisites
- Based Network Background
Course Content
Module 1: Infrastructure as Code: Terraform
- Introduction
- Terraform installation
- Terraform Installation (on Windows)
- Terraform installation using Vagrant
Module 2: Terraform Basics
- Understanding terraform HCL
- First steps in terraform - AWS Setup
- First steps in terraform - Spinning up an instance
- First steps in terraform - summary
- Terraform Variable Types
Module 3: Terraform Fundamentals
- Variables
- Software Provisioning
- Outputting attributes
- Remote state
- Data Sources
- Templates
- Other Providers
- Modules
- Terraform Commands Overview
Module 4: Terraform with AWS
- Introduction to VPCs
- Introduction to VPCs - Part II
- Introduction to VPCs - Part III
- Launching EC2 instances in the VPC
- Userdata
- Static IPs, EIPs, and Route53
- RDS
- IAM
- IAM Roles
- Autoscaling
- Introduction to Elastic Load Balancers (ELB)
- ELBs in terraform
- Application Load Balancer (ALB)
- Elastic Beanstalk
Module 5: Advanced Terraform Usage
- Introduction to Interpolation
- Conditionals
- Built-in Functions
- For and For Each Loop
- Terraform Project Structure
- Terraform lock file
- Manipulating state
Module 6: Packer
- Packer introduction
- Terraform with Packer and
Jenkins
Module 7: Docker on AWS
- Introduction to Docker
- Docker on AWS
- Building Docker images
Module 8: Module Development
- Introduction to Module Development
- ECS + ALB Module Overview
- Introduction to Advanced Module Development
- The difference between count and for_each
Module 9: AWS CodePipeline
- Introduction to AWS CodePipeline
Module 10: AWS EKS (hosted Kubernetes)
- Introduction to AWS EKS
Labs
- Lab 1: Software Provisioning & Windows Server Provisioning
- Lab 2: Variables, Outputting Attributes, Remote State & Data Sources, Terraform Commands, and an External Module
- Lab 3: EBS Volumes
- Lab 4: VPCs and NAT, Launching instances in a VPC ,EBS Volumes, Userdata, and Route53
- Lab 5: RDS,IAM users and groups, IAM Roles, Autoscaling & ELB with autoscaling, Elastic Beanstalk
- Lab 6: Interpolation and Conditionals, Built-in Functions, For loops, For Each Loops, Project Structure, Manipulating State
- Lab 7: Packer with Terraform
- Lab 8: Build NodeJS app and push to ECR, Running a NodeJS app on ECS, Terraform with Jenkins, ECR and ECS1
- Lab 9: ECS + ALB Module
- Lab 10: for_each with modules15:32
- Lab 11: Complex data types and the flatten() function 2
- Lab 12: CodePipeline
- Lab 13: AWS EKS
Module 1: Infrastructure as Code: Terraform
- Introduction
- Terraform installation
- Terraform Installation (on Windows)
- Terraform installation using Vagrant
Module 2: Terraform Basics
- Understanding terraform HCL
- First steps in terraform - AWS Setup
- First steps in terraform - Spinning up an instance
- First steps in terraform - summary
- Terraform Variable Types
Module 3: Terraform Fundamentals
- Variables
- Software Provisioning
- Outputting attributes
- Remote state
- Data Sources
- Templates
- Other Providers
- Modules
- Terraform Commands Overview
Module 4: Terraform with AWS
- Introduction to VPCs
- Introduction to VPCs - Part II
- Introduction to VPCs - Part III
- Launching EC2 instances in the VPC
- Userdata
- Static IPs, EIPs, and Route53
- RDS
- IAM
- IAM Roles
- Autoscaling
- Introduction to Elastic Load Balancers (ELB)
- ELBs in terraform
- Application Load Balancer (ALB)
- Elastic Beanstalk
Module 5: Advanced Terraform Usage
- Introduction to Interpolation
- Conditionals
- Built-in Functions
- For and For Each Loop
- Terraform Project Structure
- Terraform lock file
- Manipulating state
Module 6: Packer
- Packer introduction
- Terraform with Packer and
Jenkins
Module 7: Docker on AWS
- Introduction to Docker
- Docker on AWS
- Building Docker images
Module 8: Module Development
- Introduction to Module Development
- ECS + ALB Module Overview
- Introduction to Advanced Module Development
- The difference between count and for_each
Module 9: AWS CodePipeline
- Introduction to AWS CodePipeline
Module 10: AWS EKS (hosted Kubernetes)
- Introduction to AWS EKS
Labs
- Lab 1: Software Provisioning & Windows Server Provisioning
- Lab 2: Variables, Outputting Attributes, Remote State & Data Sources, Terraform Commands, and an External Module
- Lab 3: EBS Volumes
- Lab 4: VPCs and NAT, Launching instances in a VPC ,EBS Volumes, Userdata, and Route53
- Lab 5: RDS,IAM users and groups, IAM Roles, Autoscaling & ELB with autoscaling, Elastic Beanstalk
- Lab 6: Interpolation and Conditionals, Built-in Functions, For loops, For Each Loops, Project Structure, Manipulating State
- Lab 7: Packer with Terraform
- Lab 8: Build NodeJS app and push to ECR, Running a NodeJS app on ECS, Terraform with Jenkins, ECR and ECS1
- Lab 9: ECS + ALB Module
- Lab 10: for_each with modules15:32
- Lab 11: Complex data types and the flatten() function 2
- Lab 12: CodePipeline
- Lab 13: AWS EKS