Share

Hosting a web application in “The Cloud”

A comparison between traditional ISP’s, Microsoft Azure and Amazone’s cloud solutions for hosting an average web application. Considering the features and the cost.

This is a report of an extensive research I have undertaken to evaluate the options for hosting a website (www.vrijezending.nl). I’ve been voluntarily keeping it up to date since 1997 and over time it has grown into an application, delivering content in 7 formats (web/mobile-web/ePub/pdf-ebook/pdf-booklet/ xps –ebook/xps-booklet) and other dynamic features. The research is limited, or rather explicitly focused on an ASP.Net web-application.

Comparing prices

Using the Microsoft Azure calculator and Amazons monthly calculator, together with TransIp's website, I tried to get the minimum requirements needed to run my site with its existing URL. I admit that I am comparing pears with apples (and Dollars with Euro's as well). I also added two VPC configurations from TransIp to the comparision to put it into perspective:

  Microsoft Azure     Amazon EC2     TransIP 1     TransIP 2     Shared Hosting  
Processor  1GHz     0,2~2GHz
    1 Intel Xeon     2 Intel Xeon     At least 2Ghz  
Memory 768Mb     613Mb  
  1024Mb     4096Mb     ?  
Storage 150Gig     30Gig     50Gig     150Gig     200Mb  
Traffic 5Gig     5Gig     1000Gig     5000Gig     1000Gig  
Extras       IP addr.
    Win2K8R2  
  Win2K8R2  
     
Total:   €14,80     $29,76     €17,50     €27,50     ~€5,-

 

Traditional ISP

Shared hosting

ISP’s have been providing shared hosting for as long as I started using the Internet. Shared hosting is also the cheapest option (by far) when it is an option. It often imposes many restrictions though, such as granting only partial trust to an application. This can be a boundary, especially when things like dynamic PDF generation is required.

The basic idea was to set up a basic website on the webserver, point it to a directory on the file system, add an ftp account constrained to that directory and you have the simplest shared hosting instance imaginable. Things have changed quite a bit since then but the basic idea is still the same. It is now also common to have access to an additional control panel like Plesk or cPanel in which you can configure E-mail, domain-names, webserver settings and databases. One of the best places to find a shared hosting provider for ASP.Net is http://www.microsoft.com/web/hosting/home.

VPS (Virtual Private Server)

VPS hosting came on the scene a bit later than shared hosting, but added quite allot flexibility and freedom than the restricted shared environments could allow. It is pretty much a virtual machine (VMware or Microsoft) on which you can install an OS of choice and run anything you want. Usually bandwidth, disk size and cpu usage are bounded or throttled in some way or another.

To use ASP.Net, it is recommended to have a Windows installation (though other options are possible if you really want to make life difficult for yourself). Usually an additional monthly fee is added for the Windows licence.

The cheapest and fastest (by far) provider I know for VPS is TransIP.

Cloud Hosting

If you are new to the concept of "The cloud", check out my brief introduction to the cloud.

Microsoft Azure

Free / Shared hosting

If you don’t care about your URL, Microsoft offers up to 10 websites hosted for free on their shared hosting platform. These websites can run in full trust mode. If you need SqlServer You’ll have to pay a small extra fee for it. The normal shared hosting is the same as the free one except it allows you to configure an URL for it (you will however have to register the domain name and DNS service elsewhere).

At first glance it looks wonderful, lots of freedom, full trust, easy configuration. But looking deeper there’s one drawback: No caching! If you’re using a CMS with database storage you would at least want to cache the menu’s and toolbars. No cache means that your site will run sluggish in the free program. The cheapest cache option costs over €30 per month! (128Mb shared cache). The only positive thing I can say about it is that the lack of cache lead me to find a bug in my website I would otherwise never have found (a Null-reference when trying to access the cache).

Reserved (VPC-like)

The “reserved” option costs the same as a single VPC instance. I haven’t tried it but I guess it is identical to the smallest VPC available. These instances are not redundant! If you want guaranteed uptime you need to have at least two instances coupled! The drop-outs appear to be relatively frequent (this also frustrates some Linux users). Most ISP’s would provide redundancy through at-least the Virtual Machine layer, where you would have control over when you want to install updates and reboot the machine at your own convenient time (unless you set it to automatic off course).

Amazon EC2

Elastic beanstalk (Shared)

As with Microsoft’s VPC option, I havn’t actively tried the Elastic Beanstalk (yet). They offer a Visual Studio plug-in toolkit, but it is also possible to deploy using a Microsoft Web-deploy zip package. I personally prefer to upload files Via FTP (or cut-and-paste via RDP), set up the database and configure IIS manually.

EC2 instance (VPC)

Amazon has an offering for a 1-year-free-trial. This is for the smallest possible configuration. A funny thing about Amazones smallest VPC is that is has a dynamic CPU speed. I noticed that the first request was extremely fast on Amazon compared to Microsoft’s platform. Then I went ahead and installed PovRay (a 3D photorealistic ray-tracing renrerer) on the instance and started one of the benchmark renderings. It started quite well but after a few seconds it slowed down to a grinding snailpace. I think this is quite fair. It will give your site the oomph it needs when it really needs it, but when misused, it will throttle you down to behave decently.

Test drive

I have temporarily hosted the site on 3 servers. The shared hosting provider I currently have is running my website on one of TransIP's servers (that's how I found out about TransIp in the first place). They don't seem to be offering this package any more and it looks like they have their own servers now for new customers.

Any way, you can test-drive the performance of the same website on:

 

 

I hope the hours of research I've put into this will be of some help to someone out there :-)