• Stars
    star
    1,942
  • Rank 22,996 (Top 0.5 %)
  • Language HCL
  • License
    Other
  • Created over 6 years ago
  • Updated 22 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Terraform Best Practices free ebook translated into ๐Ÿ‡ฌ๐Ÿ‡ง๐Ÿ‡ฆ๐Ÿ‡ช๐Ÿ‡ง๐Ÿ‡ฆ๐Ÿ‡ง๐Ÿ‡ท๐Ÿ‡ซ๐Ÿ‡ท๐Ÿ‡ฌ๐Ÿ‡ช๐Ÿ‡ฉ๐Ÿ‡ช๐Ÿ‡ฌ๐Ÿ‡ท๐Ÿ‡ฎ๐Ÿ‡ฑ๐Ÿ‡ฎ๐Ÿ‡ณ๐Ÿ‡ฎ๐Ÿ‡ฉ๐Ÿ‡ฎ๐Ÿ‡น๐Ÿ‡ฐ๐Ÿ‡ท๐Ÿ‡ต๐Ÿ‡ฑ๐Ÿ‡ท๐Ÿ‡ด๐Ÿ‡จ๐Ÿ‡ณ๐Ÿ‡ช๐Ÿ‡ธ๐Ÿ‡น๐Ÿ‡ท๐Ÿ‡บ๐Ÿ‡ฆ๐Ÿ‡ต๐Ÿ‡ฐ
description
This document is an attempt to systematically describe best practices using Terraform and provide recommendations for the most frequent problems Terraform users experience.

Welcome

Terraform is powerful (if not the most powerful out there now) and one of the most used tools which allow management of infrastructure as code. It allows developers to do a lot of things and does not restrict them from doing things in ways that will be hard to support or integrate with.

Some information described in this book may not seem like the best practices. I know this, and to help readers to separate what are established best practices and what is just another opinionated way of doing things, I sometimes use hints to provide some context and icons to specify the level of maturity on each subsection related to best practices.

The book was started in sunny Madrid in 2018, available for free here at https://www.terraform-best-practices.com/.

A few years later it has been updated with more actual best practices available with Terraform 1.0. Eventually, this book should contain most of the indisputable best practices and recommendations for Terraform users.

Sponsors

Please contact me if you want to become a sponsor.

CAST AI โ€” Cut your Kubernetes costs by 60%+ on average. First cluster optimization FREE!
Speakeasy โ€” Terraform Providers, SDKs and docs for your API. Make your API enterprise-ready!

Translations

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/u3iITRIHQx97ro2PkfdC/" %} ุงู„ุนุฑุจูŠุฉ (Arabic) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/PJbgKPAX0ohEMLpETpg7/" %} Bosanski (Bosnian) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/B48qUSNPO2XmkIySLzfr/" %} Portuguรชs (Brazilian Portuguese) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/6shyPtr2KrqW4ANbFXYg/" %} Franรงais (French) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/DyguS0uZfMW7X7m9BWx1/" %} แƒฅแƒแƒ แƒ—แƒฃแƒšแƒ˜ (Georgian) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/PKopCWJZbhpQ9FT0W8tL/" %} Deutsch (German) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/5c1kFpqxaDZC2g9e6rtT/" %} ฮตฮปฮปฮทฮฝฮนฮบฮฌ (Greek) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/4bq6CyY8vYiEHkjN63rT/" %} ืขื‘ืจื™ืช (Hebrew) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/Mgong4S6IjtibE055zUM/" %} เคนเคฟเค‚เคฆเฅ€ (Hindi) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/ZLCz7lNWbSJxDGuNOI44/" %} Bahasa Indonesia (Indonesian) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/8VlMHbHDbW6qRWdgN5oU/" %} Italiano (Italian) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/BoZVs6O2OJFQLNV1utmm/" %} เฒ•เฒจเณเฒจเฒก (Kannada) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/9yChMGbFo2G47Wiow1yY/" %} Polski (Polish) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/sFM1GW5TPCGsskQ03mTm/" %} Romรขnฤƒ (Romanian) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/5VD4NK4mHOY8SWjC9N5e/" %} ็ฎ€ไฝ“ไธญๆ–‡ (Simplified Chinese) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/fTxekzr50pIuGmrPkXUD/" %} Espaรฑol (Spanish) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/Fedpbc5NbKjynXI8xTeF/" %} Tรผrkรงe (Turkish) {% endcontent-ref %}

