infracost

Cloud cost estimates for Terraform in your CLI and pull requests 💰📉

Github星跟踪图





Infracost shows hourly and monthly cost estimates for a Terraform project. This helps developers, DevOps et al. quickly see the cost breakdown and compare different deployment options upfront.

Table of Contents

Checkout the docs site for detailed usage options, supported resources and more information.

Installation

  1. Download and install the latest Infracost release

    Linux:

    curl -s -L https://github.com/infracost/infracost/releases/latest/download/infracost-linux-amd64.tar.gz, tar xz -C /tmp && \
    sudo mv /tmp/infracost-linux-amd64 /usr/local/bin/infracost
    

    macOS (Homebrew):

    brew install infracost
    

    macOS (manual):

    curl -s -L https://github.com/infracost/infracost/releases/latest/download/infracost-darwin-amd64.tar.gz, tar xz -C /tmp && \
    sudo mv /tmp/infracost-darwin-amd64 /usr/local/bin/infracost
    

    Docker:

    docker pull infracost/infracost
    docker run --rm \
      -e INFRACOST_API_KEY=see_following_step_on_how_to_get_this \
      -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
      -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
      -v $PWD/:/code/ infracost/infracost --tfdir /code/
      # add other required flags for infracost or envs for Terraform
    
  2. Use our free hosted API for cloud prices by registering for an API key:

    infracost register
    

    Alternatively you can run your own pricing API and set the INFRACOST_PRICING_API_ENDPOINT environment variable to point to it.

    The INFRACOST_API_KEY environment variable can be used to set to the API key in CI systems.

Basic usage

Generate a cost breakdown from a Terraform directory:

infracost --tfdir /path/to/code --tfflags "-var-file=myvars.tfvars"

Check the docs site for more details.

The Infracost GitHub action can be used to automatically add a PR comment showing the cost estimate diff between a pull request and the master branch whenever Terraform files change.

Development

Install Go dependencies:

make deps

Install latest version of terraform-provider-infracost. If you want to use a local development version see #using-a-local-version-of-terraform-provider-infracost

make install_provider

Get an API key.

make run ARGS="register"

Alternatively checkout and run the cloud-pricing-api and set the INFRACOST_PRICING_API_ENDPOINT environment variable to point to it.

Add the API key to your .env.local file:

cat <<EOF >> .env.local
INFRACOST_API_KEY=XXX
EOF

Run the code:

make run ARGS="--tfdir examples/terraform"

Run all tests:

make test

Exclude integration tests:

make test ARGS="-v -short"

Build:

make build

Using a local version of terraform-provider-infracost

To use a local development version of terraform-provider-infracost

  1. Fork/clone the terraform-provider-infracost repository

  2. Inside the directory that you cloned the repository run the following to install the local version in your ~/.terraform.d/plugins directory:

make install

Contributing

Pull requests are welcome! For more info, see the CONTRIBUTING file. For major changes, please open an issue first to discuss what you would like to change.

Join our chat, we are a friendly bunch and happy to help you get started :) https://discord.gg/rXCTaH3

License

Apache License 2.0

主要指标

概览
名称与所有者infracost/infracost
主编程语言Go
编程语言Makefile (语言数: 5)
平台
许可证Apache License 2.0
所有者活动
创建于2020-06-24 09:11:56
推送于2025-06-01 10:46:44
最后一次提交2025-05-28 15:29:55
发布数115
最新版本名称preview (发布于 )
第一版名称v0.1.0 (发布于 )
用户参与
星数11.5k
关注者数69
派生数602
提交数3.1k
已启用问题?
问题数924
打开的问题数182
拉请求数2016
打开的拉请求数36
关闭的拉请求数368
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?