AWS OpsWorks is a cloud application management service that makes it easy to deploy and operate applications of all shapes and sizes. You can define the application’s architecture and the specification of each component including package installation, software configuration and resources such as storage. Start from templates for common technologies like application servers and databases or build your own to perform any task that can be scripted. AWS OpsWorks includes automation to scale your application based on time or load and dynamic configuration to orchestrate changes as your environment scales.
AWS OpsWorks supports a wide variety of architectures, from simple web applications to highly complex custom applications, and any software that has a scripted installation. Since AWS OpsWorks supports Chef recipes and Bash scripts, you can leverage community-built configurations such as MongoDB and Elasticsearch. You model and visualize your application with layers that define resource and software configuration. You can extend and adapt the built-in layers or create your own.
You control every aspect of your application’s configuration to match your needs, processes, and tools. For example, you can configure RAID arrays for storage redundancy, install software packages using Chef recipes or use software already baked into a custom AMI, deploy to all instances or use a sequential deployment strategy. You can execute any recipe on any instance at any time, supporting use cases such as runbook automation.
AWS OpsWorks lets you define configurations for your entire environment in a format that you can maintain and version just like your application source code. You can reproduce the software configuration on new instances and apply changes to all running instances, ensuring consistent configuration at any time. You can deploy your application from source repositories such as Git and Subversion to one or hundreds of instances with the click of a button.
AWS OpsWorks provides dynamic configuration and orchestration that allows you to efficiently manage your applications over their lifetime, including support for automatic instance scaling and auto healing. Each new instance that comes online is built to specification automatically and can change its configuration in response to system events. This lets you, for example, change the configuration of a web application firewall when a new web server comes online without any manual steps.
AWS OpsWorks includes a simple web interface, CLI and SDK that provide the core tools you need to run your application. Built-in features such as Amazon EBS RAID configuration, Amazon CloudWatch metrics aggregated by layer, and the ability to clone stacks within and across regions provide the tools needed to streamline application operations. You can execute scripts and update your instances centrally without having to log in to each machine. Logs are available for each action performed on your instances, including software deployments.
AWS OpsWorks lets you model and visualize your application using concepts such as stacks, layers and apps. The OpsWorks dashboard shows the status of your stacks across all AWS regions. AWS OpsWorks tags your resources with the stack and layer names to make discovery easier and to support logical groupings for monitoring, cost allocation, and permissions.
You can grant AWS IAM users access to specific stacks, making management of multi-user environments easier. You can also set user-specific permissions for actions on each stack, allowing you to decide who can deploy new application versions or create new resources. You can delegate management of each stack to a specific user or set of users. You can control user-level SSH access to Amazon EC2 instances, allowing you to instantly grant or remove access to instances for individual users. OpsWorks lets you create stacks that define how instances can be provisioned and by whom, allowing you to support requirements such as ensuring that users only run instances in the VPCs that you specify.
OpsWorks lets you model and visualize your application with layers that define how to configure a set of resources that are managed together. You can also define the software configuration for each layer, including installation scripts and initialization tasks. When an instance is added to a layer, all the configuration steps are applied for you. OpsWorks promotes conventions but is flexible enough to let you customize any aspect of your environment. AWS OpsWorks supports any software that has a scripted installation. Because OpsWorks uses the Chef framework, you can bring your own recipes or leverage hundreds of community-built configurations.
OpsWorks supports DevOps principles such as continuous integration. Everything in your environment can be automated. You can specify not only how to deploy your code, but use Chef recipes to configure the software on your servers and AWS APIs to provision resources. This supports pipelines from your source repository to your build server to integration tests to production.