AWS OpsWorks is a configuration management service that provides managed instances of Chef and Puppet. Chef and Puppet are automation platforms that allow you to use code to automate the configurations of your servers.
OpsWorks lets you use Chef and Puppet to automate how servers are configured, deployed, and managed across your Amazon EC2 instances or on-premises compute environments.
OpsWorks has three offerings:
- AWS Opsworks for Chef Automate
- AWS OpsWorks for Puppet Enterprise
- AWS OpsWorks Stacks.
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate is a fully managed configuration management service that hosts Chef Automate, a suite of automation tools from Chef for configuration management, compliance and security, and continuous deployment. OpsWorks also maintains your Chef server and gives you access to all of the Chef Automate features, such as configuration and compliance management, which you manage through the Chef console or command line tools like Knife. It also works seamlessly with your existing Chef cookbooks.
AWS OpsWorks for Puppet Enterprise
AWS OpsWorks for Puppet Enterprise is a fully managed configuration management service that hosts Puppet Enterprise, a set of automation tools from Puppet for infrastructure and application management. OpsWorks also maintains your Puppet master server and eliminates the need to operate your own configuration management systems or worry about maintaining its infrastructure. OpsWorks gives you access to all of the Puppet Enterprise features, which you manage through the Puppet console. It also works seamlessly with your existing Puppet code.
AWS OpsWorks Stacks
AWS OpsWorks Stacks is an application and server management service. With OpsWorks Stacks, you can model your application as a stack containing different layers, such as load balancing, database, and application server. Within each layer, you can provision Amazon EC2 instances, enable automatic scaling, and configure your instances with Chef recipes using Chef Solo. This allows you to automate tasks such as installing packages and programming languages, frameworks, and configuring software.
Example Use Case Scenarios
Scenario 1 : Customer with Existing Chef or Puppet Adoption
A customer has existing Chef or Puppet adopted within there workload and are looking to continue with this pattern, however would like to move to a aaS(As A Service) model to reduce platform management overheads, and leverage the HA(High Availability) and Premium/Enterprise feature benefits.
- Create and Deploy SaaS Puppet-Master or Chef-Automate Server
- Complete config or upload Cookbooks.
- Add Nodes to Manage
- Use the Service to Configure and Maintain
Scenario 2 : Customers looking for IaaC with lifecycle management.
A customer using Chef wants to leverage this further and have a naive interface to control infrastructure architecture in addition to Instance config, not only during deployment but also in life cycle. Opsworks can provide this with OpsWorks Stacks as an alternative to or partner with cloudformation.
- Create a Stack
- Create Layers in the Stack – EC2, RDS, ELB, ECS.
- Add Instances to the Layers – Based on Chef Builds
- Deploy the Stack
- Maintain the Instances via Chef over life time of the instances
- Includes Monitoring and Security of the Stack
You should use OpsWorks in place of CloudFormation if you need to deploy an application that requires updates to its EC2 instances. However If your application uses a lot of AWS resources and services, including EC2, or you have no existing skills in Puppet or Chef, consider using a combination of CloudFormation and OpsWorks. Cloud formation with System Manager is also a viable alternative however this would rely on further agents running on the instances.