Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Mastering Terraform
Mastering Terraform

Mastering Terraform: A practical guide to building and deploying infrastructure on AWS, Azure, and GCP

eBook
€20.98 €29.99
Paperback
€37.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Mastering Terraform

Understanding Terraform Architecture

At its core, Terraform is a simple command-line program that evaluates source code, which describes what a desired state should look like, compares it against what the actual state is, constructs a plan to transform the actual state into the desired state, and can execute the plan. But don’t let its perceived simplicity fool you. Terraform’s internal complexity manifests itself in its external simplicity.

Terraform is a large, source-available project written in Go that maintains the command-line executable. It provides baseline functionality such as HashiCorp Configuration Language (HCL) parsing, state management, plan creation, and execution.

Terraform is extremely powerful, yet ironically, it does very little by itself. But here’s the exciting part: Terraform’s superpower comes from its extensibility, a power that is not limited to its creators. The actual Terraform executable, by itself, can’t do much...

Understanding Terraform architecture

The biggest differentiator of Terraform is that, well, Terraform plans ahead. Let’s look at how Terraform handles planning in detail.

The plan

When working with Terraform, you will be following a process where Terraform is used to analyze the existing environment. In doing this analysis, Terraform is determining what (if any) changes in the code need to be applied to the actual environment to bring it up to date. Terraform itemizes these changes as actions within the plan. While Terraform does this analysis on our behalf, produces the plan, and is fully capable of executing that plan against the environment, we are still responsible for reviewing the plan and determining if the planned changes are what we intended:

Figure 1.1 – Terraform resources are straightforward machines with inputs and outputs

Figure 1.1 – Terraform resources are straightforward machines with inputs and outputs

Terraform represents every component in your environment as a resource in this analysis. Resources...

Understanding Terraform state

Terraform uses the state to remember what was previously provisioned in a given workspace. Some critics of Terraform, when they compare it to AWS CloudFormation or ARM templates, point out that these technologies don’t rely on this concept of maintaining state in an externalized file. Of course, this is only true because these tools only support a single target platform and can tightly couple to the proprietary nature in which those platforms maintain state. However, Terraform—with its flexible plugin architecture—can’t assume anything about the platform and the resources that it provisions to each target platform. Therefore, Terraform needs to drop to the lowest common denominator and ensure that it knows what it has provisioned before in a uniform and consistent fashion.

This approach to maintaining the state provides a couple of benefits. First, it uniformly records what Terraform has provisioned across platforms that...

Understanding how to build and consume modules

One of Terraform’s most powerful capabilities is its ease of organizing and packaging reusable code, which increases the maintainability of your code base and improves the reusability of common patterns in your architecture.

Traditional developers have it easy—you must simply create a new method to encapsulate a reusable code block. In other IaC tools, doing the same thing is a challenge. In Terraform, all you need is a new folder.

Terraform scopes every module within a folder. When you run terraform init, Terraform transforms the current working directory into the root module of the workspace. You can use modules stored in other folders within the same repository just by using a relative path to reference the module. It is a standard convention within the Terraform community for storing local modules in a modules directory near the root module’s directory.

Consider this folder structure:

  &...

Understanding how to use the CLI effectively

Now that we understand Terraform’s core architecture, let’s examine its CLI and how to interact with it. There are many different commands, but we’ll focus on the important ones for implementing the core Terraform workflow. I’d encourage you to explore HashiCorp’s documentation for some of the more obscure ones, and later in Chapter 17, when we discuss managing existing environments using Terraform, we’ll be covering some more commands useful in that context.

init

This is an important command and probably the first one you will ever execute when working with Terraform. The reason is that Terraform works within a working directory instead of other tools that operate on a single file (such as ARM or CloudFormation) or an entry point file (such as Ansible). Terraform also relies on hidden directories to load important context about the workspace. This approach is very similar to how Git works...

Summary

