Terraform
https://developer.hashicorp.com/terraform (new) - https://learn.hashicorp.com/terraform (old)
https://github.com/topics/terraform
https://github.com/topics/terraform-module
Cheatsheet: https://cheat-sheets.nicwortel.nl/terraform-cheat-sheet.pdf
Tools
Generate terraform files from existing infrastructure (reverse Terraform) - https://github.com/GoogleCloudPlatform/terraformer
Wrapper for Terraform that provides extra tools for working with multiple Terraform modules - https://github.com/gruntwork-io/terragrunt
Go library that makes it easier to write automated tests - https://github.com/gruntwork-io/terratest
Collection of useful Terraform utilities - https://github.com/gruntwork-io/terraform-aws-utilities
Detect compliance and security violations - https://github.com/tenable/terrascan - https://runterrascan.io
Security scanner for your Terraform code - https://github.com/aquasecurity/tfsec - https://github.com/actions/starter-workflows/blob/main/code-scanning/tfsec.yml
Linter - https://github.com/terraform-linters/tflint - https://github.com/terraform-linters/tflint-ruleset-aws
Learn / Best practices
Terraform Best Practices for AWS users - https://github.com/ozbillwang/terraform-best-practices
https://github.com/bregman-arie/devops-exercises/blob/master/topics/terraform/README.md
https://github.com/MichaelCade/90DaysOfDevOps#learn-infrastructure-as-code
Configuring a Highly Available Infrastructure in AWS using Terraform - https://faun.pub/configuring-a-highly-available-infrastructure-in-aws-using-terraform-2fc9dbb519b6
Comprehensive Guide to Terraform series by Yevgeniy Brikman
- Why we use Terraform and not Chef, Puppet, Ansible, Pulumi, or CloudFormation
- An Introduction to Terraform
- How to manage Terraform state
- How to create reusable infrastructure with Terraform modules
- Terraform tips & tricks: loops, if-statements, and gotchas
- How to use Terraform as a team
How to manage multiple environments with Terraform (Yevgeniy Brikman) - https://blog.gruntwork.io/how-to-manage-multiple-environments-with-terraform-32c7bc5d692
Examples
- https://github.com/AJarombek/global-aws-infrastructure
- https://github.com/AJarombek/jarombek-com-infrastructure
- https://github.com/AJarombek/saints-xctf-infrastructure
- Terraform module for building and deploying Next.js apps to AWS. Supports SSR (Lambda), Static (S3) and API (Lambda) pages. - https://github.com/milliHQ/terraform-aws-next-js
- https://github.com/bregman-arie/devops-exercises/search?q=terraform
Multiple AWS accounts
You should have lots of AWS accounts - https://news.ycombinator.com/item?id=33069547 - https://www.reddit.com/r/aws/comments/xuq73y/you_should_have_lots_of_aws_accounts/ - https://src-bin.com/you-should-have-lots-of-aws-accounts/
AWS Control Tower Account Factory for Terraform:
- https://registry.terraform.io/modules/aws-ia/control_tower_account_factory/aws/latest
- Provision accounts with AWS Control Tower Account Factory for Terraform - https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html
CDK for Terraform
https://www.terraform.io/cdktf
Terraforming with TypeScript - https://radar.com/blog/terraforming-with-typescript