A Complete Guide to Terraform Cloud Pricing
Tags: terraform, cloud, devops, infrastructureascode
Published: 2024-04-02 12:48:38

**What Changed With Terraform Cloud Pricing**
---------------------------------------------

In June 2023, HashiCorp adjusted the pricing scheme of [Terraform Cloud](https://www.env0.com/blog/terraform-cloud) (TFC), its commercial SaaS product. The main change was a shift to the Resources Under Management (RUM) model, which calculates service costs based on how many resources are connected to Terraform (buckets, load balancers, instances, clusters, etc.) rather than by the number of users. 

The change was met with a [mixed response](https://www.reddit.com/r/Terraform/comments/13jgzc5/terraform_new_pricing/), as it meant savings for some, but higher charges for others. Moreover, about two months later, HashiCorp also made [changes to the licensing of Terraform itself](https://www.env0.com/blog/hashicorp-license-change), shifting it from open-source to the BSLv2 license, leading to [further concerns](https://www.reddit.com/r/Terraform/comments/17a0u7t/terraform_cloud_license_change_hashi_are_yall/) about future costs and other negative implications of vendor lock-in. 

In this guide, we will take a deep dive into TFC's new pricing model, review its implications and discuss the pros and cons of the new pricing scheme.

> ‍**Disclaimer:**  
> In assessing the impact of Terraform Cloud pricing adjustments, this analysis focuses on the TFC Standard plan, with a rate set at $0.00014 per resource under management (RUM).  
> The pricing structure for TFC Plus and Enterprise plans is contingent upon personalized negotiations with the HashiCorp sales team. Online sources and discussions with former TFC customers suggest that some of those agreements also experienced price hikes, reaching as high as 300% to [even 600% and more](https://www.reddit.com/user/iopanic/) of their initial cost.  

**Why Upgrade to Terraform's Cloud Plan?**
------------------------------------------

Before diving into the pricing itself, let’s quickly review the reasons why companies choose to go for Terraform Cloud (TFC) when (the free) Terraform CLI works perfectly in managing their [Infrastructure-as-Code (IaC)](https://www.env0.com/blog/infrastructure-as-code-101).

The answer to this comes down to additional management and automation features, which would be required for Terraform to operate at scale. These include:

1.  **Role-Based Access Control** – a way to delegate access to infra engineers.
2.  **Policy Enforcement** – Integrations with Sentinel or open-source tools like OPA.
3.  **Private Module Registry** – an option to set up and maintain a private module registry.
4.  **Cost Estimation** – a feature that provides cost estimations for IaC changes.
5.  **Remote State Management –** a secure location to store [state files](https://www.env0.com/blog/remote-state-what-is-it-and-where-do-i-hide-it)**.**

It’s important to note that TFC does not offer self-hosting; if you want that, you have to go for Terraform Enterprise (TFE), which comes at a custom price.

**Understanding the New Terraform Cloud Pricing Model**
-------------------------------------------------------

Up until recently, TFC had a cost structure with four tiers (the Free, Team, the Business, and Enterprise). Engineers paid $20 a month to access the Team Tier. In essence, this pricing was user-centric, meaning if users had to access features of a higher plan, they had to pay a fixed monthly amount.

The updated TFC cost structure maintains four tiers (Free Tier, Standard Tier, Plus Tier, and Enterprise ) but shifts to a resource-based pricing model, emphasizing the number of provisioned IaC resources that are managed by Terraform Cloud. 

The Free Tier allows infra engineers to manage their first 500 resources free of cost every month. To go beyond 500 resources, one needs to upgrade to the Standard Plan. Furthermore, for every resource provisioned after the 500 limit, resources would be charged at $0.00014 per hour, per resource.

Here is an example how it works...

Suppose a team created 2,000 resources at 3:05 pm. At 3:30 pm, the team destroyed 500 resources, leaving 1,500 managed resources in the terraform cloud.

Terraform pricing now focuses on the peak number of resources provisioned in an hour (in this case, 2,000) instead of the 1,500 currently managed in the Terraform Cloud. 

Thus, their hourly pricing would look like this for those remaining 2,000 resources:

*   **First 500 resources** = $0
*   ‍**The other 1,500 resources** = 1,500 x $0.00014 = $0.21/hour

> Importantly, the Free and Standard plans also come with significant feature limitations and do not include essential capabilities like drift detection, audit logging, [ephemeral workspaces](https://www.env0.com/blog/tf-repository-strategies-and-structures), etc which could be a deal breaker for some.

With these details out of the way, let’s let's run a few scenarios to showcase the difference between the old and new pricing structure.

‍**Example #1: Terraform Cloud for Smaller Teams**
--------------------------------------------------

Now, let’s take a scenario where a squad of five infra engineers is working on a three-tier architecture project and needs to spin several dozen AWS resources for a successful deployment.

The three-tier architecture would consist of 100 resources in total, which a typical infrastructure deployment looking something like this: 

*   **Web tier** – 10 EC2 instances, 1 ELB, 2 Security Groups, 10 Elastic IPs
*   **Application tier** – 10 EC2 instances, 1 ELB, 2 Security Groups, 10 Elastic IPs
*   **Database tier** –  1 RDS, RDS Read Replica, and 1 Security Group
*   **Networking** –  1 VPC, 3 subnets, 3 route tables, 1 Internet gateway, 3 Network ACLs, 1 VPC Connection
*   **Storage** – 40 EBS volumes, 1 RDS storage
*   ‍**Security and monitoring** – 2 IAM Policies, 5 Cloudwatch Alarms, 1 KMS key.

Here is how the Terraform Cloud pricing would look for this scenario:

![Terraform Cloud pricing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f7qiw05uesoxthr22asj.png)

The new TFC plan would mean a total cost of $0 for any squad or project small enough to only have to deal with 100 resources. But let's dig deeper since it will be rare that a comprehensive setup is ever limited to only 500 – much less 100 – resources.

**Example #2: Terraform Cloud's Pricing for Larger Teams**
----------------------------------------------------------

Now, let us look at a scenario of a large business organization comprising 15 infrastructure engineers working on a three-tier architecture project. The project might require 5,000 Azure resources to be created. Let’s figure out what these 5,000 resources would look like in an actual infrastructure. 

Here is a breakdown of these resources:

1.  **Web tier:** 100 VMs, 5 Azure Load balancers, 1 Azure Application Gateway
2.  **Application tier:** 200 VMs, 10 AKS Clusters, 50 Azure Functions
3.  **Database tier:** 100 Azure SQL Database instances, 20 Cosmos DB instances, 500 Azure Blob Storage accounts
4.  **Networking:** 10 VNets, 20 NSGs
5.  ‍**Standard services:** 1 Azure AD, 5 Azure Key Vaults, 1 Azure Monitor, and 2 Log Analytics Workspace.

And here is how Terraform Cloud's prices would work out for this setup:

![Terraform Cloud pricing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f4n6eyligufwxd42gcjv.png)

Here you can see the TFC costs being ~50% higher, which demonstrates the trade-offs between the old and the new pricing model.

**Responses to Terraform Cloud Price Changes**
----------------------------------------------

From the above examples, it is evident for startups or comparatively smaller companies that manage Infrastructure-as-Code with under 500 resources, using Terraform Cloud could be ideal as it falls under the free limit. 

However, as the number of resources under management grows, there is an inflection point at which the new by-resource model becomes more costly than the previous one, after which the costs will start to ramp up.

For instance, this [small development team](https://shavingtheyak.com/2023/10/28/hashicorps-terraform-cloud-rum-pricing-sticker-shock/) reported a steep cost increase due to the pricing changes for TFC. Initially paying a manageable fee of $20 per user per month, they saw a significant jump to around $250 monthly for managing their development, test, and production environments, which include approximately 700 resources. 

This was [echoed](https://www.reddit.com/r/Terraform/comments/13jgzc5/comment/jklpcof/) by other users, over at Reddit, who also described pricing hikes as a result of redundant instances:

![Reddit](https://assets-global.website-files.com/63eb9bf7fa9e2724829607c1/6595638dd570472844198239_TFC%20pricing%20changes.png)

Others still had more vocal concerns, as in [this case](https://www.reddit.com/r/Terraform/comments/17a0u7t/terraform_cloud_license_change_hashi_are_yall/) where the new RUM pricing model "hit" a small team operating a robust infrastructure:

![Reddit - Terraform Pricing Changes](https://assets-global.website-files.com/63eb9bf7fa9e2724829607c1/65955a45ed89b066e8c0a341_tfc%20pricing%20rant.png)

The new TFC pricing had mixed results – good for some, but not so great for others, which is pretty common with changes in prices.

**env0 Pricing - Pay by Deploy**
--------------------------------

Instead of employing Terraform Cloud’s RUM model, [env0](https://www.env0.com/) presents a [deployment-based pricing](https://www.env0.com/alternatives/terraform-cloud-alternative) model where a deployment is counted as a successful terraform apply and does not include Terraform plans, drift detection, or destroys. 

This [pricing plan](https://www.env0.com/pricing) begins at a steady $349 per month, covering 100 deployments, 10 users, and unrestricted concurrent runs. This setup provides greater predictability and enables smooth operations at a larger scale.

Beyond cost efficiencies, env0 provides enhanced functionalities, inlcuding:

*   Automated [drift detection](https://www.env0.com/blog/tutorial-achieving-auto-remediation-with-env0)
*   Tools for [cost management](https://www.env0.com/blog/finops-meets-iac-granular-cloud-cost-optimization-with-env0)
*   Dynamic [role-based access controls](https://www.env0.com/blog/custom-rbac-roles)[‍](https://www.env0.com/blog/opa-tutorial-leveraging-env0-for-advanced-cloud-policy-management)
*   Flexible [Policy-as-Code guardrails](https://www.env0.com/blog/opa-tutorial-leveraging-env0-for-advanced-cloud-policy-management)

and more

Check out this [env0 vs Terraform Cloud](https://www.env0.com/alternatives/terraform-cloud-alternative) comparison for additional details, or book a [technical demo](https://www.env0.com/demo-request) with the team to see the platform in action.

**Conclusion**
--------------

In this guide, we discussed Terraform Cloud’s previous and recent pricing in detail, explaining how it was changed from a user-based pricing model to the RUM model and how that pricing affects startups, enterprises, and other larger organizations.

The recently introduced Resource Under Management (RUM) pricing model for TFC proves advantageous for smaller organizations or startups, particularly those operating within the confines of the 500 resource limit or close to it. 

Conversely, its implications are notably burdensome for larger operations,  given the escalating costs incurred by managing a large set of infrastructure resources under Terraform Cloud.