Cloud technology. It is not a new concept or model. In fact, it really isn’t new at all. Cloud technology has been around for years but since around 2008 we have seen a rise – in public awareness and in its use. This is in part due to large companies such as Amazon (EC2), Google (Compute Engine), and even Microsoft (Azure) offering cloud services publicly – at low cost and available to everyone.
So why the sudden change? Smaller companies like Rackspace were already offering small-scale cloud services to businesses in order to leverage virtualization (incidentally my computer underlines the term “virtualization” as a misspelling) to increase scalability. Amazon launched beta testing of its Elastic Compute Cloud (EC2) platform in 2006 recognizing that in the process of building their own massive online retail store they created solutions for problems that other businesses (all of them in fact) struggle with on a much smaller scale, such as:
- How to scale quickly (or instantly), especially short-term.
- How to implement cost-efficient data storage solutions, especially with a slower growth rate.
- How to implement off-site backup solutions and global load balancing without access to (or financial means for) global data centers.
These companies offer three major benefits with their cloud services that smaller more traditional hosting companies could not previously provide: cost-efficiency, a global footprint, and the financial backing to support aggressive growth.
Many CIOs however have been hesitant to adopt these technologies and point to a number of reasons why: no physical access to the data centers, security concerns, etc. If your CIO is repelling against any ideas to leverage the cloud I would attribute it entirely to lack of knowledge or lack of comfort (which I will still attribute to a lack of knowledge). Every mid to large size business has a use for the cloud and such a move will immediately underscore the CIOs primary KPO: applying technology to increase productivity and time to market while at the same time reducing cost (in short, leverage technology to increase efficiency).
Let’s take a look at some easy-to-implement cloud solutions with an immediate benefit that every business can use. I will be referring specifically to Amazon’s Cloud – including all of Amazon Web Services (AWS) and not just EC2. I am most familiar with Amazon specific offerings. I led my company to begin looking at AWS in early 2010 and ultimately began adopting their services in June 2010. Today we host 100% of our web infrastructure on AWS and are now investigating how to start leveraging it to decrease the cost of our operational infrastructure – a little behind the ball in my opinion but let us not forget the landscape of corporate politics. And still we are three years ahead of more than 70% of other American businesses (according to a recent CNBC article) and even more if you consider the “100% usage factor”.
– This is the simplest and most obvious first consideration for migration to the cloud. Why? Everyone needs it and it is simple to do. Amazon offers three key solutions for data storage (I am excluding databases in consideration of data storage):
- Glacier – a highly redundant, low cost, less accessible alternative to S3 (actually a subset but I isolated it here given that it really has a separate and unique use), is ideal for off-site storage/backups. Because it is naturally (and automatically) replicated across Amazon storage regions (globally) your data is very redundant. Storage costs are only 1¢ per GB-month! Since your archives now are probably the least integrated and least accessible component of your operational infrastructure it is an easy and quick move to make.
- Elastic Block Storage (EBS) – is essentially attached storage available in up to 1TB volumes. In Linux you can utilize XFS to create partitions that span multiple volumes but the 1TB is otherwise a drawback of EBS. A major benefit however is the ability to use provisioned IOPS allowing you to adjust the I/O operations (thus the acronym) depending on your specific needs. EBS is also very cost-effective at 10¢ per GB-month (12.5¢ per GB-month for provisioned IOPS volumes) and offers snapshots (to S3) which cost only 9.5¢ per GB-month. EBS is only useful in conjunction with Amazon EC2.
CIO Tip: Immediately take advantage of S3 for off-site backup storage by implementing AWS Storage Gateway. The device costs only $125 per month and storage is cheap at a rate of only 9.5¢ per GB-month. It supports two storage configurations allowing you to either maintain your primary infrequently accessed data on S3 with a local store for frequently accessed data, or with primary storage local and low-latency asynchronous point-in-time snapshots to S3.
Databases – Amazon offers two key database services (another disclaimer, I am excluding the recently announced Amazon Redshift as it is intended to replace traditional data warehousing which is vastly different from typical database usage; data warehousing, including Amazon Redshift, includes a database component as an interface for retrieving data but the whole solution is much more comprehensive and complex than just the database component):
- DynamoDB – “is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability”. DynamoDB reportedly provides consistent high-speed performance with single-digit I/O operations (less than 5ms reads and less than 10ms writes). DynamoDB is certainly impressive but it has specific use cases and requires you to build your application with it in mind.
- Relational Database Service (RDS) – serves a more immediately useful service for most businesses. It is a web service that allows you to host your existing databases on the cloud while offloading the data storage, backup and administration tasks. As a web service (and keeping in mind with the core cloud principles) it is easy to scale up or down in both performance and capacity. RDS already supports MySQL, SQL Server Express and SQL Server (with variable licensing options), and Oracle. I currently use MySQL and SQL Server but am anxiously awaiting support for PostgreSQL (which I am only assuming will eventually be included and likely in Q1/Q2 of 2013 by my own best guess).
Distribution – Amazon offers a distribution service called CloudFront (which they classify as a storage service). It is by their own definition a “Content Delivery Network / Content Distribution Network” (CDN) but I still have some reservations. I will explain here the pros and cons and what I envision are its current and hopefully future uses:
- Pros: The major benefit of CloudFront is simply taking the load off of your own servers. You can set an origination point (S3, EC2/ELB, or even a custom origin) for your CloudFront implementation and it will asynchronously cache the contents on its global CDN. It also supports the ability to deliver logs to an S3 bucket so that you are not missing out on your ability to analyze your own traffic.
- Cons: Where CloudFront falls short today is that it does not follow the CRUD model used for standard REST APIs and HTTP requests (POST, GET, PUT, DELETE). Currently CloudFront only supports HEAD and GET requests. As a result you cannot host an interactive application (even something as basic as a contact form) on CloudFront without directing its action to a separate subdomain. Other CDNs (e.g. Akamai, Level3, Limelight, ChinaCache, etc.) do not have this same limitation and can actually fast-track (using optimized routing, often on self-owned backbone networks) POST requests or dynamic data to/from the origination point. As a result one can leverage CloudFront as a CDN for static media but not for whole page caching. Aside from proprietary applications even open-source applications such as WordPress, Magento, etc. are typically slow due to their server-side processing more so than the static media. As a result CloudFront simply does not add a major benefit at this point in time. On a positive note this has been an Amazon forum discussion for more than one year and has become an actual feature request. The CloudFront FAQ page now states, “over time, we will add support for POST requests.” Again, I am willing to bet this feature is added by Q3 of 2013 (hopefully sooner).
“Quick Hits” Recommendations
- Move all of your permanent or long-term archives to Glacier.
- Purchase an AWS Storage Gateway and offload your current backups off site to S3.
- Start moving your databases to RDS. *Be sure to consider the latency if you cannot simultaneously migrate your servers to EC2.
- Migrate all of your static websites and static media assets to S3.
- Archiving Amazon S3 Data to Amazon Glacier (aws.typepad.com)
- Cloud security: what is the right approach? (itproportal.com)
- Understanding AWS Storage Options – – AWS re:Invent 2012 – STG201 (slideshare.net)
- AWS Cloud Design Patterns – AWS re:Invent 2012 – ARC302 (slideshare.net)
- Storage: the crack cocaine of cloud computing [GigaOM] (gigaom.com)