
This lecture introduces the course to the student and covers the impetus behind the development of this course.
This video lecture discusses the personal and financial liabilities of the student in this course.
Cloud service providcers such as Amazon charge for their infrastructure and other cloud computing services on a usage basis. This course makes use of AWS compute throughout the labs. It is recommended that students sign up for a free AWS account in order to perform the labs. If however a free tier account is not available, then students may be subjected to charges from Amazon or any other cloud service provider used in any of the labs.
Students will get a quick introduction to Terraform to include:
Key features
Use cases
Infrastructure as code
This is where you can download the lab guide for this course.
In this lecture we start taking an in-depth look at Terraform and will cover the following topics:
Terminology and concepts
How Terraform works
Terraform workflows
In this lecture we take our first look at HCL, the programming language used with Terraform to create infrastructure.
We take a deeper look at syntax for the following Terraform building blocks:
Terraform providers such as AWS
Terraform resources for modeling compute resources
In Lab 1.1 we create a Amazon Web Services account and also create a dedicated user for terraform.
In this lab we download Terraform and set up our development environment.
In this lab we configure the AWS Terraform Provider using our AWS credentials.
In this lab we code and create our first compute resources in AWS using Terraform.
In this lab we make a change to our compute resource and observe how Terraform handles changes.
In this lab we learn how to destroy the resources we create using Terraform.
In this lecture you will learn about the different types of Terraform variables including:
Input variables
Output variables
Data types - strings, booleans, maps, and lists
In this lecture you will learn how to declare variables and assign values to them using a variety of methods.
In this lab you will replace your hard-coded AWS access and secret key values with a Terraform variable.
In this lab we create another AWS EC2 instance using Terraform using hard-coded values for certain resource attributes.
In this lab you will learn how to use a Terraform map as a lookup table to replace the hard-coded region-specific AMI value.
In this lab you will learn how to set variable values on the command line when running terraform.
In this lab you will learn how to use an output variable to display values for a computed resource attribute.
In this lecture you will learn how to use interpolations in Terraform to substitute real values for variables when configuring a resource. The following interpolations will be covered:
Conditionals
Built-in functions
Templates
Managing multiple instances of a resource using count.index
Basic math functions
In this lab you will learn how to add conditional logic statements to your Terraform code. Conditionals are typically used to enable or disable a resource attribute or to set the quantity of a particular resource.
In this lab you will learn how to manage multiple instances of a resource using the special variable count.index.
In this lab you will learn how to create and render templates within Terraform. Templates are particularly use when you need to specify environment specific values in configuration files.
In this lab you will learn how to perform basic math functions in Terraform using the terraform console.
In this lecture you will learn how Terraform handles dependencies between resources automatically using implicit references and explicit references.
In this lab you will create both an implicit and explicit resource dependency between two or more resources and observe how Terraform goes about creating those resources.
In this lecture you will learn how provisioners are used to bootstrap compute resources during the resource creation process. I will cover:
File provisioner
Local-exec provisioner
Remote-exec provisioner
Configuring remote connections
In the first Provisioner lab we will create an SSH key pair that will be used to log into our compute resource.
In this lab you will create a network rule in Terraform to allow SSH traffic to a compute resource.
In this lab you will verify that you can log in to a compute resource using the SSH key pair created earlier.
In this lab you will install Apache on a compute resource using an inline provisioner created in Terraform.
In this lab you will configure a file provisioner to copy files to a compute resource during the bootstrap process.
In this lab you will replace the inline provisioner with a shell script that gets uploaded to a compute resource and executed.
In this lecture I discuss Terraform data sources and how they are used to fetch information about pre-existing resources or information from a cloud provider.
In this lecture you will learn about how Terraform modules can be used to organize configurations into re-usable and shareable packages. We will also touch on different sources for modules including the public Terraform Registry.
In this lab you will use the public AWS VPC module to create a complete 3-tier virtual private cloud complete with public and private subnets.
In this lab you will learn how to create your own basic terraform module.
In this lecture I cover how Terraform keeps track of resources, dependencies and attributes in the Terraform state file. I will also cover both local state files and remote state files using a storage backend.
In this lab you will learn how to import resources into your Terraform state file so that they can be managed by Terraform.
In this lab you will configure Terraform to store state remotely in an S3 storage bucket.
In this video I demonstrate how to store your AWS access and secret key in a credentials file rather than in environment variables.
Cloud computing has taken over the IT landscape and is soon to outpace on-premise and in-house data centers as companies are starting to realize the efficiencies, cost savings, and flexibility the cloud can provide. Computing resources can be created and destroyed simply by calling an API. Entire virtual data centers can be created in a matter of minutes or hours.
Whether your company or application was born in the cloud or transitioning to the cloud, you need tools to build and manage your infrastructure. Terraform from Hashicorp is one such tool that allows you to declare infrastructure as code in a simple, easy to understand language.
Managing your infrastructure as code bridges the gap between dev and ops and provides an opportunity to include infrastructure management as part of the development lifecycle. When environments are declared in code they can be shared and used across your organization to provide consistent environments that align with your production environment.
Managing infrastructure as code also provides a far more robust process for managing and tracking infrastructure since these processes can now be incorporated into CI/CD tooling and other automation processes.
In this course I will teach you the fundamentals of Terraform using Amazon Web Services as an example. Together we will walk through the basics of Terraform and ultimately create real infrastructure in AWS along the way.
This course makes use of the AWS Free Tier which offers the general public a certain number of FREE computing hours and storage space for one year. It is recommended that students sign up for an AWS Free Tier account.
Udemy and the author of this course are not liable for any cloud service provider charges you may incur while executing the exercises in this course.