{"id":3017,"date":"2019-07-03T00:14:57","date_gmt":"2019-07-02T22:14:57","guid":{"rendered":"http:\/\/miro.borodziuk.eu\/?p=3017"},"modified":"2019-09-03T16:31:01","modified_gmt":"2019-09-03T14:31:01","slug":"aws-opsworks","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2019\/07\/03\/aws-opsworks\/","title":{"rendered":"AWS OpsWorks"},"content":{"rendered":"<p><span style=\"color: #3366ff;\">OpsWorks<\/span> is an implementation of the Chef configuration management and deployment platform. OpsWorks moves away from the low-level configurability of CloudFormation but not as far as Elastic Beanstalk.\u00a0 OpsWorks lets you create a stack of resources with layers and manage resources as a unit.<\/p>\n<p><!--more--><\/p>\n<ul>\n<li>Flexible way to create and manage resources for our applications.<\/li>\n<li>Create a stack of resources and manage resources in layers.<\/li>\n<li>Use OpsWorks to automate, monitor, and maintain deployments.<\/li>\n<li>OpsWorks provides abstraction from the underlying infrastructure, while still giving plenty of control, with <strong>more customization<\/strong> than Elastic Beanstalk.<\/li>\n<li>It uses <strong>Chef<\/strong>, an open-source tool that automates infrastructure by turning it into code.<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;\">OpsWorks Components<\/span><\/p>\n<p><span style=\"color: #999999;\">Stacks<\/span><\/p>\n<ul>\n<li>A unit of managed infrastructure<\/li>\n<li>Can use stacks per application or per platform<\/li>\n<li>Could use stacks for development, staging, or production environments<\/li>\n<li>Represent a set of resources we want to manage as a group<\/li>\n<\/ul>\n<p><span style=\"color: #999999;\">Layers<\/span><\/p>\n<ul>\n<li>Comparable to application tiers within a stack<\/li>\n<li>e.g., database layer, application layer, proxy layer<\/li>\n<li>Recipes are generally associated with layers and configure what to install on instances in that layer<\/li>\n<li>Used to represent and configure components of a stack<\/li>\n<li>We can use built-in layers and customize those or create completely custom layers<\/li>\n<li>Recipes are added to layers<\/li>\n<\/ul>\n<p><span style=\"color: #999999;\">Instances<\/span><\/p>\n<ul>\n<li>Instances are EC2 instances associated with a layer<\/li>\n<li>Configured as 24\/7, load based, or time based<\/li>\n<li>Must be associated with at least one layer<\/li>\n<\/ul>\n<p><span style=\"color: #999999;\">Apps <\/span><\/p>\n<ul>\n<li>Apps are deployed to layers from a source code repo or S3<\/li>\n<li>Actual deployment happens using recipes on a layer.<\/li>\n<li>Other recipes are run when deployments happen, potentially to reconfigure other instances<\/li>\n<li>Apps are deployed to the application layer through a source code repository like Git, Subversion, or S3<\/li>\n<li>We can deploy an app against a layer and have OpsWorks execute recipes to prepare instances for the application<\/li>\n<\/ul>\n<p><span style=\"color: #999999;\">Recipes<\/span><\/p>\n<ul>\n<li><strong>Setup<\/strong>: Executed on an instance when first provisioned<\/li>\n<li><strong>Configure<\/strong>: Executed on all instances when instances are added or removed<\/li>\n<li><strong>Deploy <\/strong>and <strong>Undeploy<\/strong>: Executed when apps are added or removed<\/li>\n<li><strong>Shutdown<\/strong>: Executed when an instance is shut down but before it&#8217;s stopped<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Recipes<\/p>\n<ul>\n<li>Created using the Ruby language and based on the Chef deployment software<\/li>\n<li>Custom recipes can customize different layers in an application<\/li>\n<li>Recipes are run at certain predefined events within a stack\n<ul>\n<li>Setup: Occurs on a new instance after first boot<\/li>\n<li>Configure: Occurs on all stack instances when they enter or leave the inline state<\/li>\n<li>Deploy: Occurs when we deploy an app<\/li>\n<li>Undeploy: Happens when we delete an app from a set of application instances<\/li>\n<li>Shutdown: Happens when we shut down an instance (but before it is actually stopped)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>OpsWorks is an implementation of the Chef configuration management and deployment platform. OpsWorks moves away from the low-level configurability of CloudFormation but not as far as Elastic Beanstalk.\u00a0 OpsWorks lets you create a stack of resources with layers and manage resources as a unit.<\/p>\n","protected":false},"author":1,"featured_media":3018,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/3017"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=3017"}],"version-history":[{"count":11,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/3017\/revisions"}],"predecessor-version":[{"id":3029,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/3017\/revisions\/3029"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/3018"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=3017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=3017"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=3017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}