How to Estimate Cloud Costs with Terraform using Infracost


Managing, optimizing and estimate cloud costs has become critical to running efficient and cost-effective operations in today’s cloud-centric world. As organizations increasingly rely on Infrastructure as Code (IaC) tools like Terraform to manage their cloud infrastructure, the need for integrated cost estimation and financial operations (FinOps) practices is more important than ever. This article explores leveraging Infracost for accurate cloud cost estimates and adopting FinOps best practices to streamline your Terraform-managed infrastructure.

The Importance of Cloud Cost Estimates

Understanding the cost implications of your infrastructure decisions is fundamental to effective cloud management. Accurate cloud cost estimates enable teams to:

  1. Budget Accurately: Ensure that cloud expenses align with financial forecasts and budgets.
  2. Optimize Resources: Identify cost-saving opportunities by analyzing spending patterns and optimizing resource utilization.
  3. Promote Cost-Aware Culture: Embed a cost-conscious culture within development teams, ensuring cost considerations are part of the decision-making process.

How to use Infracost with Terraform?

Terraform is a widely used IaC tool that allows developers to define and provision cloud resources using declarative configuration files. By integrating Infracost, a tool designed for real-time cost estimation, into your Terraform workflows, you can gain valuable insights into the cost implications of your infrastructure changes before deployment.


STEP 1 – Install Infracost

Get the latest Infracost release. The simplest method is to use the installation script.

STEP 2 – Get the API key

Please register for a free API key, which the CLI uses to fetch prices from our Cloud Pricing API, such as retrieving prices for different instance types.

You will be redirected to the Infracost login page, where you must complete the login process. Once done, the key will be stored on your server. You can retrieve the key by running the following command:

STEP 3 – Create a Terraform Configuration

Created a simple Terraform configuration file, which you can download from git

STEP 3 – Initialize Terraform and generate a plan

Run the command init and plan to generate a terraform plan for your infrastructure as code.

STEP 4 – Generate Infracost Cost Estimates

Run Infracost to generate a cost estimate for your Terraform configuration:

Now if you want to compare the cost with the previous version and the current version then you need to save the output in JSON format with the mentioned command

Now you have added one more EC2 instance in your Terraform configuration file and again run the command

As you can see, by adding another EC2 instance, Infracost captures this change from Terraform, reflecting the resulting increase in monthly costs.


By integrating Infracost into your Terraform workflows, you can gain valuable insights into the cost implications of your infrastructure changes before deployment. This ensures that cost efficiency is considered at every development lifecycle stage. Implementing FinOps best practices with Infracost helps promote a culture of cost awareness and drives financial and operational excellence in your cloud journey.

You May Also Like