
This article is part of a series on Terraform Providers.
As of May 2025, the Terraform Registry hosts over 3,000 providers. But here's what's interesting - just 20 providers account for roughly 85% of all downloads. The concentration is even more stark at the top.
AWS has crossed 4 billion downloads and is approaching 5 billion. To put that in perspective, that's more downloads than the next 10 providers combined. The second most downloaded provider? Not Azure or Google Cloud - it's the humble Null provider.
Here's the current landscape based on actual download data and GitHub metrics:
Rank
Provider
Downloads
GitHub Stars
Primary Use Case
Version Stability
1
AWS
4.8B+
10.3k
Cloud Infrastructure
Breaking changes in v6.0
2
Null
2.1B+
N/A
Workflow Orchestration
Stable
3
Random
1.9B+
N/A
Secure Value Generation
Stable
4
Azure
800M+
4.7k
Cloud Infrastructure
Major v4.0 migration
5
600M+
2.5k
Cloud Infrastructure
Frequent updates
6
Kubernetes
400M+
1.6k
Container Orchestration
Framework migration
7
Local
350M+
N/A
File Operations
Stable
8
Archive
300M+
N/A
File Compression
Stable
9
TLS
250M+
N/A
Certificate Management
Stable
10
Datadog
200M+
404
Monitoring Integration
Active development
What's striking here? The utility providers (Null, Random, Local, Archive, TLS) collectively rival the major cloud providers in usage. Every serious Terraform deployment uses them.
Let me show you what actual provider configurations look like in production environments. Here's a typical multi-cloud setup:
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.23"
}
helm = {
source = "hashicorp/helm"
version = "~> 2.11"
}
random = {
source = "hashicorp/random"
version = "~> 3.5"
}
null = {
source = "hashicorp/null"
version = "~> 3.2"
}
}
}Looks simple enough. But wait until you have 50+ repositories, each with slightly different provider versions. One team updates to AWS v6.0 for a new feature, breaking another team's legacy resources. Sound familiar?
Here's where things get messy. The average enterprise uses 8-12 providers across their infrastructure. Each provider has its own:
Take this real scenario we see constantly:
# Team A's configuration
provider "aws" {
region = var.primary_region
assume_role {
role_arn = "arn:aws:iam::123456789012:role/TerraformRole"
}
}
provider "aws" {
alias = "secondary"
region = var.secondary_region
assume_role {
role_arn = "arn:aws:iam::987654321098:role/TerraformRole"
}
}
# Meanwhile, Team B needs different authentication
provider "aws" {
region = "us-east-1"
# Using instance profile instead
# But wait, this conflicts with Team A's approach
}Without centralized provider management, you're looking at configuration drift, security vulnerabilities from outdated providers, and the dreaded "works on my machine" syndrome.
The AWS provider v6.0 beta dropped in April 2025. Great new features, but also breaking changes that affect S3 bucket configurations, IAM policies, and RDS instances. Here's what a migration looks like:
# Old (v5.x)
resource "aws_s3_bucket" "example" {
bucket = "my-bucket"
acl = "private" # Deprecated in v6.0
versioning { # Changed structure
enabled = true
}
}
# New (v6.x)
resource "aws_s3_bucket" "example" {
bucket = "my-bucket"
}
resource "aws_s3_bucket_acl" "example" {
bucket = aws_s3_bucket.example.id
acl = "private"
}
resource "aws_s3_bucket_versioning" "example" {
bucket = aws_s3_bucket.example.id
versioning_configuration {
status = "Enabled"
}
}Multiply this by hundreds of resources across dozens of workspaces. Without proper tooling to manage these migrations, teams either get stuck on old versions (security risk) or face massive refactoring efforts.
The data shows 934 enterprise customers spending $100K+ annually on Terraform tooling. Why? Because at scale, provider management becomes a full-time job. Consider these patterns:
Financial Services (18% of enterprise users):
Technology Companies (31% of enterprise users):
Here's what proper provider configuration looks like at scale:
# providers.tf - Centrally managed
terraform {
required_version = ">= 1.5.0, < 2.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "5.47.0" # Exact version for stability
configuration_aliases = [
aws.us_east_1,
aws.us_west_2,
aws.eu_west_1
]
}
datadog = {
source = "DataDog/datadog"
version = "3.38.0"
}
}
}
# Provider configurations with proper tagging
provider "aws" {
alias = "us_east_1"
region = "us-east-1"
default_tags {
tags = {
ManagedBy = "Terraform"
Environment = var.environment
CostCenter = var.cost_center
Provider = "aws.us_east_1"
}
}
}The Terraform provider ecosystem in 2025 tells a clear story:
As organizations scale their Terraform usage, the complexity shifts from writing resources to managing providers. Those AWS v6.0 breaking changes? They're affecting thousands of organizations right now. The Kubernetes provider framework migration? Another wave of updates.
This is exactly why platforms that centralize provider management, enforce version policies, and provide migration assistance have become essential for enterprise Terraform users. Managing providers manually worked fine when we had 10 resources and 2 providers. At 10,000 resources and 15 providers? That's a different game entirely.
The most successful Terraform implementations in 2025 aren't just picking the right providers - they're building processes and selecting tools that can handle provider complexity at scale. Because in the end, your infrastructure is only as stable as your provider management strategy.
Beyond the top 10, these providers round out the most widely used in the Terraform ecosystem:
Helps with time-based resources.
Interesting stat: Not ranked in 2021.
The Vault provider allows Terraform to read from, write to, and configure HashiCorp Vault.
Interesting stat: Dropped from #11 with 12.1M installs in 2021.
Provides utilities for working with Transport Layer Security keys and certificates. It provides resources that allow private keys, certificates and certificate requests to be created as part of a Terraform deployment.
Interesting stat: Stayed at #13 with 9.5M installs in 2021.
The Archive provider generates an archive from content, a file, or directory of files.
Interesting stat: Dropped from #6 with 25.2M installs in 2021.
Manage installed Charts in your Kubernetes cluster, in the same way Helm does, through Terraform.
Interesting stat: Dropped from #12 with 9.7M installs in 2021.
Configure infrastructure in Azure Active Directory using the Azure Resource Manager APIs.
Interesting stat: Dropped from #14 with 7.5M installs in 2021.
Configure and automate Datadog resources to automate monitoring and logging through the API.
Interesting stat: Not ranked in 2021.
The HTTP provider is a utility provider for interacting with generic HTTP servers as part of a Terraform configuration.
Interesting stat: Dropped from #15 with 3.8M installs in 2021.
Use the GitHub provider to interact with the GitHub API to create repositories, manage users, and more.
Interesting stat: Not ranked in 2021.
Use this provider to interact with Cloudflare to create records, page rules, and much more.
Interesting stat: Not ranked in 2021.
The following providers have dropped off the top 20 list since 2021:
The Scalr Terraform provider can be used to manage the components within Scalr. This will allow you to automate the creation of workspaces, variables, VCS providers and much more.
