Skip to main content

Get started

Infracost shows cloud cost estimates for Terraform. It lets engineers see a cost breakdown and understand costs before making changes, either in the terminal, VS Code or pull requests. This provides your team with a safety net as people can discuss costs as part of the workflow.

1. Install Infracost

Get the latest Infracost release:

brew install infracost

infracost --version # Should show 0.10.29

To upgrade Infracost, run brew update then brew upgrade infracost.


2. Get API key

Register for a free API key, which is used by the CLI to retrieve prices from our Cloud Pricing API, e.g. get prices for instance types.

note
  • No cloud credentials or secrets are sent to the API and you can also self-host it.
  • Infracost does not make any changes to your Terraform state or cloud resources.
infracost auth login

The key can be retrieved with infracost configure get api_key.


3. Show cost estimate breakdown

Infracost parses the project locally to determine resource types and quantities needed to calculate costs. The --path flag should point to your Terraform directory.

# You can also: git clone https://github.com/infracost/example-terraform
cd my-terraform-project
# Terraform variables can be set using --terraform-var-file or --terraform-var
infracost breakdown --path .

Example output:Infracost breakdown command

tip

Infracost can also estimate usage-based resources such as AWS S3 or Lambda


4. Show cost estimate diff

  1. Generate an Infracost JSON file as the baseline:
  2. infracost breakdown --path . --format json --out-file infracost-base.json
  3. Edit your Terraform project. If you're using our example project, try changing the instance type:
  4. vim main.tf
  5. Generate a diff by comparing the latest code change with the baseline:
  6. infracost diff --path . --compare-to infracost-base.json

Example output:Infracost diff command


5. See costs in dashboard

  1. The following command instructs the CLI to send its JSON output to Infracost Cloud. This is our SaaS product that builds on top of Infracost open source and works with CI/CD integrations (next step).

    It enables team leads, managers and FinOps practitioners to setup tagging policies, guardrails and best practices to help guide the team. For example, you can check for required tag keys/values, or suggest switching AWS GP2 volumes to GP3 as they are more performant and cheaper.

  2. infracost upload --path infracost-base.json
  3. Log in to Infracost Cloud > Visibility > Repos page to see the cost estimate.
Infracost Cloud dashboard showing pull request costs over the last 30 days

6. Add to your CI/CD

Use our integrations to add cost estimates to pull requests, it only takes 15 minutes. This provides your team with a safety net as people can understand cloud costs upfront, and discuss them as part of your workflow.

If you run into any issues, please join our community Slack channel, we'll help you very quickly 😄

Infracost pull request comment

If you use VS Code, checkout our VS Code extension to also see cost estimates right in your editor!

Infracost VS Code extension