Managing AWS Infrastructure with Terraform Bootcamp - 2 Day
Leverage and integrate Terraform with a mix of expert instruction and hands-on engineering.
The Hashicorp tool suite has found a distinct place in the DevOps community as a fantastic set of solutions for some of the most common DevOps tooling needs and automation use cases. This 2-day engagement focuses on Terraform as a solution for infrastructure management. Led by an expert, your teams will perform real work and establish guidelines for how to integrate and use Terraform for the use cases they need to adopt or progress.
This training engagement places an engineering expert who has extensive experience with Terraform into a workshop setting with your teams so you can learn how to apply the tool in a real-world setting. Our engineers have assisted many large organizations as they improve their DevOps practice and they bring this experience to your teams. Working together, our expert will provide technical experience with hands-on instruction as they assist your organization in effectively using Terraform for infrastructure needs.
Learning Objective:
After taking this class, students will be able to:
-
Use Terraform for creating and managing infrastructure as code
-
Maintain version control of infrastructure assets just as you do with software assets
-
Effectively use Terraform with Docker and Kubernetes for DevOps-style workflows
-
Develop and present a business case for Terraform and related tools
-
Run Terraform with public cloud infrastructure such as AWS
-
Integrate Terraform with other technologies in the workspace
-
Learn nomenclature and core features of Terraform and how to apply them
-
Determine integration needs and plugin needs
Target Audience:
Application Developers, Operations Developers, IT Directors & Managers, Development Managers, Site Reliability Engineers, Teams practicing DevOps, CTOs, engineering teams, leaders, and technology stakeholders interested in using Terraform to manage Infrastructure as Code
Course Outline:
Part 1: Infrastructure as Code
In this section, we will introduce the benefits that Infrastructure as Code (IaC) can bring to organizations and how IaC fits within modern DevOps best practices.
-
Motivation for Infrastructure as Code
-
Applying Infrastructure as Code in DevOps
-
Infrastructure as Code principles and best practices
-
Benefits of Infrastructure as Code
-
The case for Terraform
Part 2: Terraform Overview
This section provides an overview of Terraform concepts and vocabulary and instructs how Terraform manages infrastructure configuration in cloud environments.
-
Terraform architecture
-
Terraform configuration language overview
-
Terraform CLI
-
The lifecycle of a configuration
-
Managing configuration state
Hands-on Labs:
-
Using the Terraform CLI
-
Setting up a Terraform project
Part 3: AWS Resources
In this section, participants will get hands-on practice using Terraform to create a simple application environment in AWS and learn the essential constructs in Terraform for defining resources.
-
Resource types
-
Best practices in declaring resources
-
Network resources (VPC, subnet, security group)
-
Compute resources (virtual machine)
-
Storage resources (database)
-
Local values in a configuration
-
Augmenting a configuration with data sources
Hands-on Labs:
-
Creating a VPC and subnets
-
Adding a virtual machine into your VPC
-
Adding a database to your VPC
-
Using locals for replicated values
-
Using a data source to read external configuration
Part 4: Terraform Programming
This section introduces programming constructs within Terraform that enable you to add more control and flexibility in defining resources.
-
Data structures (primitives, maps, lists, objects, etc.)
-
Types of expressions to set values
-
Creating multiples of a resource
-
Dynamic blocks
-
Parameterizing a configuration with variables
-
Outputs from a configuration
-
Functions
-
Handling errors
Hands-on Labs:
-
Using variables in a configuration
-
Getting outputs from a configuration
-
Creating a re-sizable cluster of virtual machines
-
Creating multiple resources through iteration loops
-
Leveraging functions in your code
Part 5: Modules
This section shows how modules can be used to create reusable components in Terraform and teaches best practices in organizing Terraform code.
-
Purpose of modules
-
Module structure and code organization
-
Invoking modules
-
Module sources and versioning
-
Nested modules
-
Publishing modules
Hands-on Labs:
-
Using an external module in your configuration
-
Refactoring your code to implement a module
Part 6: Wrapping Up
This section wraps up the course with reviews to reinforce what you have learned.
-
Reference material to learn more
-
Course review
-
Next steps