Hosting: You Really Can’t beat Amazon Web Services EC2

Intro
You want to have your own server hosted by a service provider that’s going to take care of the hard stuff – uninterruptible power, fast pipe to the Internet, backups? That’s what I wanted. In addition I didn’t want to worry about actual, messy hardware. Give me a virtual server any day of the week. I am no hosting expert, but I have some experience and I’d like to share that.

The Details
I’d say chances are about even whether you’d think of Amazon Web Services for the above scenario. I’d argue that Amazon is actually the most competitive service out there and should be at the top of any short list, but the situation wasn’t always so even as recently as February of this year.

You see, Amazon markets itself a bit differently. They are an IaaS (infrastructure as a service) provider. I don’t know who their top competition really is, but AWS (Amazon Web Service) is viewed as both visionary and able to execute by Gartner from a recent report. My personal experience over the last 12 months backs that up. My main point, however, is that hosting a server is a subset of IaaS. I assume that if you want your own server where you get root access, you have the skill set (aided by the vast resources on the Internet including blogs like mine) to install a web server, database server, programming environment, application engines or whatever you want to do with it. You don’t need the AWS utility computing model per se, just a reliable 24×7 server, right? That’s my situation.

I was actually looking to move to “regular” hosting provider, but it turns out to have been a really great time to look around. Some background. I’m currently running such an environment running Ubuntu server 10.10 as a free-tier micro instance. I’ve enjoyed it a lot except one thing. From time to time my server freezes. At least once a month since December. I have no idea why. Knowing that my free tier would be up anyways this month I asked my computer scientist friend “Niz” for a good OS to run a web server and he said CentOS is what I want. It’s basically Redhat Enterprise Linux except you don’t pay Redhat for support.

I looked at traditional hosting providers GoDaddy and Rackspace and 1and1 a bit. I ran the numbers and saw that GoDaddy, with whom I already host my DNS domains, was by far the cost leader. They were also offering CentOS v 5.6 I think RackSpace also had a CentOS offering. I spoke with a couple providers in my own state. I reasoned I wuold keep my business local if the price was within 25% of other offers I could find.

Then, and here’s one of the cool things about IaaS, I fired up a CentOS image at Amazon Elastic Compute Cloud. With utility computing I pay only by the hour so I can experiment cheaply, which I did. Niz said run v 5.6 because all the bugs have been worked out. He hosts with another provider so he knows a thing or two about this topic and many other topics besides. I asked him what version he runs. 5.6. So I fired it up. But you know, it just felt like a giant step backwards through an open source timeline. I mean Perl v 5.8.8 vs Ubuntu’s 5.10.1. Now mind you by this time my version of Ubuntu is itself a year old. Apache version 2.2.3 and kernel version 2.6.18 versus 2.2.16 and 2.6.35. Just plain old. Though he said support would be available for fantastical amount of time, I decided to chuck that image.

Just as I was thinking about all these things Amazon made a really important announcement: prices to be lowered. All of a sudden they were competitive when viewed as a pure hosting provider, never mind all the other features they bring to bear.

I decided I wanted more memory than the 700 MB available to a micro image, and more storage than the 8 GB that tier gives. So a “small” image was the next step up, at 1.7 GB of memory and 160 GB disk space. But then I noticed a quirky thing – the small images only come in 32-bit, not 64-bit unlike all the other tiers. I am so used to 64-bit by now that I don’t trust 32-bit. I want to run what a lot of other people are running to know that the issues have been worked out.

Then another wonderful thing happened – Amazon announced support for 64-bit OSes in their small tier! What timing.

The Comparison Results
AWS lowered their prices by about 35%, a really substantial amount. I am willing to commit up front for an extended hosting because I expect to be in this for the long haul. Frankly, I love having my own server! So I committed to three years small tier, heavy usage after doing the math in order to get the best deal for a 24×7 server. It’s $300 $96 up front and about $0.012$0.027/hour for one instance hour. So that’s about $18 $22/month over three years. Reasonable, I would say. For some reason my earlier calculations had it coming out cheaper. These numbers are as of September, 2013. I was prepared to use GoDaddy which I think is $24/month for a two-year commitment. My finding was that RackSpace and 1and1 were more expensive in turn than GoDaddy. I have no idea how AWS did what they did on pricing. It’s kind of amazing. My local providers? One came in at six times the cost of GoDaddy(!), the other about $55/month. Too bad for them. But I am excited about my new server. I guess it’s a sort of master of my own destiny type of thing that appeals to my independent spirit. Don’t tell Amazon, but really I think they could have easily justified charging a small premium for their hosting, given all the other convenient infrastructure services that are there, ready to be dialed up, say, like a load balancer, snapshots, additional IPs, etc. And there are literally 8000 images to choose from when you are deciding what image (OS) to run. That alone speaks volumes about the choices you have available.

What I’m up to
I installed CentOS 6.0 core image. It feels fresher. It’s based on RedHat 6.0 It’s got Perl v. 5.10.1, kernel 2.6.32, and, once you install it, Apache v 2.2.15. It only came with about 300 packages installed, which is kind of nice, not the usual 1000+ bloated deal I am more used to. And it seems fast, too. Now whether or not it will prove to be stable is an entirely different question and only time will tell. I’m optimistic. But if not, I’ll chuck it and find something else. I’ve got my data on a separate volume anyways which will persist regardless of what image I choose – another nice plus of Amazon’s utility computing model.

A Quick Tip About Additional Volumes
With my micro instance it occupied a full 8 GB so I didn’t have a care about additional disk volumes. On the other hand, my CentOS 6.0 core image is a lean 6 GB. If I’m entitled to 160 GB as part of what I’m paying for, how do I get the access to the remaining 154 GB? I guess you create a volume. Using the Admin GUI is easiest. OK, so you have your volunme, how does your instance see it? It’s not too obvious from their documentation but in CentOS my extra volume is

