Using Chef for AWS deployments
As Chef treats infrastructure as code, you can version control it. Using Chef it's easy to recreate infrastructure again and again. Chef uses a pure Ruby domain-specific language for defining its recipes. Versioning allows you to test your cookbooks before pushing them into the production environment. Resources are the fundamental building blocks of Chef configurations, these represents a piece of the system and its desired state. Resources are gathered into recipes. These recipes are stored in cookbooks.
Chef server holds all the recipes, cookbooks, and policies. You can use a hosted Chef server [by Opscode] or install your own. Chef client on each node download the desired system configuration from the Chef server, and then update the node to comply with the policy.
A node is any physical, virtual, or cloud machine that is configured to be maintained by a Chef client. A Chef role allows us to group configurations for the types of nodes together. Knife is a...