AWS OpsWorks - Overview of Deployment Options on AWS

AWS OpsWorks

AWS OpsWorks is a configuration management service that enables customers to construct, manage, and operate a wide variety of application architectures, from simple web applications to highly complex custom applications. Organizations deploying applications with OpsWorks use the automation platforms Chef or Puppet to manage key operational activities like server provisioning, software configurations, package installations, database setups, scaling, and code deployments. There are three ways to use OpsWorks:

  • AWS OpsWorks for Chef Automate: fully managed configuration management service that hosts Chef Automate.

  • AWS OpsWorks for Puppet Enterprise: fully managed configuration management service that hosts Puppet Enterprise.

  • AWS OpsWorks Stacks: application and server management service that supports modeling applications using the abstractions of “stacks” and “layers” that depend on Chef recipes for configuration management.

With OpsWorks for Chef Automate and OpsWorks for Puppet Enterprise, AWS creates a fully managed instance of Chef or Puppet running on Amazon EC2. This instance manages configuration, deployment, and monitoring of nodes in your environment that are registered to the instance. When using OpsWorks with Chef Automate or Puppet Enterprise, additional services (e.g., CloudFormation) may need to be used to create and manage infrastructure components that are not supported by OpsWorks.

OpsWorks Stacks provides a simple and flexible way to create and manage application infrastructure. When working with OpsWorks Stacks, you model your application as a “stack” containing different “layers.” A layer contains infrastructure components necessary to support a particular application function, such as load balancers, databases, or application servers. OpsWorks Stacks does not require the creation of a Chef server, but uses Chef recipes for each layer to handle tasks such as installing packages on instances, deploying applications, and managing other resource configurations. OpsWorks Stacks will create and provision infrastructure on your behalf, but does not support all AWS services.

Provided that a node is network reachable from an OpsWorks Puppet or Chef instance, any node can be registered with the OpsWorks, making this solution a good choice for organizations already using Chef or Puppet and working in a hybrid environment. With OpsWorks Stacks, an on-premises node must be able to communicate with public AWS endpoints.

Table 6: AWS OpsWorks deployment features

Capability Description
Provision

OpsWorks Stacks can create and manage certain AWS services as part of your application using Chef recipes. With OpsWorks for Chef Automate or Puppet Enterprise, infrastructure must be created elsewhere and registered to the Chef or Puppet instance.

Refer to Create a New Stack for more details on creating resources with OpsWorks Stacks.

Configure

All OpsWorks operating models support configuration management of registered nodes. OpsWorks Stacks supports customization of other infrastructure in your environment through layer customization.

Refer to OpsWorks Layer Basics for more details on customizing resources with OpsWorks Layers.

Deploy

All OpsWorks operating models support deployment and update of applications running on registered nodes.

Refer to Deploying Apps for more details on how to deploy applications with OpsWorks Stacks.

Scale

OpsWorks Stacks can handle automatically scaling instances in your environment based on changes in incoming traffic.

Refer to Using Automatic Load-based Scaling for more details on auto scaling with OpsWorks Stacks.

Monitor

OpsWorks provides several features to monitor your application infrastructure and deployment success. In addition to Chef/Puppet logs, OpsWorks provides a set of configurable Amazon CloudWatch and AWS CloudTrail metrics for full-stack monitoring

Refer to Monitoring Stacks using Amazon CloudWatch for more details on resource monitoring in OpsWorks.

OpsWorks provides a complete, flexible, and automated solution that works with existing and popular tools while allowing application owners to maintain full-stack control of an application. The following example shows a typical use case for AWS OpsWorks Stacks as it is used to create and manage a three-tier web application.

Figure 6: AWS OpsWorks Stacks use case

This next example shows a typical use case for AWS OpsWorks for Chef Automate or Puppet Enterprise as it is used to manage the compute instances of a web application.

Figure 7: AWS OpsWorks with Chef Automate or Puppet Enterprise use case