Journey ahead and how to read this book
This is a book about Terraform, and you will learn everything that there is to learn about this tool. There are two main parts of this book, split into six chapters of pure learning.
In next three chapters, we will learn the basics. In Chapter 2, Deploying First Server the next one, you will learn the basics of Terraform, main entities it uses and how to deploy our first server with it. We will also get a short AWS EC2 introduction.
In Chapter 3, Resource Dependencies and Modules, we will discover how exactly Terraform operates with its resources and how to refactor our code. In Chapter 4, Storing and Supplying Configuration you will learn all the possible ways you can configure your templates with various APIs Terraform provides.
If you are already familiar with Terraform basics, Chapter 2, Deploying First Server to Chapter 4, Storing and Supplying Configuration, might be a bit too boring for you. They are about how to use this tool as a first-time user, and they don't cover many advanced topics that you will get to once you run Terraform in production. Feel free to skip the next three chapters if you already used Terraform. For advanced topics, head over to Chapter 5, Connecting with Other Tools, Chapter 6, Scaling and Updating Infrastructure, and Chapter 7, Collaborative Infrastructure.
In Chapter 5, Connecting with Other Tools you will learn how to connect Terraform with many different tools, from configuration management to infrastructure testing tools. We will find out how to provision and reprovision machines and how to use Terraform in pair with literally any other tool.
In Chapter 6, Scaling and Updating Infrastructure, we will cover infrastructure updates with Terraform, from the very simple cases (such as changing the one property of some non-essential resource) to complex upgrade scenarios of whole clusters of machines.
Finally, in Chapter 7, Collaborative Infrastructure, you will learn how to collaborate on infrastructure work with Terraform. We will also master integration testing for Terraform environments.
Be prepared: this book is not only about Terraform. It's about Infrastructure as Code and various topics surrounding it, such as Immutable Infrastructure. Terraform will be the main tool we will study, but definitely not the only one. Configuration management tools, testing tools, half a dozen of small helper utilities, and the same amount of AWS services; get ready to learn the whole toolset required to embrace Infrastructure as Code because, as you will soon notice, Terraform is a tool that must be supported by other software.
In the final chapter, Chapter 8, Future of Terraform, we will run through multiple topics related to Terraform that did not make it to the other chapters. Chapter 8, Future of Terraform, also has a non-conventional piece on the future of Terraform, that you might or might not want to read before proceeding to learning it.
So, without further delay, let's proceed to creating our first server with Terraform.