In this chapter, we took an in-depth look at Terraform’s architecture. We primarily focused on two critical architectural components: state and modularity. Having a sound understanding of Terraform’s architecture is vital for you to be able to use Terraform to its fullest effectively. Finally, we ended by looking at Terraform’s CLI, which will enable you to, when you’re ready, integrate Terraform with your own CI/CD pipelines. In the next chapter, we will explore HCL so that we can lay the foundation on which we can start building IaC using Terraform.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Build comprehensive end-to-end solutions with Terraform using VMs, Kubernetes, and Serverless
  • Integrate Terraform with other HashiCorp products and common tools such as Packer, Docker, Kubernetes, and Helm
  • Streamline your operations using Gitflow powered by GitHub Actions CI/CD pipelines
  • Purchase of the print or Kindle book includes a free PDF eBook

Description

Advancements made in cloud technology and automation tools have led to increased challenges in defining and managing your infrastructure or app environment as code on your chosen cloud platform, integrating security, managing microservices complexity, and so on. This book takes a learning-by-doing approach to teach you how to employ Terraform features to develop efficient cloud infrastructure using real-world scenarios and best practices. The book begins by introducing you to Terraform's architecture, both as a command-line tool and a programming language, HashiCorp Configuration Language (HCL). You’ll discover best practices, usage, and architectural patterns and implement Terraform on virtual machines (VMs), Docker/Kubernetes, serverless, and multiple cloud platforms such as AWS, Azure, and GCP. The chapters also show you how to industrialize your CI/CD pipeline by integrating Terraform with other popular technologies to build, provision, deploy, and manage cloud infrastructure. You’ll gain a clear understanding of security, monitoring, troubleshooting, and cost optimization and be able to apply the concepts you’ve learned when preparing for Terraform Associate certification exams. By the end of this book, you’ll be equipped to confidently build, automate, and deliver your infrastructure and CI/CD pipelines in cloud-based applications.

Who is this book for?

This book is for Devops engineers, cloud engineers, platform engineers, infrastructure engineers, site reliability engineers, developers, and cloud architects who want to utilize Terraform to automate their cloud infrastructures and streamline software delivery. Prior knowledge of cloud architecture, infrastructure, and platforms, as well as Terraform basics, will help you understand the topics present in this book.

What you will learn

  • Explore Terraform architecture and configurations in depth
  • Integrate Packer with Terraform for VM-based solutions
  • Containerize apps with Docker and Kubernetes
  • Explore GitOps and CI/CD deployment patterns
  • Transform existing applications into serverless architectures
  • Migrate and modernize legacy apps for the cloud
  • Implement Terraform on AWS, Azure, and GCP
  • Use Terraform with teams of varying size and responsibility
Estimated delivery fee Deliver to Bulgaria

Premium delivery 7 - 10 business days

€25.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jul 26, 2024
Length: 494 pages
Edition : 1st
Language : English
ISBN-13 : 9781835086018
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Bulgaria

Premium delivery 7 - 10 business days

€25.95
(Includes tracking information)

Product Details

Publication date : Jul 26, 2024
Length: 494 pages
Edition : 1st
Language : English
ISBN-13 : 9781835086018
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 120.97
Mastering Terraform
€37.99
Solutions Architect's Handbook
€44.99
The Linux DevOps Handbook
€37.99
Total 120.97 Stars icon

Table of Contents

