Let's talk about what Terraform is.
Infrastructure as Code
Terraform is a tool that turns declarative configuration files into infrastructure.
You tell it what you need, and Terraform will create, update, or destroy whatever it needs to to make it happen.
The configuration files can be committed to version control, and distributed to your team.
This course covers the basics you need to know to run Terraform effectively for AWS, whether you're a loan operator or working in a team environment.
Imagine setting up a fairly common set of infrastructure in AWS: A few servers behind a load balancer.
Here are some of the resources in AWS you'll find youself managing:
- A VPC
- VPC Subnets, routes, route tables
- NAT Gateways, Internet Gateways
- An Application Load Balancer (ALB), target groups & listeners
- Security Groups
- IAM roles
- AMI's and EC2 instances
- Launch Templates
- Autoscaling groups
That's just to handle some web traffic. Is there a database (RDS)? A cache (ElastiCache cluster)? DNS (Route53)? Do you need autoscaling groups for worker server in addition to web servers?
If you have a staging environment as well, then you're doubling much of this infrastructure.
Managing all of this in the AWS console is a non-starter. It's possible, but you don't have to live like that.
Terraform makes this all manageable through configuration, automation, and organization of its declarative config language.
This course will not only cover the nuts and bolts of Terraform but also different ways to organize your configuration. The goal is to guide you towards the most effective way to use Terraform in your organization.