Service Level Agreements (SLA) are only useful as a sales tool. Yes, a 99.999% SLA looks and sounds like a guarantee that will keep you cozy and warm at night, but if your site’s availability is dependent on a promise for a refund based on your provider’s SLA, then you are taking the wrong approach to this potential issue. This week, I compared some cloud based hosting companies against AWS. These companies compare their 99.999% SLA to the AWS SLA of 99.95% (EC2). This may sound like a great selling point, but their comparison is irrelevant because it only compares a single cloud server to a single EC2 instance, instead of the AWS system as a whole.
An SLA is nothing more than a money back guarantee for the instances when the provider’s services do fail. They agree to refund a percentage of your monthly service fees. Sure, you’ll get a small payout, but why even risk your site being offline at all, even for 1 minute?
Consider these two scenarios:
1. You run a small marketing company and have been waiting on that big client to bust into your door with your first big deal! You’ve done the work, your blog is impeccable, your whitepapers are spotless, your inbound marketing is on point, your mailing list is growing daily … Mr VP from BigCorp is tasked with finding the top growth hackers on the web. He recalls seeing your site and he is already signed up for your email list, so he finds the latest email newsletter and clicks the link to check out your site … … YOUR SITE IS DOWN. He even tries to refresh a couple times … NOTHING. That is where the opportunity ends.
Why would Mr. VP risk his reputation by recommending a company that can not keep their own website up? You just lost a $100k opportunity without even knowing it. Now you report this “outage” to your host, they apologize and give you a 5% bill credit of $12.00. Wow! Their customer service is great – they didn’t even put up a fight …
NET LOSS: $99,988
2. You own and run a retail e-commerce business and you just launched a new widget at the price of $50 each. You sell a few here and there, do some advertising and begin selling about 10 per day. With the orders rolling in, you are busy shipping and packing, so you forget to scale up your server (which even then will cause 1-2 minutes of downtime). Someone posts about your widget on reddit and the thread hits the front page. The demand explodes! “WHERE CAN I GET IT?!” Shortly thereafter, the data center drops off the map – your site is down.
You were able to sell about 100 widgets in the first 30 minutes, but now your site is down. Some people bookmark the URL, and out of those, a few check it later (does anyone ever check sites they bookmark?), but many lose interest and the impulse to buy quickly fades, never to return. Assuming the hype continued for 2-3 hours and the sales continued at the same rate of 200 per hour AND your website was available to process orders, you would have sold $20-30K in a few hours. Instead you sold $5000 worth of product from one of the best organic marketing opportunities of your business’ existence.
The site was down for 45 minutes (99.9% SLA) – enough time for it to lose momentum and fall from the front page. You read through your service level agreement and are now entitled to the MAX of 25% of your monthly fees provided one of the SLA exceptions was not violated in some way. There are A LOT of caveats in the SLA game. You are now entitled to $50.00 according to the SLA …
NET LOSS: $14950-24950
Why take the chance?
High Availability on AWS
If you are launching what you wish to be a High Availability(HA) site, as you would for an e-commerce site, high traffic blog, popular forum, a large corporate or enterprise level website (or one of the scenarios above), you should be using more than one cloud server (EC2 instance) and a number of other services to ensure that site does not go down.
AWS provides the infrastructure and tools to make this possible through redundancy, failover policies, and both vertical and horizontal auto scaling options. You wouldn’t just set up a single EC2 instance and call it good. No matter how well you optimize that web server, it has no redundancy, it will fail, and no guarantee or SLA will matter at that point.
You should set up multiple EC2 instances, one or more for web hosting and one for your database or better yet, use RDS, all in different Availability Zones(Data centers) with Elastic Load Balancer and Route 53 DNS. Even further, you can push your static assets to S3 to take some load off of your web servers and use Cloudfront to deliver those assets around the world. Now you have multiple layers of redundancy, less stress on each service, and much, much less chance for failure. (You can even set up an Auto Scaling group, which might be necessary to account for scenario 2 above.)
This is the entire point of the AWS ecosystem – you never have to be dependent on one single service or server no matter what the uptime guarantee or SLA promises and it’s theoretically infinitely scalable.
Hedge your bets, go with AWS.