AWS OpsWorks (beta)
AWS OpsWorks is a DevOps solution for managing applications of any scale or complexity on the AWS cloud. AWS OpsWorks features an integrated experience for managing the complete application lifecycle, including resource provisioning, configuration management, application deployment, software updates, monitoring, and access control.
AWS 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. AWS OpsWorks promotes conventions but is flexible enough to let you customize any aspect of your environment. Since AWS OpsWorks uses Chef recipes, you can leverage hundreds of community-built configurations such as PostgreSQL, Nginx, and Solr.
AWS OpsWorks uses automation to simplify operations. You specify how to deploy, scale, and maintain your applications and AWS OpsWorks performs the tasks for you. AWS OpsWorks can scale your applications using automatic load-based or time-based scaling, and maintain the health of your applications by detecting failed instances and replacing them. With AWS OpsWorks, you can deploy your applications to 1,000s of Amazon EC2 instances with the same effort as a single instance.
There is no additional charge for AWS OpsWorks – you pay only for the AWS resources needed to store and run your applications.
Get Started with
AWS for Free
What is AWS OpsWorks?
New ELB support and monitoring view
We are pleased to announce Elastic Load Balancing support and a monitoring view of your stack’s Amazon CloudWatch metrics. Try OpsWorks Now
This page contains the following categories of information. Click to jump down:
AWS OpsWorks Functionality
Application management traditionally has been complex and time consuming. Developers had to choose among application management solutions that reduced flexibility and control, or required custom tooling. OpsWorks addresses these customer needs by providing an end-to-end, flexible, and automated solution for more operational control over applications.
To get an application running on AWS OpsWorks, use the AWS Management Console, SDKs, or command line interface to:
- Create a Stack. A stack contains the set of Amazon EC2 instances and instance blueprints, called layers, used to launch and manage these instances (e.g., all the PHP servers and the MySQL database used for your production web application). Apps, user permissions, and resources are scoped and controlled in the context of the stack.
- Define the layers of your stack. A layer defines how to set up and configure a set of instances and related resources such as volumes and Elastic IP addresses. AWS OpsWorks includes layers for common technologies such as Ruby, PHP, HAProxy, Memcached, and MySQL, and makes it easy to extend existing layers or create custom layers. Lifecycle events can be used to trigger Chef recipes on each instance to perform specific configuration tasks. For example, the deploy event could trigger a script to create a database table for a new app.
- Assign instances to your layers. Create instances in configurations you choose, including instance size, Availability Zone, volume creation and RAID configuration, EIP, security group, and operating system. Start your instances, or apply them to auto scaling groups.
- Define and deploy your apps. To define an app, simply tell AWS OpsWorks where it can find your code and specify any additional deployment tasks, such as database configuration. AWS OpsWorks supports a variety of repositories such as Git, SVN, HTTP, and Amazon S3. When you deploy the app, AWS OpsWorks will pull code from your repository, place it on the instances, and run the specified deployment tasks so that your application is properly configured. Afterwards, you can view your app’s deployment logs to review the deployment steps, verify its functionality, and debug any issues.
For more information about how to deploy a sample app using the AWS OpsWorks management console, see the AWS OpsWorks Getting Started Guide.
AWS OpsWorks lets you model the different components of your application as layers in a stack, and maps your logical architecture to a physical architecture. You can see all resources associated with your application, and their status, in one place.
AWS OpsWorks provides an event-driven configuration system with rich deployment tools that allow you to efficiently manage your applications over their lifetime, including support for customizable deployments, rollback, partial deployments, patch management, automatic instance scaling, and auto healing. Since OpsWorks updates configurations continuously, you can roll out an update to your application by simply updating a single configuration and clicking a button.
AWS OpsWorks lets you define template 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.
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.
AWS OpsWorks makes it easy to manage IAM users' SSH access on a per stack basis.
There is no additional charge for AWS OpsWorks. You pay for AWS resources (e.g. EC2 instances, EBS volumes, Elastic IP addresses) created using OpsWorks in the same manner as if you created them manually. OpsWorks creates logs that are stored in an Amazon S3 bucket in your account. With all AWS services, you only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
Additional Product Information
AWS OpsWorks includes the following capabilities to support your application:
- Resource Configuration. You can deploy Amazon EC2 instances from template configurations, including Amazon EBS volume creation and RAID configuration. AWS OpsWorks 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.
- Software Configuration. 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, OpsWorks runs built-in recipes that are appropriate for the layer and any custom recipes that you assign to that particular event.
- App Deployment. 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.
- Auto Healing. If an instance fails, AWS OpsWorks 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.
- Monitoring. AWS OpsWorks 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.