AWS CloudFormation vs Chef: What are the differences?
AWS CloudFormation: Create and manage a collection of related AWS resources. You can use AWS CloudFormation’s sample templates or create your own templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run your application. You don’t need to figure out the order in which AWS services need to be provisioned or the subtleties of how to make those dependencies work; Chef: Build, destroy and rebuild servers on any public or private cloud. Chef enables you to manage and scale cloud infrastructure with no downtime or interruptions. Freely move applications and configurations from one cloud to another. Chef is integrated with all major cloud providers including Amazon EC2, VMWare, IBM Smartcloud, Rackspace, OpenStack, Windows Azure, HP Cloud, Google Compute Engine, Joyent Cloud and others.
AWS CloudFormation and Chef are primarily classified as "Infrastructure Build" and "Server Configuration and Automation" tools respectively.
Some of the features offered by AWS CloudFormation are:
- AWS CloudFormation comes with the following ready-to-run sample templates: WordPress (blog),Tracks (project tracking), Gollum (wiki used by GitHub), Drupal (content management), Joomla (content management), Insoshi (social apps), Redmine (project mgmt)
- No Need to Reinvent the Wheel – A template can be used repeatedly to create identical copies of the same stack (or to use as a foundation to start a new stack)
- Transparent and Open – Templates are simple JSON formatted text files that can be placed under your normal source control mechanisms, stored in private or public locations such as Amazon S3 and exchanged via email.
On the other hand, Chef provides the following key features:
- Access to 800+ Reusable Cookbooks
- Integration with Leading Cloud Providers
- Enterprise Platform Support including Windows and Solaris
"Automates infrastructure deployments" is the top reason why over 36 developers like AWS CloudFormation, while over 104 developers mention "Dynamic and idempotent server configuration" as the leading cause for choosing Chef.
Chef is an open source tool with 5.83K GitHub stars and 2.35K GitHub forks. Here's a link to Chef's open source repository on GitHub.
Slack, Shopify, and SendGrid are some of the popular companies that use Chef, whereas AWS CloudFormation is used by TimeHop, Custora, and NASA Jet Propulsion Laboratory. Chef has a broader approval, being mentioned in 359 company stacks & 80 developers stacks; compared to AWS CloudFormation, which is listed in 195 company stacks and 75 developer stacks.
What is AWS CloudFormation?
What is Chef?
Want advice about which of these to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Chef?
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
Manually clicking around the AWS UI or scripting AWS CLI calls can be both a slow and brittle process.
We needed to be able to reconstruct CloudRepo's infrastructure in case of disaster or moving to another AWS Region.
Setting up our infrastructure with CloudFormation allows us to update it easily as well as duplicate or recreate things when the need arises.
Opstax uses CloudFormation for anything infrastructure related! CloudFormation allows us to use infrastructure-as-code as a constant blueprint/map of our environment. It means we can accurately and efficiently deploy replicated or new infrastructure with no time wasted clicking around and no human error.
Out custom recipes makes it simple for developers bootstrap process (using vagrant) and that same recipe is also the one that is used to prep instances
Manage infrastructure as codes. Native AWS solution so it has better support to AWS resources than Terraform, also can leverage AWS Business Support.