About this blog

'Going Spatial' is my personal blog, the views on this site are entirely my own and should in no way be attributed to anyone else or as the opinion of any organisation.

My tweets on GIS, Humanitarian, Tech, Games and Randomness

Thursday, 16 September 2010

More Cloud
Back from leave and onto our cloud work. We've been looking at moving our ArcGIS Server Instances to version 10.0 and it was with some eagerness that on monday, we switched the older ArcGIS Server 9.3.1 instance to ArcGIS Server 10.0 - we had the latter instance running in a staging environment for a couple of weeks and have to admit, it looks very good. 

All things are green and working very well. I am happy.  

There are a few things that I need to look at - there will be no more changes to the base image as we're now on ArcGIS Server 10 but a lot around the effective management of these AMIs. First job is to remove all the older 9.3.1 images and ensure that we're running the minimum number of images. It all costs the business money. 

So what are we looking at now? Well - it is auto scaling; I need a method by which the ArcGIS Server images we have can automatically increase their resources in response to an increase in demand while removing resources when the demand drops. 

I know AWS has this ability so I went looking and it is called 'auto scaling'. However, my first idea that this would add CPU resources to a specific EC2 instance is wrong. It does not. The auto scaling adds instances (whole virtual machines) to your pre-configured pool as required. 

OK so how does this auto scaling work? 

CloudWatch
This is Amazon's monitoring service - it is quite simple but for $0.015/CPU, one can keep track of your instance health on a variety of dimensions such as CPU utilisation, Disk I/O, Availability of RAM, etc.
It would be nice to plug into this data stream directly and use ActiveXperts or something to send warning emails and SMS to those who need it but I think this is limited at the moment. Now CloudWatch is indirectly required for auto scaling as you create new rules based on the metrics you get back - these rules include adding or removing instances as required.

Auto scaling
Auto scaling is free! However, one needs to use CloudWatch (which isn't free) before you can get auto scaling to work. So it isn't as free as one would think.

With auto-scaling, you first have to define an auto scaling group, with virtual machines as members. You then create pre-defined CloudWatch parameters and Amazon will automatically launch and add virtual servers when certain conditions and thresholds are met.

All this is done through the 
This even works with the AWS load balancer. Good stuff and quite easy to implement.

Yes, Amazon has load balancers available.

Elastic Load Balancing
For $0.025/CPU hour plus $0.08/GB data transfer you get an easy to configure and almost instantly available. To configure the load balancer, one maps the external DNS of your choosing (in this case an 'a' record) using a CNAME mapping to the DNS name provided by AWS.

However, there's a great article on why auto scaling without any capacity planning or control is a bad idea. I also learnt a new term while reading this article: being 'SlashDotted'.