AWS OpsWorks Stacks is a configuration management service that helps you automate operational tasks like software configurations, package installations, database setups, server scaling, and code deployment using Chef. OpsWorks Stacks gives you the flexibility to define your application architecture and resource configuration and handles the provisioning and management of your AWS resources for you. OpsWorks Stacks includes automation to scale your application based on time or load, monitoring to help you troubleshoot and take automated action based on the state of your resources, and permissions and policy management to make management of multi-user environments easier.
You can deploy Amazon EC2 instances from template configurations, including Amazon EBS volume creation. AWS OpsWorks Stacks also maintains and persists the relationship between resources, for example it ensures that instances keep their Elastic IP addresses and volumes, even after stopping and starting the instance weeks later.
You can configure the software on your instances on-demand or automatically based on lifecycle events, from bootstrapping the base OS image into a working server to modifying running services to reflect changes. When a lifecycle event is triggered, AWS OpsWorks Stacks runs built-in recipes that are appropriate for the layer and any custom recipes that you assign to that particular event.
You can pull your code from a repository and install it on one or all of your instances. You can have multiple applications in a stack that are configured to work together as a system.
AWS OpsWorks Stacks can auto heal your stack. If an instance fails in your stack, OpsWorks Stacks can replace it with a new one.
Automatic Instance Scaling
You can adapt the number of running instances to match your load, with time- or load-based auto scaling. The instances in your pool can vary in size, letting you scale gradually or quickly. This allows you to handle load spikes and save money by only using exactly what is needed.
AWS OpsWorks Stacks sends all of your resource metrics to Amazon CloudWatch, making it easy to view graphs and set alarms to help you troubleshoot and take automated action based on the state of your resources.
Linux and Windows Support
You can use AWS OpsWorks Stacks to configure and manage both Linux and Windows EC2 instances.
You can use AWS OpsWorks Stacks to deploy, manage, and scale your application on any Linux server such as EC2 instances or servers running in your own data center (your servers will need to be able to connect to AWS public endpoints).
Permissions and Policy Management
You can grant AWS Identity and Access Management (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. AWS OpsWorks Stacks 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.
Management Console and APIs
AWS OpsWorks Stacks 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 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.