/dev/xvdj

I mounted that a formatted it as an ext4 device as per their instructions. It didn’t take that long. I put in a line in /etc/fstab like this:

/dev/xvdj /mnt/vol ext4 defaults 1 2

Now I’m good to go! It gets mounted after reboot.

Dec, 2016 update
Amazon has announced Lightsail to better compete with GoDaddy and their ilk. Plans start as low as $5 a month. For $10 a month you get a static IP, 1 GB RAM, 20 GB SSD storage I think and ssh access. So I hope that means root access. Oh, plus a pre-configured WordPress software.

Conclusion
Amazon EC2 rocks. They could have charged a premium but instead they are the cheapest offering out there according to my informal survey. The richness of their service offerings is awesome. I didn’t mention that you can mount the entire data set of the human genome, or all the facts of the world which have been assembled in freebase.org. How cool is that?

This entry was posted in Admin, Hosting Service, Linux and tagged , , . Bookmark the permalink.

8 Responses to Hosting: You Really Can’t beat Amazon Web Services EC2

  1. Pingback: Highlights from the AWS Summit in NYC April 19 2012 | Dr John's Tech Talk

  2. Soan says:

    Ater reading your experience, i am also inclined to use EC2. Currently, I am using Godaddy’s windows shard hosting and not satisied with the speed of the site.
    I tried using the cloudfront to offload some weight from godaddy but it has not helped much in increasing the overall page load speed.

    I think Amazon EC2 can easily be placed above Godaddy’s VPN servers? Currently, i am on the cheapest plan from Godaddy and was thinking of moving to VPN. But, i guess moving to EC2 would be a better option.

    Also, i am looking primarily for windows hosting.
    Any suggestions rom your side?

    • john says:

      I don’t have first-hand experience with Windows hosting on Amazon. I read up on it just now and on their CloudFront offering. I think it would be a solid offering, just based on their reputation and my experience with them in other matters. Of course you can always have a crappy application that’s going to be slow no matter what.
      I just bought another domain with goDaddy last week, and I was reminded of how shady they seem to be. They just seem to try to squeeze every $ out of every transaction by preying on user fear and uncertainty and offering poorly-defined “extras” that even an experienced It person can’t figure out what they do. Amazon is not like that. They have the extras, but they’re not constantly trying to force them on you.
      Amazon hosts technical conferences where their solutions are featured and customers present real use cases. does GoDaddy host similar events? I don’t think so – not on the scale that Amazon does it.
      GoDaddy managed to kill my domain and tens of millions of other domains one whole afternoon this year.
      In a year and a half with Amazon they have had a few problems, but nothing of that magnitude. Usually they know the problems in advance and ask you to reboot so they can get you off the failing hardware.
      One tip is to go with a “small” instance rather than “micro.” You will be starved of CPU just when you need it most in a micro instance.

      • Soan says:

        Thanks for taking time out and replying.
        I have made up my mind to try out the small instance after lot of wandering around and reading about Amazon and its set up.

        Thanks alot for your help.

  3. Pingback: Raspberry Pi phone home | Dr John's Tech Talk

  4. john says:

    Someone wishing to remain anonymous asked about hosting for novices. Obviously what I’m all about is expert usage. So I thought and thought and decided that reading between the lines, this person was seeking cheap help. And I thought of some young people I know who are IT-savvy. Wouldn’t this be a great opportunity for an entrepreneurial young person to get some real experience and make some money in the process? Unfortunately, being young people, neither one I contacted bothered to return my email.

    So assuming you don’t have your own unreliable young person to go to, the official channel for novices interested in Amazon hosting is

    https://aws.amazon.com/solution-providers

    That lists AWS-certified partners. I’m sure some of them are perfectly fine, though I have no direct experience with any of them.

    Some words of caution. In my experience vendors able to make good web sites like the latest trends in responsive design are a dime-a-dozen. They almost universally have a superficial knowledge of infrastructure. There are people who know infrastructure, but they are increasingly hard to find. Think about it, when everything’s moving to the cloud, how do you gain that experience? It isn’t easy.

    Now, the people who know both design and infrastructure, or middleware and infrastructure? That combination is so uncommon you could fit their number into a modest-sized auditorium.

    I just wanted to close the loop on this question.

  5. N L says:

    Hi

    I do not think the calculation you have provided is correct. As if you are paying $0.012/hr for one instance. That means per day it would cost $0.012 x 24 = $ 0.288 per day (considering server is up for 24 x7) . So for 1 year cost would be $0.288 x 365 = $105.12. So AWS costs you $105.12 per year and in addition to that $300 upfront cost (I am guessing that it is additional cost). So cost over three years commitment is $105.12 x 3= $315.36 + $300 (upfront cost) = $615.36
    This sound significantly higher than what godaddy would provide you on shared as well as dedicated web hosting.
    So I am wondering how do you find AWS cost effective?

    • john says:

      I meant to write $18/month. But I’m glad you brought this up. My monthly bills from Amazon for my reserved instance have been coming out at $20.41, whereas I expected it to be $9.30. I’ve been too busy to understand the discrepancy, but it obviously makes a big difference to the crux of my argument.
      If I ever learn what’s going on I will update this.

      OK, I’ve looked up some stuff and the numbers seem to have changed or I got them wrong in the first place. The new value is $22/month for a three-year commitment and a small instance. I’m still a fan of Amazon after a couple years as a user.

Leave a Reply

Your email address will not be published. Required fields are marked *