26 Chapters
Part 1: Foundations of Terraform Chevron down icon Chevron up icon
Chapter 1: Understanding Terraform Architecture Chevron down icon Chevron up icon
Chapter 2: Using HashiCorp Configuration Language Chevron down icon Chevron up icon
Chapter 3: Harnessing HashiCorp Utility Providers Chevron down icon Chevron up icon
Part 2: Concepts of Cloud Architecture and Automation Chevron down icon Chevron up icon
Chapter 4: Foundations of Cloud Architecture – Virtual Machines and Infrastructure-as-a-Services Chevron down icon Chevron up icon
Chapter 5: Beyond VMs – Core Concepts of Containers and Kubernetes Chevron down icon Chevron up icon
Chapter 6: Connecting It All Together – GitFlow, GitOps, and CI/CD Chevron down icon Chevron up icon
Part 3: Building Solutions on AWS Chevron down icon Chevron up icon
Chapter 7: Getting Started on AWS – Building Solutions with AWS EC2 Chevron down icon Chevron up icon
Chapter 8: Containerize with AWS – Building Solutions with AWS EKS Chevron down icon Chevron up icon
Chapter 9: Go Serverless with AWS – Building Solutions with AWS Lambda Chevron down icon Chevron up icon
Part 4: Building Solutions on Azure Chevron down icon Chevron up icon
Chapter 10: Getting Started on Azure – Building Solutions with Azure Virtual Machines Chevron down icon Chevron up icon
Chapter 11: Containerize on Azure – Building Solutions with Azure Kubernetes Service Chevron down icon Chevron up icon
Chapter 12: Go Serverless on Azure – Building Solutions with Azure Functions Chevron down icon Chevron up icon
Part 5: Building Solutions on Google Cloud Chevron down icon Chevron up icon
Chapter 13: Getting Started on Google Cloud – Building Solutions with GCE Chevron down icon Chevron up icon
Chapter 14: Containerize on Google Cloud – Building Solutions with GKE Chevron down icon Chevron up icon
Chapter 15: Go Serverless on Google Cloud – Building Solutions with Google Cloud Functions Chevron down icon Chevron up icon
Part 6: Day 2 Operations and Beyond Chevron down icon Chevron up icon
Chapter 16: Already Provisioned? Strategies for Importing Existing Environments Chevron down icon Chevron up icon
Chapter 17: Managing Production Environments with Terraform Chevron down icon Chevron up icon
Chapter 18: Looking Ahead – Certification, Emerging Trends, and Next Steps Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(17 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Chris Williams Sep 19, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Mark's book is an absolute game-changer for anyone working with Terraform: whether you’re a seasoned DevOps engineer or just getting started with infrastructure as code. This book stands out with its clear, concise, and practical approach to mastering Terraform, making complex topics accessible and understandable.What sets this book apart is its hands-on, real-world examples that take you beyond the basics and into advanced Terraform concepts. Tinderholt does an exceptional job of breaking down sophisticated modules, state management, and best practices that are critical for managing scalable and reliable infrastructure. His deep insights into optimizing Terraform workflows and handling common challenges make this book an invaluable resource.Each chapter builds on the last, guiding you through everything from setting up your environment to deploying complex, multi-cloud architectures. The inclusion of tips and tricks learned from years of real-world experience adds incredible value, helping readers avoid common pitfalls and adopt best practices.“Mastering Terraform” is not just a technical manual; it’s a strategic guide that empowers you to leverage Terraform to its full potential. Mark Tinderholt’s expertise and passion for the subject shine through, making this a must-have book for your DevOps library. Highly recommended!
Amazon Verified review Amazon
Rafal Sep 21, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book gives tons of advice on how to apply Terraform in real life scenarios: what to watch out for, what particular constructs are best for and how to avoid pitfalls. You can tell that this advice is backed by years of experience. I definitely recommend the book!
Amazon Verified review Amazon
Carlos Carballo Jul 31, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I am really enjoying this book. It has been written in a way that very complicated matters seem easy. The AKS portion has really caught my attention!!Thank u Mark!!!!
Amazon Verified review Amazon
LK Aug 07, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Finally comprehensive, easy to read, well presented, up to date and including gitflow. Well worth getting!
Amazon Verified review Amazon
Jblaaa Oct 22, 2024
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Mark's does a great job explaining all the foundational elements of Terraform as well as provide great examples that can be applied to the real world. There is plenty of theory as well as applicable examples that helps the reader understand the 'why' behind the application of Terraform. Terraform workflows are Mark does a great job of running through the pros and cons of several popular workflows that can be found in the wild to help the reader understand and choose appropriately. Highly recommend anyone new or old to Terraform.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela