Recently, we have seen a huge expansion of so-called cloud services, with terms such as SaaS, PaaS, IaaS thrown around seemingly just for the sake of it. For almost any computer need you might have, there now exists an online service that will make your job easier. By letting the cloud do all your messy work, you can now run the entire infrastructure of your business online, and manage it from a simple netbook.
As long as you have a device with full internet capability, for most simple purposes you no longer need any other software installed. You can now do your research on Wikipedia, edit and create documents on Google Docs, and email it to whomever you want. This is all old news by now, things have gotten much more interesting.
Cloud services utilise grid computing to distribute computing resources over a wide network (a cloud) and in this process become more scalable and stable. As you are no longer relying on just a single system, chances of downtime are decreased, and system errors are much less catastrophic. By virtualizing the resources and abstracting them, the end-user’s experience is much like using any other service, they need not concern themselves with how much resources are coming from where, only that they are available.
Business needs are bound to grow with time as your customer base and services improve, and this is where the cloud is best equipped. Most cloud services allow you to scale your resources at any time, often without needing any downtime. What this means for you is that you no longer need to pay large sums of money for a hosting plan which you may only fully utilize once or twice a year during some special events. Instead you can seamlessly scale your service for the duration of the peak, and thus pay extra only in that duration.
Two of the forefront services in the cloud arena are the Amazon Web Services, and Rackspace Mosso. They both provide some similar services, but with slightly different approaches.
Amazon web services
Amazon, probably the most famous provider of cloud services such as Amazon EC2 (Elastic Compute Cloud) and S3 (Simple Storage Service) charges users based on how much resources they use instead of having separate pricing blocks.
Simple Storage Service (S3):
The S3 service gives you unlimited online storage capacity, and charges you only for how much data is actually stored on their server, and how much is uploaded or downloaded.
S3 charges you as little as $0.15 (Rs. 7.50) per GB per month of space used, $0.10 (Rs. 5.00) for 1GB data transfer. This means that for storing 10GB of data you will have to pay as little as Rs. 75 a month, with a one time charge of Rs. 50 for when you upload the data the first time. There are additional charges for the number of read write and list requests but they are quite marginal.
It comes with a powerful Access Control System, which allows you to limit access only to specified credentials. You can allow set public read permissions (or even write permissions), allowing you to distribute your files with ease. It can also optionally create torrents of your uploaded files, allowing you to save on distribution costs by letting the users provide some bandwidth.
The data in S3 is organised as buckets. You can create multiple buckets to store your files, and connect to them using your access credentials. The data in these buckets is stored in the form of keys instead of a usual folder and file hierarchy. Many services have popped up since S3, a popular one being Dropbox.
Elastic Compute Cloud (EC2):
The EC2 service allows you to run a virtual machine on Amazon infrastructure, while giving you fine-grained control of the processing capacity, memory etc., all of which are factored in while calculating the pricing. EC2 charges depend on the operating system and software used by the virtual machine, and the resources allocated to it. So you are paying for exactly the processing and software you use.
There is a plethora of options available to deploy, as Amazon Machine Images (AMI). These are pre-configured (or not) virtual operating system images which can be launched at will. When you launch an EC2 instance, you get SSH terminal access to it, enabling you to remotely configure the system, to install or uninstall any software. It’s like renting a computer in some guy’s basement all across the other side of the world.
You are charged on a hourly basis based on how much data is received from and sent to the server instance. They even offer virtual machines which come pre-installed with commercial software from vendors such as Microsoft, Oracle, and IBM, with a higher hourly charge.
Add-ons to this service are also available for a more customised experience:
l Elastic Block Store: For adding storage volumes to your EC2 instance. These cost on a per-GB basis, and on how many data operations are performed. These can also be set to be backed up to Amazon S3 at the standard costs.
l Elastic IP Address: Assigns a static IP address to your instance, if you need to to host your web site.
l CloudWatch and Auto Scaling: This service monitors your This service can be set up to automatically launch additional instances of your server whenever demand increases, and shut them down if demand goes down, thus saving on costs.
l Elastic Load Balancing: Automatically distributed requests across your running instances to balance the load.
These services aren’t for an amateur! The Amazon S3 service for example, will give you no means by itself to access your files. All you get when you sign up are your access credentials, which are long complicated alphanumeric sequences contrived beyond remembrance. They do provide loads of developer documentation for creating software to access the service, and sample code to help you get started. You are by no means helpless, as people have been kind enough to create code for you to integrate these services, often seamlessly into your work-flow.
Another strong contender in this area is Rackspace’s Mosso services. They provide three Cloud services — Cloud Sites, Cloud Storage and Cloud Servers.
With cloud sites, your entire server is hosted by a pool of virtualized servers. The minimum package gives you 50 GB storage space, 500 GB bandwidth, and 10,000 compute cycles a month (equivalent to a 2.8 GHz processor).
This minimum package costs a whopping $100! However, they offer no restrictions on how many sites you host on the platform, or how many databases and email accounts you create, so you can even ‘sub-let’ the unused capacity to run your clients web sites. Excess usage charges are in the order of $0.50/GB for storage, $0.25/GB for bandwidth and $0.01 for each additional compute cycle.
Unlike Amazon EC2, this is a ready-to-use product, and requires no further set-up or costs to enable load-distribution or automatic scaling. As such it is much more suitable for hosting purposes.
This is an alternative to Amazon S3. The facilities are quite similar, with similar pricing structures and design.
Unlike Amazon S3, Mosso provides an online interface for accessing your content, and infact does not charge for bandwidth used from their own control panel.
This is more on terms with the Amazon EC2 service, but stands out enough to be a force of its own.
Cloud servers gives a much more fine-grained control over the server configuration, with a minimum configuration server with storage of 10GB and 256MB memory available for as little as $0.015! On the other hand the minimum configuration available in EC2 costs 10 times as much.
A penny saved?
The best thing about these services (except Cloud Sites) is that there is no minimum fee at all! For zero use there is zero payment. Even landlines cost more. So you can sign up today, and you won’t be charged a single paise till you upload that first byte, or launch that first server instance.
Cloud storage services cannot replace the storage provided by a web hosting provide. These storage services are better optimized for media files and download-ables. By running your core system through a web-hosting provider, and integrating media from these services, you stand to save much more.
Unlimited hosting accounts may seem attractive, but the level of service and availability provided by cloud services is substantially better. Unlimited bandwidth is unfeasible, and usually one of the service provider’s other constraints kick in at exactly the wrong time. There is no such thing as a free lunch, and the recipient of one is sure to be skeptical of where exactly the lunch has been that it’s free in the first place.
Since cloud services are pay-as-you-go, you get the same level of service and speed whether you are hosting a multi-terabyte media web site, or a 1GB backup. The broadband and storage are truly unlimited, because you are paying for them.
If you can’t afford $100 a month for your next venture, Cloud Sites will be off the table. The alternatives EC2 and Cloud Servers are, raw products, which need intense cooking with a development team in order to be feasible. If you need a simple solution with minimal development involved, these services too will seem unnecessarily contrived.
A penny earned
The true advantage of cloud hosting appears only for those who have demand cycles that vary considerably. In cases where the minimal package required will be insufficient during higher loads and will attract large fines, and the maximal package will cost considerable more. With a normal hosting provider, singular aspects of the hosting package cannot be scaled individually. If you need lower storage space, but considerably higher bandwidth, you are out of luck. Here offloading some of your heavier files to the cloud stands to be much more efficient.
Finally to take full advantage of the emerging clouds, it is best to consider all aspects of your hosting configuration. Run benchmarks, how much do you use at your peak? Does the hosting provide sufficient speed for downloads? How much do you have to pay for exceeded bandwidth?
As always it is best to take a middle path if unsure. You have a hammer, don’t make everything into a nail. In all likelihood there are much cheaper places to host your awesome blog. For simple purposes, it is quite an overkill. Whether the cloud works out for you or not in the end depends on your required mixture of performance and cost.