Cloud Pricing Demystified, Part 2

The article below is the second of two articles on Cloud Pricing; the first article is available on our website here.
By 451 Research analyst Owen Rogers.
Emphasis in red added by me.
Brian Wood, VP Marketing

Cloud pricing 201: appraising the application

Previously, we have used the analogy of a hotel to show the pricing structure of compute as a service, concentrating on virtual machines. In this report, we extend the analogy to show how a number of key other billable services are priced in the IaaS marketplace.
We consider the costs for a typical cloud Web application. Our application consists of an image, which is deployed on multiple virtual machines. The application's users communicate with the virtual machine via a load balancer, which distributes demand between them. The virtual machine uses a cloud storage service to store data and the image.
Back to the hotel
In Cloud pricing 101: a room with a view, a hotel was chosen to represent a cloud virtual machine. Guests can hire a room whenever they need it and stay for as long as required, paying for the number of nights they stay, per an on-demand cloud-pricing model.
The hotel room is where the guest lives. If the guest has many things to store, or wants colleagues to be able to access certain things around the clock, these items might be better off in the hotel's luggage room. The luggage room can also store blueprints, which can be used by hotel staff to rearrange a room to meet a certain configuration. The hotel manages these blueprints, but organizations can define their own so that when its staff hires a room, the furniture is arranged in a particular configuration. Some organizations may hire a number of rooms, and need to temporarily employ a concierge to welcome their staff and show them to, and from, their room.
In this report, we discuss a simple Web application deployed in IaaS. Virtual machines are where the processing happens. An application will typically need to store and retrieve data from a separate location, which other virtual machines can also access – this is the role of the cloud storage service. The cloud storage service also stores virtual machine images. Customers can use these images to pre-configure a virtual machine when it is started so it has certain software pre-installed. Organizations can create their own images, so they can start virtual machines built to perform a particular function. Multiple virtual machines give the application its processing capability. Traffic from the Internet needs to be distributed to the virtual machines – this is the role of a load balancer.
Putting the TV in the bathroom
In Cloud Pricing 101, we discussed how the hotel limits the types of room available, and guests must choose what they need from these options. This is similar to instance types offered by compute-as-a-service providers. The dimensions of the hotel room are fixed, but the hotel does allow a certain level of customization before the guest moves in. The hotel offers a number of blueprints for the layout of the room. The guest can select a choice of blueprint, and a room choice (single or double bed) will be moved around to accommodate their decisions. Some of these blueprints will be free to use; others may have additional costs because the person who made the blueprint has secured the intellectual property for the layout of the room.
Customers that frequent the hotel often may have their own blueprint that can be used time and time again by themselves, or even their friends, to specify the layout of the room. The customer might amend someone else's blueprint, or rearrange a room, and then record how it is set up. The hotel will take care of the blueprints in return for a fee to store them. In the cloud world, these blueprints are called 'images.' The virtual machine is assigned a certain quantity of physical capabilities. The image is the software that takes advantage of the physical resources, and might include an operating system, programs that allow code to be run, or fully blown applications such as email servers.
Consumers may create their own images by taking a provider's or a third-party's image, and then configuring it in a certain way, or by installing additional software on top of it. The concept of the image is of critical importance to the cloud concept. Once an image has been made, it can be used time and time again to create virtual machines of exactly the same configuration.
Why is this powerful? It means that an application can rapidly be given greater capability by creating more virtual machines using the same image. It also means that if a virtual machine fails, a new one can be created instantly. Some standard images are free, and consist of open-source software such as a Linux distribution (e.g., Ubuntu) and standard software libraries (e.g., Python). Operating systems such as Microsoft Windows often cost a small fee, but sometimes this is bundled up into the cost of the virtual machine.
Increasingly, premium platforms (Tomcat, Engine Yard, Microsoft SQL) and applications (SAP, WordPress) are being made available to consumers from application marketplaces, allowing value-adding software to be deployed immediately on a virtual machine with ease. These application marketplaces are also called 'cloud applications' or 'sites.' Often, these images are charged as a per-hour cost on top of the cost of the instance, or as a monthly subscription. Often the per-house cost is different depending on what size of instance it is deployed on. Some images include the instance cost in their charge.
Storing my luggage
The blueprints must be stored somewhere secure at the hotel – the luggage room. Besides storing these blueprints, the storage facility can store pretty much anything. Luggage, parcels, anything you want. Left luggage is charged based on the weight of the object, measured in kilograms (our hotel is in Europe). When depositing the luggage, the customer has to pay to place it into storage based on its weight. After that, the customer can leave it for as long as required – they will receive a bill every month for the time it is in storage. Throughout the month, the hotel adds up the number of kilograms under storage by the customer every hour. At the end of the month, it works out the average amount of kilograms stored during the month and bills based on this amount.
When the customer comes to collect their luggage, they must also pay a fee to withdraw it, again based on its weight. Furthermore, the customer is billed every time they go to the customer service desk, whether to add more luggage, withdraw luggage, or check on it. In IaaS, this facility is called 'object storage', BLOB (binary large object) storage, 'cloud storage' or 'cloud file storage.' It is a shared platform that can be accessed by multiple virtual machines simultaneously, and stores files as objects.
In the hotel environment, a guest uses their hotel room for doing work, catching up on sleep, and for a bit of fun. The luggage room is just a place to hold things – if the guest wants to do anything with the luggage, they move it to the hotel room, where they take what is needed before returning the luggage to storage. This is similar to a typical cloud application. The virtual machines handle processing data and handling requests. The object storage is used to store data.
Whenever the consumer makes a request (for example, to store, move, copy or retrieve a file) they are charged for the privilege, albeit a tiny amount. Usually customers are charged a price per quantity of these transactions, For example, Azure charges for every 100,000 transactions; AWS charges per 1,000. Others don't charge anything, such as OpSource. The consumer is also charged for the amount of data put into the storage, although more often than not it's free, to encourage consumers to use the service.
Every hour of the month, the provider records how many bytes of data are being stored by the consumer; at the end of the month, these are added together to make a total number of byte-hours. The provider finds the average amount of gigabytes stored over the month (in gigabyte-months) and bills based on this. In other words, storage is prorated over the month. This happens in AWS and Azure, and many other providers. Sometimes the amount of gigabytes stored is averaged over a day instead of a month. Azure also offers the facility for consumers to commit to a certain spend every month over a six-month or 12-month period, and receive a 20-32% discount on resources. Finally, most providers charge the consumer based on the amount of data taken out of the storage platform in gigabytes.
Where is my room?
Often, an organization might hire many hotel rooms at once. This might be to accommodate numerous guests or to provide extra space if one room is unavailable. When guests employed by the organization arrive at the hotel, they must talk to a dedicated concierge, who takes the guest to the appropriate room, so that the organization's rooms are fully used. The concierge also shows guests how to exit the hotel when they leave their room. The organization pays the concierge for each partial-hour at the desk directing guests, and for each guest directed. Some hotels only charge for those guests that leave the hotel; others charge for helping guests in and out. Some hotels also make a surcharge if the concierge has to deal with multiple guests at the same time.
In IaaS, a 'load balancer' performs this function; its role is to distribute traffic from the Internet to virtual machines on which the application sits. Most providers charge for the time the load balancer is up and running (usually in hours), and the number of gigabytes of traffic it ends up directing. Some providers (like AWS) charge for any data that goes through the load balancer, in or out of the network. Others charge only for data leaving the network – Rackspace, for example. Rackspace also charges for handling multiple concurrent connections. Sometimes, providers (including Microsoft Azure) charge nothing for load balancing.
London or New York?
The organization might be paranoid about its hotel rooms suddenly becoming unavailable. Perhaps the hotel burns down, or the room's power goes out, or a family of beavers [Ed: racoons?] is found hiding in the bedside table. To prevent this issue, the organization might choose to book a range of hotels in different parts of the city, or even in the world. The concierge now directs guests to different rooms in different hotels, to balance staff across the globe.
Most cloud providers offer a range of datacenters in different locations, with each of these datacenters having a number of separate zones, the idea being if one zone fails, the other zone will continue to run. Pretty much every single price component mentioned in both our cloud pricing reports is likely to vary by geographical location.
But how does the guest find the way to the concierge? In the cloud world, this is done by a DNS server, which directs users to the address of the concierge. The majority of providers offer a limited range of DNS capability for free. AWS' high-availability Route 53 service is charged on the number of zones that will be managed by the DNS server, and by a quantity of routing queries per billion queries/month.
I'm tired of staying in hotels – I want my own bed
While we may risk overextending the hotel analogy, we hope it has served its purpose of showing the main cost components of a virtual machine and supporting cloud infrastructure. There is a vast array of options. Cloud Pricing 101 showed that even a simple virtual machine has a range of choices, pricing plans and components. This report aims to show that on top of the virtual machine, there is a whole range of additional costing options that need to be considered.
Both reports discuss the following cost considerations (certainly not the simple 'electricity model' publicized during the early days of the cloud):

  • Virtual machine – size (CPU, memory, storage, network), prepay, reserved, minimum unit, monthly/annual commit, on-demand
  • Cloud storage – bandwidth in, bandwidth out, average storage used per month, requests
  • Load balancers – bandwidth in, bandwidth out, period available, concurrent connections
  • Images – operating system, value-add application, hourly, monthly, storage costs, subscription
  • DNS – zones, queries, IP addresses
  • Location – datacenter, availability zone

It's easy to see why most cloud providers offer pricing calculators to let potential customers calculate their expenditure.