If you’ve looked at Amazon’s published web services lately, you’ve noticed that there are a number of “elastic” services available from their cloud. These include Elastic Block Store (EBS), Elastic Computer Cloud (EC2), Elastic MapReduce and Elastic Load Balancing.
Amazon’s definition of “elastic” centers on massive (through thousands of instances) horizontal scaling of “as many or as few compute instances running (your application) as you want.” Startup of additional elastic instances is a manual process (which can be largely automated through APIs), and startup time can range from minutes (e.g., for EC2 and MapReduce instances) to longer periods (e.g., EBS and Load Balancing).
Unfortunately, Amazon has not been entirely consistent with their “elastic” tag. Although all four of those services fit this definition there are several other elastic services worth mentioning in the context of elastic architecture, such as SimpleDB and Simple Queue Service (SQS). That said, there are elastic choices at most architectural tiers of Amazon’s portfolio, from raw block access (EBS), to logical storage (S3) and database storage (SimpleDB and RDS), at the messaging layer (SQS and SNS) and at the start of the application layer (EC2).
So…if Amazon’s got a comprehensive elastic stack, what’s not to like? Two things*:
1) The threat of vendor lock-in. If you want to move your SimpleDB-based application to Rackspace someday, how are you going to do that? If Amazon wants to raise usage rates 50% year-over-year down the road what are you going to do about it?
2) The threat of cloud reversal. If you get a new CIO, new regulations, acquire/divest major IT resources or just need to fill up some idle racks, how can you pull some or all of your application down from the cloud and back into on premise datacenters?
What’s the answer to these threats? First, understand the concept of “cloud escrow“. Second, learn how to build around a cloud-portable elastic architecture and how that helps you negotiate with cloud vendors. Third, keep reading DivConq.com as we continue to explore these issues!
* = OK, in the “not to like” department, there’s also manual start-up of elastic instances and a weak application/presentation layer – but there are ways around those – we’ll cover these on DivConq in a future article.





