AWS OpsWorks is a configuration management service that helps to configure and operate applications in a cloud enterprise by using Chef.
OpsWorks Stacks and AWS OpsWorks for Chef Automate allows using Chef cookbooks and solutions for configuration management.
AWS OpsWorks is a configuration management service that helps you configure and operate applications in a cloud enterprise by using Puppet or Chef.
AWS OpsWorks Stacks and AWS OpsWorks for Chef Automate (1 and 2) let you use Chef cookbooks and solutions for configuration management, while OpsWorks for Puppet Enterprise lets you configure a Puppet Enterprise master server in AWS.
With AWS OpsWorks, you can automate how nodes are configured, deployed, and managed, whether they are Amazon EC2 instances or on-premises devices.
AWS OpsWorks Features:
1) Model and support any application:
You can deploy your application in the configuration you choose on Amazon Linux and Ubuntu. OpsWorks lets you model your application with layers. Layers define how to configure a set of resources that are managed together. For example, you might define a web layer for your application that consists of EC2 instances, EBS volumes including RAID configuration and mount points, and Elastic IPs. You can also define the software configuration for each layer, including installation scripts and initialization tasks. When an instance is added to a layer, OpsWorks automatically applies the specified configuration.
2) Automate tasks:
OpsWorks enables you to automate management actions so that they are performed automatically and reliably. You can benefit from automatic failover, package management, EBS volume RAID setup, and rule-based or time-based auto-scaling. Common tasks automatically handled for you, and you can also extend and customize that automation. OpsWorks supports continuous configuration through lifecycle events that automatically update your instances’ configuration to adapt to environmental changes, such as auto-scaling events. With OpsWorks there is no need to log in to several machines and manually update your configuration. Whenever your environment changes, OpsWorks updates your configuration.
3) Control access:
OpsWorks lets you control access to your application. You choose which IAM users should have access to the application’s resources, and assign permissions that define what they can do. These controls can prevent users from inadvertently changing production resources. An event view shows change history to simplify root cause analysis.
AWS OpsWorks has Three Offerings:
⦁ AWS OpsWorks for Puppet Enterprise
⦁ AWS Opsworks for Chef Automate
⦁ AWS OpsWorks Stacks
1) AWS OpsWorks for Puppet Enterprise:
AWS OpsWorks for Puppet Enterprise is an entirely managed configuration management service that hosts Puppet Enterprise, a set of automation tools from Puppet for infrastructure and application management. OpsWorks additionally maintains your Puppet master server by automatically patching, updating, and backing up the server.
OpsWorks eliminates the requirement to operate your configuration management systems or fret about maintaining its infrastructure. OpsWorks gives you access to all of the Puppet Enterprise features, which operate through the Puppet console. It also operates seamlessly with your existing Puppet code.
Provides a fully-managed Puppet master, a suite of automation tools that enable you to inspect, deliver, operate, and future-proof your applications, and access to a user interface that lets you view information about your nodes and Puppet activities.
It does not support all regions and uses puppet-agent software.
Deleting a server also deletes its events, logs, and any modules that were stored on the server. Supporting resources are also deleted, along with all automated backups.
⦁ Fully Managed Puppet Master
⦁ Programmable Infrastructure
⦁ Scaling made easy
⦁ Support from Puppet Community
⦁ Simple to manage a hybrid environment
AWS manages the Puppet master server running on an EC2 instance. You retain control over the underlying resources running your Puppet master.
You can choose the weekly maintenance window during which OpsWorks for Puppet Enterprise will automatically install updates.
Monitors the health of your Puppet master during update windows and automatically rolls back changes if issues are detected.
You can configure automatic backups for your Puppet master and store them in an S3 bucket in your account.
You can register new nodes to your Puppet master by inserting a user-data script, provided in the OpsWorks for Puppet Enterprise StarterKit, into your Auto Scaling groups.
Puppet uses SSL and a certification approval process when communicating to ensure that the Puppet master responds only to requests made by trusted users.
You are charged based on the number of nodes (servers running the Puppet agent) connected to your Puppet master and the time those nodes are running on an hourly rate, and you also pay for the underlying EC2 instance running your Puppet master.
2) AWS Opsworks for Chef Automate:
AWS OpsWorks for Chef Automate provides a completely managed Chef Automate server and suite of automation tools that provide you workflow automation for continuous deployment, automated testing for compliance and security, and a user interface that gives you visibility within your nodes and their status. The Chef Automate platform gives you full stack automation by managing operational tasks such as software and operating system configurations, continuous compliance, package installations, database setups, and more.
The Chef server centrally saves your configuration tasks and gives them to each node in your compute environment at any scale, from a few nodes to thousands of nodes. OpsWorks for Chef Automate completely compatible with tooling and cookbooks from the Chef community and automatically registers new nodes with your Chef server.
AWS OpsWorks for Chef Automate supports Chef Automate and uses chef-client.
Deleting a server also deletes its events, logs, and any cookbooks that were stored on the server. Supporting resources are deleted also, along with all automated backups.
You can use Chef to manage both Amazon EC2 instances and on-premises servers running Linux or Windows.
You receive the full Chef Automate platform which includes premium features that you can use with Chef server, like Chef Workflow, Chef Visibility, and Chef Compliance.
You provision a managed Chef server running on an EC2 instance in your account. You retain control over the underlying resources running your Chef server and you can use Knife to SSH into your Chef server instance at any time.
You can set a weekly maintenance window during which OpsWorks for Chef Automate will automatically install updates.
You can configure automatic backups for your Chef server and is stored in an S3 bucket.
You can register new nodes to your Chef server by inserting user-data code snippets provided by OpsWorks for Chef Automate into your Auto Scaling groups.
Chef uses SSL to ensure that the Chef server responds only to requests made by trusted users. The Chef server and Chef client use bidirectional validation of identity when communicating with each other.
⦁ Fully Managed Chef Automate Server
⦁ Programmable Infrastructure
⦁ Scaling made easy
⦁ Support from Active Chef Community
⦁ Simple to manage a hybrid environment
3) AWS OpsWorks Stacks
AWS OpsWorks Stacks permits you to manage applications including servers on AWS and on-premises. With OpsWorks Stacks, you can shape your application as a stack containing different layers, such as load balancing, application server, and database. You can deploy and configure Amazon EC2 instances in each layer or connect other resources such as Amazon RDS databases.
OpsWorks Stacks allows you to set automatic scaling for your servers based on preset schedules or in response to changing traffic levels, and it uses lifecycle hooks to orchestrate changes as your environment scales. You run Chef recipes using Chef Solo, allowing you to automate tasks such as installing packages and programming languages or configuring software or frameworks, and more.
It provides a simple and flexible way to create and manage stacks and applications.
Stacks are group of AWS resources that constitute an full-stack application. By default, you can create up to 40 Stacks, and each stack can hold up to 40 layers, 40 instances, and 40 apps.
We can create stacks that help you manage cloud resources in specialized groups called layers. A layer represents a set of EC2 instances that serve a particular purpose, such as serving applications or hosting a database server. Layers depend on Chef recipes to handle tasks such as installing packages on instances, deploying apps, and running scripts.
AWS OpsWorks supports the DevOps practices of monitoring and logging. Monitoring service provided by Amazon CloudWatch. All lifecycle effects logged, and a separate Chef log documents any Chef recipes that run, along with any exceptions.
You can deploy EC2 instances from template configurations, including EBS volume creation.
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.
OpsWorks Stacks can auto heal your stack. If an instance fails in your stack, OpsWorks Stacks can replace it with a new one.
You can adapt the number of running instances to match your load, with time-based or load-based auto scaling.
You can use 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.
⦁ Support any application
⦁ Configuration as Code
⦁ Automation to Run at Scale
⦁ Resource Organization
⦁ Supports any Server
AWS OpsWorks LifeCycle Events:
Layers depend on Chef recipes to handle tasks such as installing packages on instances, deploying apps, running scripts, and so on.
OpsWorks Stacks runs the recipes for each layer, even if the instance belongs to multiple layers for e.g. instance hosting both the application and the mysql server
AWS OpsWorks Stacks features is a set of lifecycle events – Setup, Configure, Deploy, Undeploy, and Shutdown – which automatically runs specified set of recipes at the appropriate time on each instance
You can run recipes manually, but OpsWorks Stacks also lets you automate the process by supporting a set of five lifecycle events:
Setup occurs on a new instance after it successfully boots. OpsWorks triggers the Setup event, which runs recipes to set up the instance according to the layer configuration for e.g. installation of apache, PHP packages. Once setup is complete, AWS OpsWorks triggers a Deploy event, which runs recipes to deploy your application to the new instance.
Configure occurs on all of the stack’s instances when an instance enters or leaves the online state, AWS OpsWorks triggers a Configure event on all instances in the stack. Event runs each layer’s configure recipes to update configuration to reflect the current set of online instances for e.g. the HAProxy layer’s Configure recipes can modify the load balancer configuration to reflect any added or removed application server instances.
Deploy occurs when you deploy command is executed, to deploy the application to a set of application servers. Event runs recipes on the application servers to deploy application and any related files from its repository to the layer’s instances.
OpsWorks triggers an Undeploy event when an app is deleted or Undeploy command is executed to remove an app from a set of application servers.
Event runs recipes to remove all application versions and perform any additional cleanup tasks.
OpsWorks triggers a Shutdown event when an instance is being shut down, but before the underlying EC2 instance is terminated.
Event runs recipes to perform cleanup tasks such as shutting down services. OpsWorks allows Shutdown recipes a configurable amount of time to perform their tasks, and then terminates the instance.