mrkeyoor.com_
Sat 03 Oct 03:08 UTC
Dev Toolsevaluationupdated 03 Oct 2026

terraform-provider-aws review

The Terraform AWS Provider lets Terraform read and manage AWS resources as declared infrastructure. It is the standard bridge between Terraform configurations and AWS APIs, covering routine services as well as newer resource types added through frequent releases.

Verdict

Our build and test commands each hit 900 seconds, so the Terraform AWS Provider is easy to consume as a release and expensive to validate as a whole source tree. Use it for Terraform-managed AWS infrastructure, where its service coverage and active release work outweigh that contributor cost. Build from source only when you need to change the provider, and narrow your test scope before touching an AWS account.

We ran it

Lab card: what happened when we ran terraform-provider-awsScreenshot of terraform-provider-aws (registry.terraform.io/providers/hashicorp/aws)
Install✓ · 126s469 packages
Build✗ timed out · 900s
Tests✗ timed out · 900s6 passed · 0 failed of 6 (go test)
Repo21055 files~3,633,063 lines of source · 256.6 MB · 47 CI workflows

Answers from our run

Does terraform-provider-aws build from source?

Dependencies installed in 126 seconds (469 packages), and the build failed. We cloned commit 34167e0 into a clean Debian container with 3 CPUs and no project-specific setup.

Do terraform-provider-aws's tests pass?

Yes: 6 of 6 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use terraform-provider-aws?

Contributors expecting a quick full-repository feedback loop: our build and test commands both reached the 900-second limit.

What are the alternatives to terraform-provider-aws?

Terraform AWS Cloud Control Provider, Pulumi AWS, Crossplane Provider AWS. Our build and test commands each hit 900 seconds, so the Terraform AWS Provider is easy to consume as a release and expensive to validate as a whole source tree.

Setup3/5Released provider is simple; source build exceeded 900 seconds
Docs5/5Detailed registry and contributor guides for a huge surface
Community5/5Pushed October 2026 with 11,106 stars and active triage
Maturity5/5v6.67.0 shipped with 47 visible CI workflows

Who it’s for

Terraform teams that manage AWS infrastructure and want state, plans, and reviewable configuration.
Platform engineers who need broad AWS service coverage from one provider.
Go contributors prepared to work in a repository with more than 3.6 million lines of source.
Organizations that can run targeted AWS acceptance tests in a dedicated account.

Who it’s NOT for

Contributors expecting a quick full-repository feedback loop: our build and test commands both reached the 900-second limit.
Developers who cannot provide an AWS test account: acceptance tests use credentials, create real resources, and can incur charges.
Teams unwilling to pin and update provider versions: an October 2026 notice told Redshift Serverless users to reach v6.66.0 before an AWS-side change.
Kubernetes teams that want cloud resources reconciled by cluster controllers instead of Terraform state: a Crossplane AWS provider fits that operating model better.

Setup reality

Our sandbox installed 469 Go packages in 126 seconds. The build did not finish before the 900-second cap. Tests also reached 900 seconds, with 6 passed and 0 failed of the 6 results completed before timeout. The log tail ended after the backoff package passed in 107.695 seconds.

End users normally let Terraform download a released provider and supply AWS authentication plus a region. Source contributors need the repository's required Go version. Acceptance tests require AWS credentials and create real resources, so some cases cost money.

The checkout held 21,055 files, about 3,633,063 source lines, and 256.6 MB before dependencies. We found 47 CI workflow files and no Dockerfile or tests directory. HashiCorp also warns that repeated work can make the Go cache very large.

Most users should download v6.67.0 instead of building the source

The Terraform AWS Provider turns HCL resources into AWS API calls and keeps the resulting objects tied to Terraform state. For an infrastructure team, that means plans can show a proposed change before an apply reaches AWS. The provider is broad enough that one repository carries code for established services, newer Bedrock resources, data sources, imports, retries, and service-specific edge cases.

That breadth produces an unusual split. A normal user declares hashicorp/aws, pins a version, supplies AWS authentication, and lets Terraform install the release. A contributor meets 21,055 files, about 3,633,063 lines of source, and a 256.6 MB checkout. Judge setup based on which side of that line you occupy. The released provider is routine Terraform plumbing. The source tree is industrial software.

What happened when we ran it

Our run at commit 34167e0 installed 469 Go packages in 126 seconds inside a fresh Debian container with 3 CPUs and 8 GB of RAM. The build command then reached our 900-second limit without finishing. The supplied log did not identify a compiler error, so the defensible result is a timeout. We cannot turn it into a failed build cause that the log never showed.

