Overview
Amazon Web Services (AWS) provides infrastructure for building applications in the cloud. Terraform, created by Hashicorp, is a tool for managing that infrastructure. The combination of AWS and Terraform make managing highly complex, production-grade servers and applications practical, efficient, and even enjoyable.
This instructor-led, live training (online or onsite) is aimed at engineers who wish to use Terraform on AWS to plan and build cloud infrastructure.
By the end of this training, participants will be able to:
- Install and configure Terraform on AWS.
- Implement an “infrastructure as code” approach to managing AWS cloud environments.
- Create, launch, and dismantle infrastructure from within a single tool.
- Write declarative configuration files that can be managed like any other source code in a version control system.
- Quickly update configuration files for effectively responding to changing compute resource needs.
- Collaborate with other infrastructure engineers by sharing configuration files in a common code repository.
- Improve transparency in the infrastructure procurement process.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Requirements
- Experience working with a command line.
- An understanding of cloud infrastructure concepts.
Audience
- Cloud architects
- System administrators
- DevOps engineers
Course Outline
Introduction
- How is Terraform different from Chef, Puppet, Ansible and Salt?
- Why not AWS Management Console?
Overview of Terraform Features and Architecture
- Infrastructure as Code, execution plans, resource graphs, change automation
Terraform Workflow
- Write, Preview, Create, Reproduce, Destroy
Getting Started
- Preparing an AWS account to use with Terraform
- Initializing Terraform
Preparing an Execution Plan
- Writing a new plan, saving, and removing .tf files
Working with Configuration Files
- Syntax overview
- Writing, version controlling, and updating
Setting Resource Dependencies
- Using the Terraform Resource Graph
- Infrastructure vs application dependencies
Deploying Infrastructure
- Previewing configuration changes
- Executing changes
Managing State
- Configuring a backend using AWS S3 and AWS DynamoDB
Reproducing Infrastructure
- Setting up the environment for an application: dev, test/qa, stage, and prod
Packaging Configuration Files as Modules
- Duplicating code with shareable modules
- Using the Module Registry to build reusable templates
Integrating Terraform into a Deployment Pipeline
- Building, deploying, and testing an application
- Importing existing external resources into Terraform
Terraform Performance Tuning
- Infrastructure monitoring and performance metrics
Troubleshooting
Summary and Conclusion