Monday, January 31, 2011

3 quick ways to reduce your Amazon EC2 cloud charges

The biggest difference between standard web hosting and cloud-based hosting can be seen when you get the monthly bill. A standard web host, like GoDaddy, will charge you a flat monthly fee and give you access to a single, fixed server. Whereas a cloud-based host, like Amazon EC2, will charge you at a granular level for each compute asset you use, whether it's bandwidth, CPU or storage. This can lead to a confusing monthly bill (ever tried to use Amazon's "simple" cost calculator?), but also to opportunities to save money by being more astute with your resource utilization.

I have now been running my business on EC2 for 6 months, and was able to cut my monthly charges by almost 80%. How? Just follow these 3 easy steps:
  1. Be prudent with what you consume. Cloud providers will charge you for exactly what you use. So unlike with standard hosting, it actually pays to be frugal and to use less. Consume less and pay less. You will see an immediate reduction in your EC2 bills if you:
    • Ensure your server is being frugal with bandwidth. Cache images client-side with long expiry times, gzip the content you publish and use CSS sprites for image delivery. Just enabling these 3 attributes on your server can save huge amounts of bandwidth and this will be reflected in your costs.
    • Use smaller servers that cost less per month. Most developers come from the mindset that the infrastructure is fixed, and therefore you should select infrastructure that will last you several years. But the advantage of cloud computing is that you can upsize your servers on-demand. Use the smallest, weakest server you can find, and scale it up only when you start to max out your CPU capacity (use Amazon Cloudwatch to notify you of high CPU loading).
  2. Lock in your servers. If you are using Amazon EC2 then you are likely using it for the flexibility of scaling your front-end infrastructure. More customers -- no problem, just add another front-end server to take that load. But certain assets, like your database server, will likely be untouched for years, needlessly accumulated on-demand Amazon charges. Move your fixed assets from on-demand pricing to Amazon's reserved instance pricing. This simple pricing change, enabled by a tick-box in the EC2 console, can save you almost 50% on your annual server costs.
  3. Re-evaluation your application needs. Many developers migrate existing in-house solutions and continue running them in the exact same state in the Amazon cloud. But cloud penalties are heavy when costly licenses are involved (ie. Windows SQL Standard is significantly more costly than SQL Express, which is itself more costly than Amazon RDS). Those licenses you own in-house for MSDN don't migrate with you to the cloud, so make consideration for a re-architecture as part of your move.
Note that LabSlice now offers consulting services for EC2 migration:

Wednesday, January 26, 2011

Would a cloud by any other name sell as well?

My last blog entry 'does Gartner understand cloud computing' generated a lot of interest, especially in the twitter-o-sphere. This was no surprise, as opinions about this space tend to be very mixed. More so, I suspect that there is frustration with vendors, as your average 'web application' gets rebranded as a 'cloud application' and pitched to IT managers as the coolest thing since SOA, Agile Progamming, UML, <other technology hype>. Senior IT professionals really just want to understand what cloud is, without the hype and without any sales pitch.

So to be fair to Gartner, I thought I should take an attempt at my own definition of cloud computing:
"Cloud computing is defined as a self-service environment for the immediate provisioning of platforms and applications, with billing being based on granular usage consumption metrics."

Take a look at the key attributes: self-service, immediate, granular billing. These attributes are really the main difference between cloud computing and any other technology. It's the reason why having a web server is so 2000, while running a server on Amazon's platform is so 2010: Amazon allows you to spin up images by yourself, makes them immediately available and will bill you for CPU, bandwidth and storage on an hourly basis. These limiting attributes are also the reason that cool new technologies can be implemented, such as the LabSlice virtual training environment - pull down training images on a need-be basis and pay solely for usage of the machine on an hourly basis. Very different from the old model of purchasing servers, deploying them in-house and then paying on an ongoing basis for hardware maintenance, usage and upgrades.

The next time a vendor pitches you a cloud solution, ask them the following:
  1. Does your your product offer self-service functionality to each and every one of our employees?
  2. Is your solution immediately available to be used by each and every one of our employees?
  3. Do you offer granular billing, so that we can pay you solely for what we consume?

Monday, January 10, 2011

Does Gartner understand cloud computing?

I like the Gartner Magic Quadrant. It provides for a quick overview of a specific domain, lists the key players and assigns them a high-level effectiveness rank. It's a great tool, and also a very dangerous one. For those who understand a domain it provides reenforcement and a third-party perspective. And for those who don't, it affords a quick way to select a vendor or choose a technology -- the modern equivalent of "no-one gets fired for selecting IBM".

Having placed many IaaS bets as a cloud management vendor, the Magic Quadrant for IaaS was something I was looking forward to review. But even at first glance it seemed a bit strange, with the title "Cloud Infrastructure as a Service and Web Hosting". Hmmmm... So this is a review of IaaS, the very epitome of cloud services, and also of traditional web hosting services?

Reading through the report you will find similar idiosyncrasies and an obvious bias towards delivering 'enterprise' cloud services:
  • Security is called out multiple times, with no definition of what a secure cloud platform entails. Oddly enough, the paper doesn't call out Amazon as a PCI-DSS compliant vendor, which is one of the clearer methods to show that one vendor is more secure than another.
  • Availability is a key requirement, preferably at 100% uptime. But while availability is important, cloud IaaS is not about giving you an always on website. Rather, cloud is about giving you the tools to make robust web applications that can easily manage with a failed node. If you need a 100% uptime web hosting solution then you should probably look for comparisons between the more traditional web hosts.
  • Professional services are oddly enough a key component of the IaaS cloud. You see, apparently it's not cloud IaaS if it doesn't come with a sales and consulting team to help you deploy it.
Security, availability and professional services --- Gartner is clearly responding to dot-points mentioned to them by the large corporates that consume their material. And I daresay that these companies may not be needing cloud IaaS, but just want to be part of the hype.

You can see the oddity of it all in the actual Magic Quadrant (below). Amazon, considered to be miles ahead in features, mind-share and capabilities is listed as sub-par in "ability to execute". Whilst your friendly corporate vendors, like AT&T and Verizon Business, show up as leaders of the group.

Many large companies practice what I like to call Architecture by Gartner, being quickly magnetized to whichever solutions appear in the Leader's Quadrant. So while I don't know who will be the winner of cloud IaaS for 2011, I can tell you that Savvis, AT&T, Rackspace, Verizon and Terremark will at least be having a very pleasant start to the year.