The test command also reached 900 seconds. Six reported tests had passed and none had failed when the cap arrived. Its final lines showed successful results in internal/acctest, jsoncmp, knownvalue, statecheck, actionwait, and backoff; several neighboring packages reported no test files. The last completed package shown was internal/backoff, which passed in 107.695 seconds. This was an incomplete suite with clean reported results, not a green full run.

Our repository scan found 47 CI workflow files, no Dockerfile, and no directory literally named tests. Go projects commonly keep test files beside source, so that directory result should not be read as an absence of tests. The partial output proves tests exist. More useful is the timing: even an uncredentialed local command can exceed a 15-minute feedback window on a small container.

Full validation belongs in targeted packages and AWS accounts

HashiCorp's contributor guide separates local unit tests from acceptance tests. The latter create, read, and destroy real AWS resources. They need an AWS profile or access keys plus a default region, and the guide warns that services such as RDS, OpenSearch, and WorkSpaces can be expensive to exercise. A casual make testacc is therefore a cloud operation with billing and cleanup consequences.

The practical contribution loop starts narrow. Work on the relevant Go package, run its unit tests, then select the acceptance cases tied to that resource. Use a dedicated account with cost controls and permissions chosen for the test. HashiCorp says contributors who cannot pay for acceptance coverage can submit a best-effort implementation and ask maintainers to run it. That policy lowers the financial barrier, though it can lengthen review.

Repeated builds have a local cost too. The development guide warns that the Go cache can grow dramatically during sustained provider work and recommends scheduled cleanup. A development override in Terraform's CLI configuration points hashicorp/aws at your locally built binary. That is useful, but it also makes version discipline important: a forgotten override can make a project test your checkout rather than the pinned registry release.

A 3,597-item queue reflects AWS scale and active triage

GitHub listed 2,665 open issues and 932 open pull requests on October 3, 2026, matching the repository's combined count of 3,597. That queue would be alarming in a small utility. Here it reflects thousands of AWS behaviors, feature requests, documentation reports, and patches arriving at once. It still creates real search and triage work for anyone deciding whether a provider bug already exists.

The maintenance signals are current. The repository was pushed on October 2, 2026, and v6.67.0 shipped on September 30. That release added resources and fixed behavior across App Runner, Auto Scaling, Bedrock AgentCore, Config, DynamoDB, and RDS. Four earlier v6 releases also appeared during September. A large queue has not stopped releases, though users should read upgrade notes for the services they operate.

One current notice makes that concrete. HashiCorp advised users of aws_redshiftserverless_workgroup to run v6.66.0 or newer before AWS reintroduced a parameter on October 13, 2026. Older versions could produce a permanent diff or block an apply. Pinning protects you from surprise upgrades, but staying pinned forever can preserve a provider bug after the AWS API changes underneath it.

The aws provider wins when Terraform state already owns AWS

Use this provider when your team has chosen Terraform and AWS resources should participate in the same plan, review, state, and apply workflow. The MPL-2.0 codebase, detailed registry documentation, contributor guide, and frequent releases support that job. The 900-second timeouts matter mostly to contributors and organizations that build internal forks.

Choose AWSCC when Cloud Control coverage is the deciding factor. Pick Pulumi if general-purpose languages are a firm requirement, or Crossplane when Kubernetes reconciliation should remain in control. For mainstream Terraform on AWS, hashicorp/aws remains the sensible default. Just do not confuse a simple provider declaration with a simple repository: our 6 completed tests barely began to cross it before the clock ran out.

Alternatives

ProjectWhat it isPick it when
Terraform AWS Cloud Control ProviderA Terraform provider built on the AWS Cloud Control API.pick this instead when Cloud Control exposes the resource you need and generated coverage matters more than the mature aws provider's hand-built behavior.
Pulumi AWSAWS infrastructure resources exposed through Pulumi's programming-language SDKs.pick this instead when your team wants to define AWS infrastructure in a general-purpose language rather than HCL.
Crossplane Provider AWSAn AWS provider for Crossplane's Kubernetes control-plane model.pick this instead when Kubernetes reconciliation should own cloud resources continuously.

What people are saying

  1. [github-trending] hashicorp/terraform-provider-aws

Sources

  1. Terraform AWS Provider README
  2. Development environment guide
  3. Acceptance testing guide
  4. Terraform AWS Provider v6.67.0
  5. Redshift Serverless v6.66.0 upgrade notice

More dev tools reviews

pstack-claude · tailcat · touchHLE · effect · SwitchHosts · Duo-animation · the whole board →