<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Devops and the Public cloud</title>
	<atom:link href="http://devopscloud.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://devopscloud.net</link>
	<description>Just another WordPress.com site</description>
	<lastBuildDate>Sun, 02 Sep 2012 15:44:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devopscloud.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Devops and the Public cloud</title>
		<link>http://devopscloud.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devopscloud.net/osd.xml" title="Devops and the Public cloud" />
	<atom:link rel='hub' href='http://devopscloud.net/?pushpress=hub'/>
		<item>
		<title>Windows in the cloud a 1st class citizen</title>
		<link>http://devopscloud.net/2012/09/02/windows-in-the-cloud-a-1st-class-citizen/</link>
		<comments>http://devopscloud.net/2012/09/02/windows-in-the-cloud-a-1st-class-citizen/#comments</comments>
		<pubDate>Sun, 02 Sep 2012 15:44:54 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/?p=209</guid>
		<description><![CDATA[The perception is that running windows instances in the cloud is often as a second class citizen. This just not true. Both Opsocode and puppets lab have made great strides in&#160; making their configuration management tools ‘windows friendly’&#160; (Disclaimer:&#160; I’ve used Chef with windows no actual experience with puppet). To add to this Amazon Web [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=209&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The perception is that running windows instances in the cloud is often as a second class citizen. This just not true. Both Opsocode and puppets lab have made great strides in&#160; making their configuration management tools ‘windows friendly’&#160; (Disclaimer:&#160; I’ve used Chef with windows no actual experience with puppet). To add to this Amazon Web services introduced Cloudformation friendly windows&#160; base AMI’s . The combination of these AMI’s with the more windows friendly configuration management tools means you can really treat windows as you would Linux instances and use the same tools to manage windows instances as you would Linux. </p>
<p>You can use PowerShell as you would normally so the learning curve isn’t as steep as you’d expect as a windows administrator.Go on give it a go. </p>
<p>If you have an estate that is made up of both windows and Linux&#160; starting from a point where you can use the same tools to mange both environments makes life easy for your Operations/ DevOps or whatever label you place on the team that makes sure you have systems that are up and running each day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=209&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2012/09/02/windows-in-the-cloud-a-1st-class-citizen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>One tool to manage them all</title>
		<link>http://devopscloud.net/2012/01/15/one-tool-to-manage-them-all/</link>
		<comments>http://devopscloud.net/2012/01/15/one-tool-to-manage-them-all/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 09:57:53 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/?p=205</guid>
		<description><![CDATA[&#160; I’ve been waiting to give the chef-client MSI a try ever since I noticed it had been released. I wanted to see if it really has made the numerous ( albeit fairly straight forward) steps to get chef-client working on Windows 2008 R2 that much easier.  After all the easier it becomes the more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=205&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I’ve been waiting to give the chef-client MSI a try ever since I noticed it had been released. I wanted to see if it really has made the numerous ( albeit fairly straight forward) steps to get chef-client working on Windows 2008 R2 that much easier.  After all the easier it becomes the more converts there will be as the barriers to adoption are removed.</p>
<p>Running the MSI is simple. It takes care of installing ruby( version 1.9.2p290)  and installing chef-client . Now all you need to do is set up a couple of files to allow your client to authenticate with your Chef server as detailed quite nicely here:</p>
<p><a href="http://wiki.opscode.com/display/chef/Installing+Chef+Client+on+Windows"><span style="text-decoration:underline;"><span style="color:#0066cc;">http://wiki.opscode.com/display/chef/Installing+Chef+Client+on+Windows</span></span></a></p>
<p>That’s it you’re good to go.  First impressions a big thumbs up.</p>
<p>I then had a quick look into how things have got better in the windows  recipe development  department. I started by checking out</p>
<p><span style="text-decoration:underline;"><span style="color:#0066cc;"><a href="http://community.opscode.com/cookbooks/windows">The opscode supported  windows cookbook</a></span></span></p>
<p>This is looking really promising as the ability to install roles &amp; features, and more importantly install MSI’s can be treated in the same way as you would install services and install packages  on Linux . Meaning you could actually have one person who is capable of  writing  high level recipes for both platforms. You will always need someone who understands the target O/S but this just means you can get admin staff using Chef  ( yeah I know I’m talking about the hosted version)  and it doesn&#8217;t really matter which O/S they are more comfortable with . Opscode in my  humble opinion have removed a layer of obstruction to adoption by the work they’ve done here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=205&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2012/01/15/one-tool-to-manage-them-all/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>Blathering on</title>
		<link>http://devopscloud.net/2011/09/09/blathering-on/</link>
		<comments>http://devopscloud.net/2011/09/09/blathering-on/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 06:09:01 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/2011/09/09/blathering-on/</guid>
		<description><![CDATA[Last night ( 8th Sept 2011) I had the privilege of being interviewed together with my ex colleague and good friend James  by Richard &#38; Carl of  . NET Rocks!  to talk about DevOps, how we see it evolving , what we think it means , the effect it is having on the industry just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=201&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last night ( 8th Sept 2011) I had the privilege of being interviewed together with my ex colleague and good friend <a href="http://readsource.co.uk/" target="_blank">James</a>  by Richard &amp; Carl of  <a href="http://www.dotnetrocks.com/" target="_blank">. NET Rocks!</a>  to talk about DevOps, how we see it evolving , what we think it means , the effect it is having on the industry just for starters.   The fact this  is on  a show aimed at .NET developers is a statement in itself.</p>
<p>It’s  Due to be  broadcast on the 13th  September 2011.  It will be interesting to see what folks think as it’s not the usual type of subject covered. James &amp; I are both passionate about the subject and  I  must confess I kept forgetting during the interview  that I wasn’t there just to listen to James,  but his eloquence about the subject with or without the DevOps label is always compelling . Please feel free to blame Howard of <a href="http://endjin.com/" target="_blank">endjin</a> for  suggesting letting  James &amp; I loose on your ears though <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" src="http://devopscloud.files.wordpress.com/2011/09/wlemoticon-smile.png?w=630" alt="Smile" /></p>
<p>The interview is here:  <a href="http://www.dotnetrocks.com/default.aspx?showNum=697" target="_blank">.NET Rocks! Show 697 </a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/201/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=201&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/09/09/blathering-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/09/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>Targeting Windows 2008 R2 nodes using chef</title>
		<link>http://devopscloud.net/2011/06/23/targeting-windows-2008-r2-nodes-using-chef/</link>
		<comments>http://devopscloud.net/2011/06/23/targeting-windows-2008-r2-nodes-using-chef/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 19:36:10 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Hints & Tips]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://devopscloud.net/?p=195</guid>
		<description><![CDATA[Just a quick note. I&#8217;d advise sticking to ruby 1.8.7-p344 on the target node if you are targeting windows 2008 R2.  I recently revisted targeting windows 2008 R2 and found that using  the latest version of ruby  1.9.2-p180 on the windows 2008 r2 target node  and  attempting to run chef-client  after installing the chef gem is a proverbial pain . [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=195&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Just a quick note.</p>
<p>I&#8217;d advise sticking to ruby 1.8.7-p344 on the target node if you are targeting windows 2008 R2.  I recently revisted targeting windows 2008 R2 and found that using  the latest version of ruby  1.9.2-p180 on the windows 2008 r2 target node  and  attempting to run chef-client  after installing the chef gem is a proverbial pain . I&#8217;m not sure if Opscode are looking into this but  it&#8217;s easy to reproduce the pain <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=195&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/06/23/targeting-windows-2008-r2-nodes-using-chef/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>Using AWS for DR when your solution is not in the Cloud</title>
		<link>http://devopscloud.net/2011/06/09/using-aws-for-dr-when-your-solution-is-not-in-the-cloud/</link>
		<comments>http://devopscloud.net/2011/06/09/using-aws-for-dr-when-your-solution-is-not-in-the-cloud/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 20:30:48 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloudformation]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Resilience]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/2011/06/09/using-aws-for-dr-when-your-solution-is-not-in-the-cloud/</guid>
		<description><![CDATA[In my previous post  in this series on resilience of non cloudy solutions I discussed how to approach obtaining exactly what was acceptable to the business to achieve an appropriate DR solution . In this post I will look at a fairly high level at  how to exploit AWS to  help  provide a cost effective [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=192&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In my previous post  in this series on resilience of non cloudy solutions I discussed how to approach obtaining exactly what was acceptable to the business to achieve an appropriate DR solution . In this post I will look at a fairly high level at  how to exploit AWS to  help  provide a cost effective solution for DR when your solution does not actually use AWS resources and is  probably not designed in a decoupled manner that  would make it easy to deploy to the cloud  .</p>
<p>yes I know know I can’t help it the cloud is here after all <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" src="http://devopscloud.files.wordpress.com/2011/06/wlemoticon-smile.png?w=630" alt="Smile" /></p>
<p>Please note that by necessity I’ve needed to keep to a high level as if I were to attempt to  start exploring the detailed configuration options  I’d still be writing this post by Christmas. Needless to say this post just scratches the surface but hopefully provides some food for thought.</p>
<p>You  will or should have  have local resilience in your solution consisting of multiple application servers and web servers , clustered database servers and load balancers .</p>
<p>The easiest DR solution to implement but the  most costly  is to replicate this albeit with maybe not so many servers and perhaps a single Data base server instance  to  an alternative physical location and putting in place processes to replicate data across to the 2nd location .</p>
<p>This typical configuration will look something like this:</p>
<p><a href="http://devopscloud.files.wordpress.com/2011/06/std-dc-replicated.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="std dc replicated" src="http://devopscloud.files.wordpress.com/2011/06/std-dc-replicated_thumb.png?w=338&h=228" alt="std dc replicated" width="338" height="228" border="0" /></a></p>
<p>There are  plenty of variations on this but in the end it  entails physically maintaining a distinct location which replicates the application architecture and associated security controls . Resources need to be in place to support that location;  keep the components  updated regularly and all the usual best practises need to be acted upon to  validate the solution . It’s no point finding out the solution doesn&#8217;t’ work when you need it.</p>
<p>&nbsp;</p>
<p>At this point you should hopefully  be thinking that is a lot of investment for something that will only be rarely used . So here’s where AWS can help keep those costs down.</p>
<p>&nbsp;</p>
<p>The first model  which I’ve called the ‘halfway house’  may be an option for those who are unable to make use of the full AWS resources available and for whatever reason are unable or unwilling to store their data there . It still requires two maintained DC’s but saves costs by having the application and web servers for resilience being AWS instances. the cool thing here is that those resilient servers/instances are not actually operational unless needed ( you would have prepped AMI’s and hopefully use them in conjunction with a configuration management tool to ensure they are fully up to date when launched) .  You will not have  have the over head associated with watering &amp; feeding them that you would have if you were 100% responsible for the infrastructure. The core  AWS components that make this work are: EC2,VPC and ELB .  If you wanted there is also the potential to use Route 53 to manage the DNS aspects that are needed for routing externally .There are issues with this model though  such as the possibility of a lack of capacity when you need to spin up those instances ( although the use of Multiple AZ and regions should over come that fear), the over head associated with managing 3 sets of resources,latency issues just to name three that come to mind.</p>
<p>The ‘halfway house’   will look something  like this:</p>
<p>&nbsp;</p>
<p><a href="http://devopscloud.files.wordpress.com/2011/06/part-use-of-aws.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border-width:0;margin:0 auto;" title="Part use of AWS" src="http://devopscloud.files.wordpress.com/2011/06/part-use-of-aws_thumb.png?w=409&h=435" alt="Part use of AWS" width="409" height="435" border="0" /></a></p>
<p>Making use of AWS VPC means that you can create virtual networks built upon the AWS infrastructure which provides you with a great range of networking configurations for example  in the diagram above  I’ve show two  group of instances, one  that is externally accessible and another set that is basically an extension of your private LAN.  there are far too many scenarios possible with just these features of AWS and obviously every application is different ( See why I made sure this post was kept at a high level)</p>
<p>The  nirvana though to really seeing the costs tumbling  is to get rid of DC 2 and use AWS as the Recovery site. as a bonus it can be used for those extra processing needs as well on a demand basis . This not only reduces the support over head, saves cost as you are no longer committed to paying for a second location with all the associated kit necessary to make it a viable alternative site , but  it also provides a wide variety of failover and recovery options that you just won’t get when you have to commit to infrastructure up front ( hopefully that  pre-empts the question about why not a private cloud – you need your own platform).</p>
<p>This model which I’ve called the ‘Big Kahuna’ can look  a little like this :</p>
<p>&nbsp;</p>
<p><a href="http://devopscloud.files.wordpress.com/2011/06/big-khauna.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border-width:0;margin:0 auto;" title="big khauna" src="http://devopscloud.files.wordpress.com/2011/06/big-khauna_thumb.png?w=419&h=380" alt="big khauna" width="419" height="380" border="0" /></a></p>
<p>With the ‘Big Kahuna’ you should make use of any of the AWS resources available. In the flavour above I’m using S3 to store regular snapshots / transaction logs etc from my primary database. Why not replicate directly? Well s3 is cheap storage and in the scenario I’m illustrating as an example my RTO and RPO values allow some delay between failure and recovery that I can reconstruct the database when needed from the data stored in my s3 bucket . Regular reconstruction exercise should occur though as part of the regular validation of the failover processes. AMI’s and a configuration management solution ( As it’s me it will be chef) are used  to provision up to date application and web servers. Use is made of Route 53 to facilitate DNS management  and Where I need to ensure that traffic is kept internal I’m making use of VPC .</p>
<p>The introduction of RDS for oracle  means it is viable to use AWS as the failover solution for enterprises. There may be concerns over performance but this is a DR situation so if you are not in a position to reengineer for the cloud then when discussing with internal business sponsors discussions about reduced performance should be part of the business impact discussions.</p>
<p>AWS has services  such as dedicated instances which may be the only way your security and networking guys will allow you to exploit AWS resources but you would need to do your sums to see if it makes sense to do so. Personally I’d focus on trying to understand the ‘reasons’ for this . There are a number of valid areas this would be required but I suspect cost   isn’t really going to be any sort of driving force there.</p>
<p>The devil  is in  the detail when designing a failover solution utilising AWS as part of your DR . If you are planning for a new solution make sure you talk to the Software architect about the best practises when designing for the cloud it’s still applicable  for on premise solutions too .</p>
<p>Data is really where all the pain  points are  and will likely dictate the model and  ultimate configuration.</p>
<p>If you are trying to retro fit for an existing solution then the options open to you may not be that many and it’s likely you will have to start off with some form of the ‘halfway house’</p>
<p>Also don’t forget you can  just try stuff out at minimal cost. Wondering if a particular scenario would work just try it out as  you can just delete everything after you’ve tried it.</p>
<p>The cost effectiveness of the solution is directly related to the use you make of AWS resources to effect the solution. I even have a graph to illustrate ( @jamessaull would be proud of me) .</p>
<p>&nbsp;</p>
<p><a href="http://devopscloud.files.wordpress.com/2011/06/awsdr-graph.png"><img style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;padding-top:0;border:0;margin:0 auto;" title="awsdr graph" src="http://devopscloud.files.wordpress.com/2011/06/awsdr-graph_thumb.png?w=411&h=246" alt="awsdr graph" width="411" height="246" border="0" /></a></p>
<p>This graph is based on very rough comparative costs from starting off with no AWS resources as in the first situation I started discussing and working my way down through to the ‘Big Kahuna’. You can easily do your own sums .AWS pricing is on their site they even provide you with a calculator  and you know how much it costs for those servers, licences, networking hardware,hardware maintenance costs support etc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=192&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/06/09/using-aws-for-dr-when-your-solution-is-not-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/06/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/06/std-dc-replicated_thumb.png" medium="image">
			<media:title type="html">std dc replicated</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/06/part-use-of-aws_thumb.png" medium="image">
			<media:title type="html">Part use of AWS</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/06/big-khauna_thumb.png" medium="image">
			<media:title type="html">big khauna</media:title>
		</media:content>

		<media:content url="http://devopscloud.files.wordpress.com/2011/06/awsdr-graph_thumb.png" medium="image">
			<media:title type="html">awsdr graph</media:title>
		</media:content>
	</item>
		<item>
		<title>How to deal with the &#8216; I want no downtime response.&#8217;</title>
		<link>http://devopscloud.net/2011/06/08/how-to-deal-with-the-i-want-no-downtime-response/</link>
		<comments>http://devopscloud.net/2011/06/08/how-to-deal-with-the-i-want-no-downtime-response/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 14:03:03 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Resilience]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/2011/06/08/how-to-deal-with-the-i-want-no-downtime-response/</guid>
		<description><![CDATA[With a little time between jobs and with having to dodge the rain  I found myself thinking about some stuff I’ve not really given a lot of deep thought recently so here’s the first of a couple of posts on Resiliency when applied to non cloudy solutions. I recall numerous occasions where I would design [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=179&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">With a little time between jobs and with having to dodge the rain  I found myself thinking about some stuff I’ve not really given a lot of deep thought recently so here’s the first of a couple of posts on Resiliency when applied to non cloudy solutions.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">I recall numerous occasions where I would design a highly resilient solution that would provide as many 9’s as I’d dare to commit to only for the proposal to be back on my desk some weeks later with the words too expensive where can we save money on it?</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">The main reason I would come up across this is that I would ask the Business Sponsor two key questions related to Disaster recovery as part of the business Impact analysis:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:#000000;"> What is their RTO? </span><span style="color:#000000;">  <span style="color:black;">Recovery Time Objective</span></span><span style="color:black;"> </span><span style="color:black;">- The duration of time from point of failure within which a</span><span style="color:black;"> business process must</span><span style="color:black;"> be restored after a disaster or disruption. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:black;">What is their RPO?   Recovery Point Objective &#8211; Acceptable amount of data loss measured in time</span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:black;"><span style="font-size:small;"><span style="font-family:Calibri;">These two questions would inevitably elicit the response no data loss and restore service as quickly as possible, so I would go  off and design a platform to get as close to those unattainable desires. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span style="color:black;">I soon learnt that a different approach was needed to prevent the paper bounce game.  E</span><span style="color:#000000;">ventually coming up with  gold, silver and bronze Resiliency options as part of the platform proposal . We would include what we felt were viable Resiliency options graded according to arbitrary RTO &amp; RPO levels and the associated costs to deliver on those.  </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">This at least then meant the Business sponsor had somewhere to start from in terms of a monetary value  and  could see that wanting the Gold standard was going to cost them loads  more than if they really thought it through . This got them thinking about what they really wanted in terms of RTO and RPO and we would then discuss what options were open to them.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="color:#000000;"><span style="font-family:Calibri;"> For example does the accounting system need to be restored within 2 hrs with less than half an hour’s loss of data? In my experience it’s  only at month end processing  this level of recovery is really needed.  During the majority of the month data is held elsewhere so can be easily recreated, the months accounts file is still open so this isn’t an issue  in terms of processing. Is anyone working on the system at weekends?  This is the sort of thought process that the Business needs to go through when requesting new systems and trying to figure out what they want in terms of resiliency. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="color:#000000;"><span style="font-family:Calibri;"> When faced with stark questions about RTO’s and RPO’s the natural response is I want my system to be totally resilient with no downtime they have no idea what this means in terms of resource and thus potential cost so why not save time by giving them some options . You may be lucky and one of the options will be an exact fit but if not the Sponsor has an idea of what it costs to provide their all singing all dancing requirements.  It’s more likely they will say something like “The Silver option may do but we need an enhanced level of support at month end ” or  maybe something like “we need to make sure we have a valid tested backup from the previous night at month end “.</span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">The beauty of this approach  is that straight away you’ve engaged them in conversation and prevented a paper bounce . It’s not a new approach and one service teams are used to when dealing with external suppliers but there is no reason not to use the same methods with internal requests.</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=179&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/06/08/how-to-deal-with-the-i-want-no-downtime-response/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>CloudFormation deletion policies an important addition</title>
		<link>http://devopscloud.net/2011/06/01/cloudformation-deletion-policies-an-important-addition/</link>
		<comments>http://devopscloud.net/2011/06/01/cloudformation-deletion-policies-an-important-addition/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 11:21:04 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloudformation]]></category>

		<guid isPermaLink="false">http://devopscloud.net/?p=173</guid>
		<description><![CDATA[The CloudFormation team made   a forum announcement   on the 31st may  detailing the latest enhancements .  In the list was the feature I’d been waiting on which was the introduction of  resource deletion policies.  Up until the introduction of this feature I had been loath to use CloudFormation to create certain resources  . Why was I concerned [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=173&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The CloudFormation team made   a <a title="CloudFormation New Features" href="https://forums.aws.amazon.com/ann.jspa?annID=1038">forum announcement   on the 31<sup>st</sup> may</a>  detailing the latest enhancements .  In the list was the feature I’d been waiting on which was the introduction of  resource deletion policies.  Up until the introduction of this feature I had been loath to use CloudFormation to create certain resources  .</p>
<p>Why was I concerned well it boils down to the fact we are subject to human error really. You can just imagine the poor person who makes the decision to remove a stack for valid reasons  such as  they were doing rolling upgrades so have brought up a replacement stack and want to remove the existing stack but have forgotten about the fact that when they deployed their  original stack oh so many months ago this also created their initial database infrastructure ( I’m using RDS  to illustrate the point here but it could have just as easily have been a NOSQL deployment on an ec2 instance) and it would be goodbye all my data.</p>
<p>So how does it work.</p>
<p>The DeletionPolicy is an attribute that you can add to the creation of your resources which basically tells CloudFormation how to handle the deletion of that resource. The default behaviour is to just delete it.</p>
<p>The three states that a DeletionPolicy can have are:</p>
<p>Delete – which is the default behaviour but it may be prudent to add this attribute as part of your self documentation  to all your resources</p>
<p>Retain  &#8211; This directs CloudFormation to keep the resource and any associated data/content after stack completion</p>
<p>The above two states are applicable to any resource .</p>
<p>Snapshot –This is only applicable for resources that support snapshots namely EBS volumes and RDS. The actual resource will be deleted but the snapshots will exist after the Stack has been deleted</p>
<p>A quick mention of some of the other new features released that have caught my eye :</p>
<p>Parameter validation pretty self evident why this was must have feature <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Wait condition – This provides the ability to pause the stack creation until some predefined action or time out has occurred. This could be used as an example to  fully automate the creation of a master slave set up where the master IP address say is needed to allow the slaves to join the party</p>
<p>Ability to create S3 buckets and S3 hosted websites –   I love the idea of creating your S3 hosted website via a  simple script</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=173&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/06/01/cloudformation-deletion-policies-an-important-addition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>An aide-m&#233;moire on monitoring using CloudWatch &amp; CloudFormation on AWS</title>
		<link>http://devopscloud.net/2011/05/25/an-aide-mmoire-on-monitoring-using-cloudwatch-cloudformation-on-aws/</link>
		<comments>http://devopscloud.net/2011/05/25/an-aide-mmoire-on-monitoring-using-cloudwatch-cloudformation-on-aws/#comments</comments>
		<pubDate>Wed, 25 May 2011 14:50:19 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[Auto Scaling]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloudformation]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Monitoring]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/2011/05/25/an-aide-mmoire-on-monitoring-using-cloudwatch-cloudformation-on-aws/</guid>
		<description><![CDATA[It can be confusing when it comes to setting up the auto scaling rules , alarms and load balancing  health checks so I wanted to take a little time to look at  how to fit the bits  together to get an effective proactive monitoring solution by just using CloudWatch. Sorry this is a longish post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=167&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">It can be confusing when it comes to setting up the auto scaling rules , alarms and load balancing  health checks so I wanted to take a little time to look at  how to fit the bits  together to get an effective proactive monitoring solution by just using CloudWatch. Sorry this is a longish post but at least it&#8217;s in one place <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;"> AWS does provide a lot of information but there is a lot of it scattered about and wading through it can be time consuming but hopefully this will be a useful introduction . </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">A few definitions is a good place to start </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Definitions </span></span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Alarms: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">An alarm is exactly what it says. They are watchers that provide notifications that an AWS  resource has breached one of the thresholds that have been assigned against a specific metric.  (Note you are now able to expose custom metrics as well as CloudWatch metrics and use these for Auto Scaling actions as well). </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Health checks: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">A health check is a check on the state of an instance which is part of an Auto Scaling group. If an instance is detected as having degraded performance  it is marked as unhealthy </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Auto Scaling Policy: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">A policy defines what action the AutoScaling group should take in response to an alarm. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Triggers: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">A trigger is a combination of an Auto Scaling policy and an Amazon CloudWatch alarm. Alarms are created that monitor specific metrics gathered from EC2 instances. Pairing the alarm with a policy can initiate an Auto Scaling action when the metric breaches a specific threshold. </span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">Launch Configuration: </span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">The definitions (Parameters) needed to instantiate new ec2 instances. These will include values like what AMI to use, the instance size, user data to be passed, EBS volumes to be attached. A Launch configuration is used together with an Auto Scaling group. An Auto Scaling group can only have one Launch Configuration attached to it at any one time but you can replace the Launch configuration. </span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">AutoScaling Group: </span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">An Autoscaling group manages a set of 1 or more  instances. It works in conjunction with a   launch configuration and triggers to enact scaling actions. The Launch configuration tells it what the instances should look like and the triggers tell it how to react to particular situations. </span></span></p>
<p><span style="font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="line-height:115%;color:black;font-size:10pt;"><span style="font-family:Calibri;">Component breakdown </span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Alarm Parameters: </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:104.65pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Parameter </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:283.05pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Description </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:74.4pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Example Value </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Alarm name </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name that  typically reflects what the alarm is watching </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">CPUHighAlarm </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Alarm Action </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">An SNS notification or autoscaling policy </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99"><span style="color:#000000;font-family:Calibri;"> </span></td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Metric Name </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The metric being monitored e.g CPU or memory usage </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">CPUUtilization </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Statistic </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Metric data aggregations collected  over a  specified period of time </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Average </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Period </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:#000000;"><span style="font-size:10pt;">Length of time associated with a specific statistic. </span><span style="color:black;"><span style="font-size:small;"> </span></span></span><span style="color:black;font-size:10pt;">periods are expressed in seconds, the minimum granularity for a period is one minute period values are expressed  as multiples of 60</span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">60 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Evaluation Period </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:black;font-size:10pt;">The number of periods over which data is compared to the specified threshold</span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">1 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Threshold </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The value that the metric is being evaluated against </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">30 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">ComparisonOperator </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="simpara" style="margin:0 0 12pt;"><span style="font-family:&quot;color:black;font-size:10pt;">The operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Valid Values:</span></p>
<p class="simpara" style="margin:0 0 12pt;"><span style="font-family:&quot;color:black;font-size:10pt;">GreaterThanorEqualToThreshold</span></p>
<p class="simpara" style="margin:0 0 12pt;"><span style="font-family:&quot;color:black;font-size:10pt;">GreaterThanThreshold </span></p>
<p class="simpara" style="margin:0 0 12pt;"><span style="font-family:&quot;color:black;font-size:10pt;">LessThanThreshold</span></p>
<p class="simpara" style="margin:0 0 12pt;"><span style="font-family:&quot;color:black;font-size:10pt;">LessThanorEqualToThreshold</span></p>
<p class="simpara" style="margin:0 0 12pt;">
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">GreaterThanThreshold </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Dimensions </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:283.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="377">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name Value pairs that  provide additional information  to allow you to uniquely identify a metric </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:74.4pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="99"><span style="color:#000000;font-family:Calibri;"> </span></td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Health check Parameters: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The Healthiness of your instance is used by AutoScaling to trigger the termination of an instance</span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:104.65pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Parameter </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:262.25pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Description </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:95.2pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Example Value </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Healthy Threshold </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:262.25pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Number of consecutive health check successes before declaring an instance healthy </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:95.2pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">5 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Unhealthy Threshold </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:262.25pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Number of consecutive health check failures before declaring an instance unhealthy </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:95.2pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">2 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Interval </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:262.25pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The interval in seconds  between successive health checks </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:95.2pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">120 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Timeout </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:262.25pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Amount of time in seconds during which  no response indicates a failed health check. This value must be less than the interval value </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:95.2pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">60 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:104.65pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="140">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Target </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:262.25pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="350">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">TCP or HTTP check against an instance.  This  is used to determine the health of an instance </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="font-size:10pt;"><span style="color:#000000;">For a HTPP check <span style="color:black;">- </span></span></span><span style="color:black;"><span style="font-size:small;"> </span></span><span style="color:black;font-size:10pt;">Any answer other than &#8220;200 OK&#8221; within the timeout period is considered unhealthy </span></span></p>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">For a TCP check -<span style="color:black;">- Attempts to open a TCP connection to the instance on the specified port. Failure to connect within the configured timeout is considered unhealthy </span></span></span></span></p>
<p><span style="color:#000000;font-family:Calibri;"> </span></td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:95.2pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="127">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">HTTP:80/home/index.html </span></span></p>
<p><span style="font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:black;font-size:10pt;">TCP:8080 </span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Trigger Parameters: </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:154pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Parameter </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:154.05pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Description </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:154.05pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Example Values </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Metric name </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205"><span style="color:#000000;font-family:Calibri;"> </span></td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">CPUUtilization </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name Space </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Conceptual containers for metrics . Ensures that metrics in different names spaces are isolated from each other </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AWS/EC2 </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AWS/AutoScaling </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AWS/EBS </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AWS/RDS </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AWS/ELB </span></span></span></p>
<p><span style="color:#000000;font-family:Calibri;"> </span></td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Statistic </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Metric data aggregations collected  over a  specified period of time </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Average </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Minimum </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Maximum </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">sum </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Period </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:#000000;"><span style="font-size:10pt;">Length of time associated with a specific statistic. </span><span style="color:black;"><span style="font-size:small;"> </span></span></span><span style="color:black;font-size:10pt;">periods are expressed in seconds, the minimum granularity for a period is one minute period values are expressed  as multiples of 60</span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">300 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Unit </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The statistics unit of measurement </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Percent , bytes, seconds etc depends on metric being measured </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Upper Breach Scale increment </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The incremental amount to scale by when the upper threshold has been breached </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">1 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Lower Breach Scale increment </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The incremental amount to scale by when the upper threshold has been breached </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">-1 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Auto Scaling Group name </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name of the AutoScaling group the trigger is attached to </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">WebServerGroup </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Breach Duration </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Period that defines how long the breach duration can occur for before it triggers an action </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">500 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Upper Threshold </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:black;font-size:10pt;">The upper limit of the metric . The trigger fires if all data points in the last BreachDuration period  exceeds the upper threshold or falls below the lower threshold</span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">90 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Lower Threshold </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-family:Calibri;"><span style="color:black;font-size:10pt;">The lower  limit of the metric . The trigger fires if all data points in the last BreachDuration period  falls below the lower threshold or exceeds the upper threshold</span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">20 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Dimension </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name Value pairs that  provide additional information  to allow you to uniquely identify a metric </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name:AutoScalingGroup </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Value:WebServerGroup </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name:Webserver </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Value:ProductionServer </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Auto Scaling Group Parameters </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:154pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Parameter </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:154.05pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Description </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;width:154.05pt;border-left-color:#f0f0f0;border-top:windowtext 1pt solid;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Example Values </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">AvailabilityZones </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The availability zones that are available for the group to start an instance in </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Eu-west-1a, eu-west-1c </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">CoolDown </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The time in seconds after one scaling action completes before another scaling activity can start </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">60 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">DesiredCapacity </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Specifies the  number of instances the auto scaling group will endeavour to maintain </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">2 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">LaunchConfigurationName </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The name of the associated Launch Configuration </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">LaunchMyInstances </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">LoadBalancerName </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Name of Load Balancer Auto Scaling group attached to . </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">LoadBalancerforMyInstances </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">MaxSize </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Maximum number of instances that the Auto Scaling Group can have associated with it </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">3 </span></span></span></p>
</td>
</tr>
<tr>
<td style="border-bottom:windowtext 1pt solid;border-left:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154pt;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">MinSize </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Minimum number of instances that the Auto Scaling group  will have associated with it </span></span></span></p>
</td>
<td style="border-bottom:windowtext 1pt solid;background-color:transparent;border-top-color:#f0f0f0;width:154.05pt;border-left-color:#f0f0f0;border-right:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="205">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">1 </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">A policy definition: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Policies are usually paired one for scaling up and one for scaling down. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">To create a policy that scales down by 1  from the command line: </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;"># When scaling down, decrease capacity by 1 </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">%as-put-scaling-policy my-group &#8211;name &#8220;scale-down&#8221; </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">&#8211;adjustment -1 &#8211;type Absolute </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">To list policies from the command line to get the ARN : </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">as-describe-policies autoscaling-group </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">  </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Putting it all together </span></span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">So now we know what  the components are and the  associated parameters are  that can be used to be put together an appropriate monitoring solution using CloudWatch .  To illustrate how to start putting things together I’ll use CloudFomation. You can use the Command line tools and the console to do much of what comes next. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Using Alarms: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;"><span style="line-height:115%;font-size:10pt;"><span style="font-family:Calibri;">Metrics can be collated for EC2 instances, ELB’s, EBS volumes ,RDS and  the flexibility to use custom metrics </span></span><span style="line-height:115%;font-family:wingdings;font-size:10pt;">J</span></span><span style="line-height:115%;font-size:10pt;"><span style="font-family:Calibri;"><span style="color:#000000;">. Alarms can be set for any one of these metrics. Alarms exist in 3 states </span><span style="color:black;">OK, ALARM, or INSUFFICIENT_DATA. When a metric breaches a predetermined threshold it is set to the ALARM state. On transition from one state to another an alarm action can be set.  The defined alarm action can be publication to an SNS notification topic or an auto scaling action.  Using CloudFormation snippets to illustrate setting up an alarm that monitors when CPU utilisation breaches a defined  threshold or the metrics disappear with the defined action being publication to an SNS topic that sends an email: </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">&#8220;AlarmTopic&#8221; : { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      &#8220;Type&#8221; : &#8220;AWS::SNS::Topic&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      &#8220;Properties&#8221; : { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Subscription&#8221; : [ { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">          "Endpoint" : { "Ref" : "OperatorEmail" }, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">          "Protocol" : "email" </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        } ] </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      } </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">    } </span></span></p>
<p><span style="font-family:Calibri;"> </span></td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;"> </span></p>
<p><span style="font-family:Calibri;"> </span></p>
<p><span style="font-family:Calibri;"> </span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">&#8220;CPUAlarmHigh&#8221; : { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      &#8220;Type&#8221; : &#8220;AWS::CloudWatch::Alarm&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      &#8220;Properties&#8221; : { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;AlarmDescription&#8221; : &#8220;Alarm if CPU too high or metric disappears indicating instance is down&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;AlarmActions&#8221; : [ { "Ref" : "AlarmTopic" } ], </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;InsufficientDataActions&#8221; : [ { "Ref" : "AlarmTopic" } ], </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;MetricName&#8221; : &#8220;CPUUtilization&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Namespace&#8221; : &#8220;AWS/EC2&#8243;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Statistic&#8221; : &#8220;Average&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Period&#8221; : &#8220;60&#8243;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;EvaluationPeriods&#8221; : &#8220;1&#8243;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Threshold&#8221; : &#8220;90&#8243;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;ComparisonOperator&#8221; : &#8220;GreaterThanThreshold&#8221;, </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        &#8220;Dimensions&#8221; : [ { </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">          "Name" : "AutoScalingGroupName", </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">          "Value" : { "Ref" : "AppServerGroup" } </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">        } ] </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">      } </span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="color:black;font-size:10pt;"><span style="font-family:Calibri;">    } </span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;"> </span></p>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Using Auto Scaling Groups and Load Balancers: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">This snippet describes an Auto Scaling group that will at any one time manage between 1 or 3 instances while endeavouring to maintain 2 instances. </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">&#8220;AppServerGroup&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Type&#8221; : &#8220;AWS::AutoScaling::AutoScalingGroup&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Properties&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;AvailabilityZones&#8221; : { &#8220;Fn::GetAZs&#8221; : &#8220;&#8221;}, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;LaunchConfigurationName&#8221; : { &#8220;Ref&#8221; : &#8220;AppServerLaunchConfig&#8221; }, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;MinSize&#8221; : &#8220;1&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;MaxSize&#8221; : &#8220;3&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        “DesiredCapcity” :”2”, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;LoadBalancerNames&#8221; : [ { "Ref" : "AppServerLoadBalancer" } ] </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    }, </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">In the snippet above the Auto Scaling group has an associated Launch Configuration which is mandatory for an Auto Scaling group. It is also associated with a Load Balancer which we’ll come to in a minute. In the alarm example you may have noted in the Dimensions Parameters   that it refers to the Auto Scaling group above. This configuration has an alarm monitoring the state of the instances that are managed by the Auto Scaling group. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The LoadBalancer associated with the Auto Scaling group described above looks like : </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">&#8220;AppServerLoadBalancer&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    &#8220;Type&#8221; : &#8220;AWS::ElasticLoadBalancing::LoadBalancer&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    &#8220;Properties&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;AvailabilityZones&#8221; : { &#8220;Fn::GetAZs&#8221;: { &#8220;Ref&#8221;: &#8220;AWS::Region&#8221;} } , </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Listeners&#8221; : [ { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">            "LoadBalancerPort" : "80", </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">            "InstancePort" : {"Ref": "TomcatPort"}, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">            "Protocol" : "HTTP" </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        } ], </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">       &#8220;HealthCheck&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          &#8220;Target&#8221; : { &#8220;Fn::Join&#8221; : [ "", ["HTTP:", { "Ref" : "TomcatPort" }, "/welcome"]]}, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          &#8220;HealthyThreshold&#8221;: &#8220;5&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          &#8220;Timeout&#8221;: &#8220;5&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          &#8220;Interval&#8221;: &#8220;30&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          &#8220;UnhealthyThreshold&#8221;: &#8220;2&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">                                  &#8220;Target&#8221;: {&#8220;Fn::Join&#8221;: ["",[ "HTTP:",{"Ref": "TomcatPort"},"/welcome"]]} </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">           } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">       </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    }, </span></span></span></p>
<p><span style="color:#000000;font-family:Calibri;"> </span></td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">The Load balancer has been defined with Health checks which in this example does a HTTP check. This check will mark an instance as having had a failed Health check if it does not receive a “200 OK” within 30 seconds . If this happens in consecutive checks the instance is marked as unhealthy. The instance needs to have successfully responded with a  “200 Ok”  5 times in succession to be marked as healthy. The combination of intervals and Thresholds determines how long an instance is technically responding so in theory you could have an unhealthy instance trying to respond for a period of time until it meets the criteria to be marked as unhealthy </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">You can also associate alarms with the Load Balancer as  in the snippet below  where an alarm  has been defined that notifies you if there are too many unhealthy hosts : </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">&#8220;TooManyUnhealthyHostsAlarm&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Type&#8221; : &#8220;AWS::CloudWatch::Alarm&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Properties&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;AlarmDescription&#8221; : &#8220;Alarm if there are too many unhealthy hosts.&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;AlarmActions&#8221; : [ { "Ref" : "AlarmTopic" } ], </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;InsufficientDataActions&#8221; : [ { "Ref" : "AlarmTopic" } ], </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;MetricName&#8221; : &#8220;UnHealthyHostCount&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Namespace&#8221; : &#8220;AWS/ELB&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Statistic&#8221; : &#8220;Average&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Period&#8221; : &#8220;60&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;EvaluationPeriods&#8221; : &#8220;1&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Threshold&#8221; : &#8220;0&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;ComparisonOperator&#8221; : &#8220;GreaterThanThreshold&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        &#8220;Dimensions&#8221; : [ { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          "Name" : "LoadBalancerName", </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          "Value" : { "Ref" : "AppServerLoadBalancer" } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">        } ] </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">                  </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">   },           </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Triggers and Auto Scaling Policies: </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;"> We’ve looked at defining alarms that on a change of state publish to an SNS topic now as the last part of this post we’ll have a look at how to effect an Auto Scaling action. This can be achieved by using a trigger or by using an AutoScaling policy. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;"> Triggers when defined are very similar to Alarms but with extra Auto Scaling polices incorporated </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">In the snippet below a Trigger is defined that monitors the average CPU utilization for the ec2 instances managed by the Auto Scaling group. </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">&#8220;CPUBreachTrigger&#8221; : { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Type&#8221;: &#8220;AWS::AutoScaling::Trigger&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      &#8220;Properties&#8221;: { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;AutoScalingGroupName&#8221;: { &#8220;Ref&#8221;: &#8220;AppServerGroup&#8221; }, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;Dimensions&#8221;: [ </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          { </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">            "Name": "AutoScalingGroupName", </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">            "Value": { "Ref": "AppServerGroup" } </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">          }],         </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;MetricName&#8221;: &#8220;CPUUtilization&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;Namespace&#8221;: &#8220;AWS/EC2&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;Period&#8221;: &#8220;60&#8243;,         </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;Statistic&#8221;: &#8220;Average&#8221;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;UpperThreshold&#8221;: &#8220;90&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;LowerThreshold&#8221;: &#8220;20&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;BreachDuration&#8221;: &#8220;120&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;UpperBreachScaleIncrement&#8221;: &#8220;1&#8243;, </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">         &#8220;LowerBreachScaleIncrement&#8221;: &#8220;-1&#8243; </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">      }      </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">    }, </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">In the example snippet If the average CPU utilization breaches the upper or lower threshold the trigger and this breach is sustained for 120 seconds the autoscaling group will scale up or down  by 1 instance accordingly. </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">Having defined a set of  Auto Sscaling policies via the command line as described earlier in this post the policy can  apparently  be referenced by an alarm using its’ ARN  as it its action on changing state . Although I was unable to figure out how you could do this via CloudFormation as you cannot create an autoscaling  policy that is not attached to an auto scaling group and you cannot create a standalone policy that can be attached later. So as things stand today  to do this via the command line would require creating the Auto Scaling group and then  using a command similar to  the below to  attach the policy: </span></span></span></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="background-color:transparent;width:462.1pt;border:windowtext 1pt solid;padding:0 5.4pt;" valign="top" width="616">
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;"># When scaling up, increase capacity by 1 </span></span></span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;"><span style="font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">C:\&gt; as-put-scaling-policy AppServerGroup  &#8211;name &#8220;scale-up&#8221;   &#8211;adjustment  1 &#8211;type Absolute </span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="color:#000000;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="line-height:115%;font-size:10pt;"><span style="color:#000000;"><span style="font-family:Calibri;">I am hoping the ability to create Auto Scaling policies as part of  a  CloudFormation template will be added as future functionality to the CloudFormation API </span></span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=167&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/05/25/an-aide-mmoire-on-monitoring-using-cloudwatch-cloudformation-on-aws/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>A   few observations on the NIST DRAFT Cloud Computing Synopsis and Recommendations</title>
		<link>http://devopscloud.net/2011/05/18/a-few-observations-on-the-nist-draft-cloud-computing-synopsis-and-recommendations/</link>
		<comments>http://devopscloud.net/2011/05/18/a-few-observations-on-the-nist-draft-cloud-computing-synopsis-and-recommendations/#comments</comments>
		<pubDate>Wed, 18 May 2011 15:59:47 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[guidelines]]></category>
		<category><![CDATA[NIST]]></category>

		<guid isPermaLink="false">http://devopscloud.net/?p=162</guid>
		<description><![CDATA[NIST have produced a   DRAFT Cloud Computing Synopsis and Recommendations. draft The draft presents an overview of major classes of cloud technology, and provides guidelines and recommendations on how organisations  should consider the relative opportunities and risks of cloud computing. Firstly by Organisations I’m sure they really mean US Governmental Depts and by association companies [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=162&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>NIST have produced a<a href="https://docs.google.com/viewer?url=http%3A%2F%2Fcsrc.nist.gov%2Fpublications%2Fdrafts%2F800-146%2FDraft-NIST-SP800-146.pdf" target="_blank">   DRAFT Cloud Computing Synopsis and Recommendation</a>s. draft</p>
<p>The draft presents an overview of major classes of cloud technology, and provides guidelines and recommendations on how organisations  should consider the relative opportunities and risks of cloud computing.</p>
<p>Firstly by Organisations I’m sure they really mean US Governmental Depts and by association companies providing services to them. I thought it worth a close scrutiny as a result</p>
<p>The document starts off with definitions of types of clouds and  service models where they note that IaaS type services are more portable .  Personally I  think these definitions are a little outdated as he blurring of lines makes them redundant.  With the introduction of ‘Bring your own PaaS / containerised PaaS’ this statement does not stand up to close inspection.</p>
<p>I’ve only got to page 10 of a 84 page document and already I have serious concerns of the applicability of this document but whatever I’ll move on.</p>
<p>Under the Commercial terms of service section this covers Promises (SLAs) , Limitations, End user obligations</p>
<p>SLA’s Nothing new here basically you get SLA’s that promise certain levels of avialbilty, compensation for failure to perform, Data protection and Legal care of subscriber information with anything not just cloud services . Same observation with the limitations section. The recommendations are due diligence recommendations which you’d so anyway regardless of what services you were engaging cloud or not. The only interesting item in this section is this statement:</p>
<p><strong><em>“Negotiated SLA. </em></strong><em>If the terms of the default SLA do not address all subscriber needs, the subscriber </em><em>Should discuss modifications of the SLA with the provider prior to use.” </em></p>
<p>Making modifications to SLA’s for commodity computing resources which the public cloud provides will I suspect be one conversation that will take too long and probably with no acceptable outcome unless the supplier is willing to ring fence resources and can  really can provide a superior service on request.</p>
<p>I do however love the section on General Cloud environments it cuts right to the chase with it’s opening paragraph:</p>
<p><em>Many individuals and organizations have made general statements about cloud computing, its advantages, and its weaknesses. It is important to understand, however, that the term </em><em>&#8220;cloud computing&#8221; encompasses a variety of systems and technologies as well as service and deployment models, and business models. A number of claims that are sometimes made about cloud computing, e.g., that it &#8220;scales&#8221;, or that it converts capital expenses to operational expenses, are only true for some kinds of cloud systems</em>.</p>
<p>Pretty much telling you to do your homework and not listen to the Marketing claims.</p>
<p>This section is actually quite good reading and I feel will be seen as controversial for some.</p>
<p>It describes as well as I’ve seen it done the  general cloud environment concepts such a public, private, hybrid .   It should also help alleviate the fear from some quarters of the IT department re their relevance as it points out you will still need IT skills. Yes that is obvious but it needs stating as this message is not coming across with all the marketing and we need to get rid of the FUD.</p>
<p>The statement about the significant to high costs to migrate to the cloud  plus the limitations on scalability using the onsite private model will be an interesting one for ‘Private Cloud’ suppliers to negotiate when faced with this. Interestingly enough an outsourced ‘Private Cloud’ is seen as having moderate to significant costs to migrate to the cloud and more flexibility in terms of scaling.</p>
<p>The community cloud model I’ve struggled with as a concept but I’ve started to appreciate where it can apply such as Colleges and educational institutes and charities but I still would look at the public cloud model first (That’s a discussion for another day though) .</p>
<p>The section on the public Cloud I feel is  out of date and lacking in detail. The generalisations made here are not applicable to certain providers and types of cloud solutions. When they talk about the private cloud it’s different as they are the assets of the organisation so it’s possible within limits to lump them altogether. As an example of my issues with this section is the statement on the risks of multi tenancy and removal of data. I for one have come across inappropriate data removal processes with Traditional Data Centre hosted solutions so this concern isn’t a new one and shouldn’t be presented as such. The security of the public cloud in many cases will far exceed that found on premise and with the maturity of some providers lessons have been learnt and controls are in place to mitigate perceived risks around the use of multi tenancy. The public cloud migration to the cloud gets a low up front cost rating. This makes sense as there is no initial capital investment unlike the ‘private’ model flavours.</p>
<p>The document then goes onto to look at other cloud environments which is where I feel it struggles and it is already out of date.</p>
<p>The SaaS model is obviously well understood after all it has been around a while and the depth of detail and relative lack of concerns voiced reflects this. Note the statement on Data Deletion says<strong> <em>“</em></strong><em>Require that cloud providers offer a mechanism for reliably deleting data on a subscriber&#8217;s request</em>” where as in the Public cloud described in the General Cloud environment the tone is one that reflects more concern “<em>As an example of this limitation, a subscriber cannot currently verify that data has been completely deleted from a provider&#8217;s systems” </em></p>
<p>Unfortunately the PaaS section is woefully out of date , quite abstract and does not take into account the newer players on the market like CloudFoundary and OpenShift or even at a stretch Elastic Beanstalk from AWS. To make matters worse Microsoft’s Azure doesn’t even fit their definition because of all the work involved with using their VM Role. If you look at a statement in the benefits section you can see what I mean</p>
<p>“<em>PaaS providers are able to</em> <em>Manage the lower layers and relieve PaaS subscribers of the responsibility for selecting, installing,maintaining, or operating the platform components. Infrastructure charges are implicitly present in PaaS offerings because PaaS consumes infrastructure resources in some form, but the infrastructure charges are bundled in the rates charged for the PaaS execution environment resources (e.g., CPU, bandwidth,storage).”</em></p>
<p>This is the case with Microsoft Azure but if you use say  use OpenShift this is not the case as you are responsible for ( As much as I hate using the terms PaaS and IaaS  it fits here) the underlying IaaS that the PaaS container needs to run on if you decide to use a non multi tenanted  flavour. The lack of portability section is also not right as in theory you can now with containerised PaaS move your application from one cloud to another if you are using the right set of building blocks  e.g mongodb , mysql or even take your PaaS container with you. This section is just plain inappropriate I could go on and on here but I still have another 40 pages to go .</p>
<p>The IaaS section has nice description about hypervisors though but the scope of control diagram will only apply to those providers who stick purely to the model described so AWS will not fall into this camp.</p>
<p>What I found odd when reading this though was the relatively appropriate recommendations for considering  these specific models which  didn’t quite sit well with the public cloud recommendations they inevitable go with. That will confuse I reckon.</p>
<p>Many of the issues outlined in the Open Issues section I also found odd as  most are not specific to Cloud computing. Latency is a concern wherever an application is hosted and when designing for the cloud measures to mitigate against latency should be taken into account. One thing you can do is place your clients closer by putting them into the cloud too just a thought plus the fact we are all getting used to the whole latency issue what with  the ever moving march of technology introducing gadgets like smartphones  etc . Network dependencies well I don’t even know where to start with this one every organisation experiences some sort of outage during the course of their business and there is a fundamental reliance on the network cloud or not.</p>
<p>My recommendation would have been look at you internal uptime and reliability, ask yourself how do you scale today when you need extra compute power  and then use these answers  when making decisions.</p>
<p>The problem with generalisations is the very fact they are generalisations.</p>
<p>I do like the concept of having a  standard format for SlA’s which could be use in competitive tenders as I have spent far too much time in the past comparing SLA’s etc. The problem with this though is that no cloud providers are alike in what services they offer.  Whereas if you’re looking for a traditional Data centre hoster it’s easy to compare that isn’t so easy today. Nice idea though.</p>
<p>The portability of workloads is I feel over stated it’s a matter of design if you want absolute portability then don’t use any of the non portable features which will mean you have to expend effort in not doing so and you really do need to think if that makes sense not to take advantage of what are some pretty cool albeit specific to a particular providers service. You could save development time , get access some awesome availability &amp; durability services by deciding not to be ‘totally’ portable but have an exit strategy if you have to.</p>
<p>If you are just using Virtual machines there are already providers who provide the technology to allow you to migrate across clouds so the interopabilty between clouds is another out of date statement.</p>
<p>The other concerns seem to be all to be standard due diligence statements which the established Cloud providers have already addressed in some form or other. I was interested in the support  forensics one ( just because of my interest in It Security).</p>
<p>There are some typical costs included  which I find a strange thing to put in as it really does depend on what you are going to do . There is also an appendix covering roles and responsibilities.</p>
<p>This May have a ‘May 2011’ date on it but it is out of date already and manages to not really understand the market place. It does however have a good description of general cloud models but once it starts talking about SaaS, PaaS and IaaS it is on woollier ground as the market isn’t that clear cut anymore. The disjoin between the General cloud environments and the specific cloud models sections  is confusing. I would  hope that this draft is revisited soon to make it a more relevant guideline else there are going to be some long drawn out difficult conversations if this is where organisations start their journey to the cloud from.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=162&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/05/18/a-few-observations-on-the-nist-draft-cloud-computing-synopsis-and-recommendations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
		<item>
		<title>Loosely coupled Chef Cookbooks</title>
		<link>http://devopscloud.net/2011/05/14/loosely-coupled-chef-cookbooks/</link>
		<comments>http://devopscloud.net/2011/05/14/loosely-coupled-chef-cookbooks/#comments</comments>
		<pubDate>Sat, 14 May 2011 13:51:11 +0000</pubDate>
		<dc:creator>Grace Mollison</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[mongodb]]></category>

		<guid isPermaLink="false">https://devopscloud.wordpress.com/2011/05/14/loosely-coupled-chef-cookbooks/</guid>
		<description><![CDATA[I’ve been working on a mongodb installation and configuration cookbook which allows me to install &#38;  if required make custom configurations . It allows me to Install and configure a standalone mongodb installation or a replica set. Developing this cookbook ( still a work in progress )  has led me to take a loosely coupled [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=148&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">I’ve been working on a mongodb installation and configuration cookbook which allows me to install &amp;  if required make custom configurations . It allows me to Install and configure a standalone mongodb installation or a replica set.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Developing this cookbook ( still a work in progress )  has led me to take a loosely coupled approach to its development such that I did not want to force a dependency on any previous recipe.  This has  meant a number of rules would need to be followed to use the cookbook properly rather than imposing any  constraints. </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">So why did I come to this conclusion that flexibility and thus loose coupling was a requirement for this particular cookbook: </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-family:Calibri;font-size:small;"><strong>The use of a replica set and the fact you may want to seed the mongodb set up with data  from a backup did gave me food for thought.  When spiking the various configuration  scenarios I found that if I updated my current master via a data dump where I  had decided to stop the master mongodb instance  while I copied the data into the data folder  I found  the data wasn’t being replicated. This was because  one of the slaves had then taken over as the master and you can&#8217;t really force a master( without pain )  in a  replica set  ( maybe 10gen can advise on that one although I guess if I’d made sure the owner of the files was correct before the copy I may not have hit the mongo having a fit stage) so I needed to cater for that one.</strong><br />
</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Seeding mongo before a replica set is created seems like a nice approach to me anyway.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="color:#000000;"><span style="font-family:Calibri;">In a standalone mongodb instance I’m probably not worried about Raid so the recipe to create the Raid device shouldn’t be a constraint and while I’m at it why can’t you set up a replica that just uses instances with local storage?  </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="color:#000000;"><span style="font-family:Calibri;"> I want to add recipes to create the job to undertake regular backups and maybe one to do a restore. But I may not want to use them.</span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Suddenly the list of things I want my mongo cookbook to do is growing. So I have done what is required  to deliver the functionality that is required  by  the client  I needed to do the Chef work for and   now I can pimp my cookbooks till I’m happy enough to share it with the community .</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">(The whole ‘just enough’ ethos is something I mean to talk about here but not now)</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">I want the recipes to be easy to use and understood by people new to Chef and also to mongodb as I do not believe just because you have a sophisticated tool like Chef that should mean your cookbooks should be overly complicated. Keeping it simple makes maintenance easy and encourages others to expand upon it appropriately if they follow the rules. Mongodb is very easy to get up and running so why use a tool to make it suddenly obtuse?</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">So the  rules to date :</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Obviously you need to have mongo installed as a starting point.  I couldn’t really mandate the use of the installation recipe as it may be an existing set up . ( I have to modify this so it brings down a specified version rather than just the latest version from the 10gen repository) .</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Each recipe is to be used to carry out a  single function e.g install mongdb, configure the configuration file , start mongodb etc. The combining of functions is discouraged</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">Each subsequent recipe can be run independently of the others or be combined as a role this meant making sure I had a recipe to start mongodb so this could be dropped in as say part of a role or workflow .</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">The use of templates and variables to encourage flexibility .</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="color:#000000;font-family:Calibri;font-size:small;">When I get to a point I feel the cookbook is pimped appropriately I’ll post a  dissection and some guidance .</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devopscloud.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devopscloud.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devopscloud.net&#038;blog=20841954&#038;post=148&#038;subd=devopscloud&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devopscloud.net/2011/05/14/loosely-coupled-chef-cookbooks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2e7c820895dd447ac11c1789ccb706b6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grapesfrog</media:title>
		</media:content>
	</item>
	</channel>
</rss>