{% content-ref url="http://127.0.0.1:5000/o/-LMqIrDlzEiI-N4uHrWg/s/tXRvMPILxeJaJTM2CsSq/" %} ะฃะบั€ะฐั—ะฝััŒะบะฐ (Ukrainian) {% endcontent-ref %}

Contact me if you want to help translate this book into other languages.

Contributions

I always want to get feedback and update this book as the community matures and new ideas are implemented and verified over time.

If you are interested in specific topics, please open an issue, or thumb up an issue you want to be covered. If you feel that you have content and you want to contribute, write a draft and submit a pull request (don't worry about writing good text at this point!).

Authors

This book is maintained by Anton Babenko with the help of different contributors and translators.

License

This work is licensed under Apache 2 License. See LICENSE for full details.

The authors and contributors to this content cannot guarantee the validity of the information found here. Please make sure that you understand that the information provided here is being provided freely, and that no kind of agreement or contract is created between you and any persons associated with this content or project. The authors and contributors do not assume and hereby disclaim any liability to any party for any loss, damage, or disruption caused by errors or omissions in the information contained in, associated with, or linked from this content, whether such errors or omissions result from negligence, accident, or any other cause.

Copyright ยฉ 2018-2023 Anton Babenko.

More Repositories

1

pre-commit-terraform

pre-commit git hooks to take care of Terraform configurations ๐Ÿ‡บ๐Ÿ‡ฆ
Shell
3,020
star
2

serverless.tf

serverless.tf is an opinionated open-source framework for developing, building, deploying, and securing serverless applications and infrastructures on AWS using Terraform.
689
star
3

terraform-cost-estimation

Anonymized, secure, and free Terraform cost estimation based on Terraform plan (0.12+) or Terraform state (any version)
jq
659
star
4

terraform-aws-devops

Info about many of my Terraform, AWS, and DevOps projects.
409
star
5

terragrunt-reference-architecture

Terragrunt Reference Architecture (upd: May 2020)
HCL
367
star
6

modules.tf-lambda

Infrastructure as code generator - from visual diagrams created with Cloudcraft.co to Terraform
Python
347
star
7

terraform-best-practices-workshop

Terraform Best Practices - workshop materials
HCL
233
star
8

terraform-docs-as-pdf

Complete Terraform documentation (core + all official providers) as PDF files. Updating nightly.
Shell
198
star
9

awsp

AWS credential profile changer
Shell
90
star
10

you-have-passed-the-certification

I'm glad you have passed the certification! I just don't want to see posts about it in my LinkedIn newsfeed.
JavaScript
76
star
11

terrapin

[not-WIP] Terraform module generator (not ready for its prime time, yet)
Shell
71
star
12

modules.tf-demo

Real modules.tf demo (updated May 2021)
HCL
42
star
13

serverless.tf-playground

serverless.tf playground for examples and experiments
HCL
38
star
14

terraform-deployment-pipeline-talk

Code for my talks about Terraform in deployment pipeline
HCL
31
star
15

terraform-provider-openai

Terraform provider for OpenAI (experimental as hell)
Go
26
star
16

terraform-aws-anything

Content for "Manage any AWS resource with Terraform"
HCL
24
star
17

tfvars-annotations

[not-WIP] Update values in terraform.tfvars using annotations
Go
23
star
18

terrible

[not-WIP] Let's orchestrate Terraform configuration files with Ansible! Terrible!
Makefile
23
star
19

antonbabenko

11
star
20

addo-demo

All code used during my All Day DevOps talk
HCL
7
star
21

renovatebot-tf-tg-demo

Renovatebot with Terraform and Terragrunt
HCL
5
star
22

.github

Meta repository for all repositories in my account
1
star