AWS CodeBuild vs Terraform: What are the differences?
AWS CodeBuild: Build and test code with continuous scaling. AWS CodeBuild is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. With CodeBuild, you don’t need to provision, manage, and scale your own build servers; Terraform: Describe your complete infrastructure as code and build resources across providers. With Terraform, you describe your complete infrastructure as code, even as it spans multiple service providers. Your servers may come from AWS, your DNS may come from CloudFlare, and your database may come from Heroku. Terraform will build all these resources across all these providers in parallel.
AWS CodeBuild belongs to "Continuous Integration" category of the tech stack, while Terraform can be primarily classified under "Infrastructure Build Tools".
Some of the features offered by AWS CodeBuild are:
- Fully Managed Build Service
- Continuous Scaling
- Enables Continuous Integration
On the other hand, Terraform provides the following key features:
- Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.
- Execution Plans: Terraform has a "planning" step where it generates an execution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure.
- Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.
"Pay per minute" is the primary reason why developers consider AWS CodeBuild over the competitors, whereas "Infrastructure as code" was stated as the key factor in picking Terraform.
Terraform is an open source tool with 17.7K GitHub stars and 4.83K GitHub forks. Here's a link to Terraform's open source repository on GitHub.
According to the StackShare community, Terraform has a broader approval, being mentioned in 509 company stacks & 312 developers stacks; compared to AWS CodeBuild, which is listed in 21 company stacks and 14 developer stacks.
What is AWS CodeBuild?
What is Terraform?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using AWS CodeBuild?
What are the cons of using Terraform?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
The open-source Convox Platform-as-a-Service is built entirely on AWS cloud services.
Through this lens, it's been obvious that AWS has been missing a managed build service. For the past year we've had to work around this by building our own build service on ECS and ECR. You can read more on my AWS Missing Parts: Build Service blog post.
So I'm excited to finally have this service. After a quick weekend prototype, the service works as expected and will unlock Cheaper, Faster and Safer Builds for our systems.
This is a classic AWS service. It's tricky to figure out all the options. I recommend jumping straight to the Docker example docs:
You'll need to figure IAM, Build Project JSON, and Build Spec YAML to get it all working.
But once you do, you've unlocked managed builds on small, medium or large compute types. No instances required!
Terraform makes it so easy to deploy AWS and Google Cloud services, with the declarative approach avoiding so many headaches of manual work and possible mistakes.
- Infrastructure as Code.
- Central tool to deploy all infratructure: AWS, CloudFlare, StatusCake
The entire AWS environments is described and setup using Terraform.