Cloud Pricing Demystified

Here's a great article from 451 Research analysts Owen Rogers and William Fellows about cloud pricing.
Using hotel rooms as the analogy, they make clear all the variations available from the dozens of cloud providers hawking service.
To be explicit, AIS offers both Pay-As-You-Go and Allocated pricing models for BusinessCloud1 -- including a hybrid between the two. ClearCompute currently just has the Pay-As-You-Go model but we will entertain an Allocated model on an individual case basis.
For both cases AIS customers can specify how they want their virtual machines configured in terms of CPU power, RAM, and storage (including type of storage, e.g., SAS and SATA). We've tried to be very transparent and customer-friendly in how we set up the service and pricing models.
Emphasis in red added by me.
Brian Wood, VP Marketing

Cloud pricing 101: a room with a view

The billing method for cloud has often been described as being similar to that of electricity, with customers being able to access the resources they need, when they need them, on a pay-as-you-go basis. However, the reality of the current situation is very different. Electricity is charged on a standard unit of consumption for a standard period of time. All providers use this unit, so it is simple to compare these providers in terms of cost.
Cloud, on the other hand, is a different story. Generally, all cloud providers offer a pay-as-you-go model, but they all charge in different units of consumption. Furthermore, a typical cloud application may have many components, all of which are chargeable; this is very different from the simple electricity model. Most cloud providers offer discounts for consumers who are willing to break away from the standard on-demand model, but these models vary between providers. How can consumers compare the options when there are so many?
We'll take a look at the different IaaS pricing models and the issues of comparing them. Focusing on compute as a service, this report introduces the issues from scratch, assuming little prior knowledge of the cloud pricing landscape. The electricity analogy is a far departure from reality, so this report introduces a more comparable analogy to the hotel industry.
Why use a hotel?
Why do people use hotels? Generally because they need somewhere to sleep, but don't want to build or buy a place of their own, since it will not be used sufficiently to justify the investment. The guest chooses what type of room they want, checks in and then stays as long as is required.
Infrastructure as a service essentially works in the same manner. Consumers wish to access server technology, but don't want to invest in hardware up front and, subsequently, wait for it to be implemented. The consumer obtains access to a defined quantity of computing resources through a cloud provider and then pays a price for the period it uses these computing resources.
Choosing a hotel room
When checking in to the hotel, the guest would typically state what room they want – for instance, a single or double. The guest would not be able to define every attribute of their room, such as the size of the window or the height of the ceiling; the hotel defines exactly what a single or a double room is, and these are the only choices the consumer has.
The hotel uses these terms because it would be impossible to meet all of its guests' requirements in detail – the hotel has limited space and resources, and predefined rooms are likely to fit together better, making the most of the available floor space. Furthermore, would customers really want to specify every little detail of their room?
This is typically the same model in IaaS. A virtual machine is the typical deliverable product of computing power in IaaS. When consumers wish to access a virtual machine, they must choose the specifications of that virtual machine. Most providers bundle resources together to make a virtual machine size. For example, an AWS 'small' virtual machine contains 1.7GB of memory, one compute unit and 160GB of local storage. Consumers cannot change the components that make up the bundled virtual machine – they must either opt for a smaller or larger virtual machine product.
If the consumer doesn't use all of the resources contained within the bundled virtual machine, then these resources are wasted – cash invested in the bundle has not been used to maximum efficiency. But on the plus side, the consumer didn't waste time choosing the exact specifications of the virtual machine. However, some IaaS providers such as CloudSigma and SoftLayer allow the consumer to specify exactly what combination of resources is needed in the virtual machine.
Paying for your stay
If the hotel is huge and the guest has good credit, they can stay in the hotel as long as they wish. The hotel works on a pay-as-you-go model – if the guest has not checked out by 10am, they are liable for an additional whole night. Every month, the guest is billed for the number of nights they have stayed. The hotel does not offer fractions of days – if the guest stays past the 10am deadline, they must pay for another whole night.
All IaaS providers offer this on-demand (also known as usage-based or pay-as-you-go) pricing. Once a consumer has started a virtual machine, it can be used for as long as required. The customer is billed for the number of units of time for which they use the resource.
Amazon Web Services uses an hour as its minimum chargeable period; CloudSigma use just five minutes. This has financial implications for the consumer – if a virtual machine runs for one hour and 43 minutes, the consumer would be charged for two hours with AWS. Under CloudSigma's model, the consumer would be charged for one hour and 45 minutes.
There are other incidental charges at the hotel, too – guests are expected to tip the doorman every time (or every certain number of times) they enter or leave the building. This charge may change depending on which entrance they use, as well as how many times they come in and out, but it is typically very small. Unfortunately, the guest may not have budgeted for this cost, since they assumed these additional charges were bundled in with the cost of room. Even if they were aware of this charge, determining how many times they are likely to go in and out of the hotel is significantly more difficult than determining how many nights they will need.
In IaaS, this charge is typically called a 'data transfer' or 'bandwidth' charge. Consumers have to pay a price for data transfer, which will vary depending on if the data is being uploaded or downloaded, its source and destination (public or internal), and the quantity of data transferred. Virtual machines are generally in the consumer's control – they can start and stop them, as demand requires. Understanding, predicting, and controlling data coming in and out of virtual machines is a lot more difficult. Then again, the cost of bandwidth is often very small compared with the cost of the virtual machine.
Securing a discount in advance
Some hotels would prefer that their guests not create huge bills due to the risk that they may not be able to pay. Instead, the hotel might ask guests to pay a certain amount up front and receive 'credits.' The rooms may have an associated cost in credits, which will be cheaper than purchasing the room on demand.
In the IaaS world, this model comes in a number of variants. In subscription pricing, a regular payment is made (typically every month) over a specified term (often six or 12 months). This model has been adopted by Microsoft Azure virtual machines, where the cost of running a virtual machine is cheaper using prepaid credits than on-demand billing.
With prepaid pricing, consumers reload their credits when required. This is compulsory for FlexiScale and ElasticHosts customers. Microsoft Azure customers can choose to purchase prepaid credits, too, but these credits expire at the end of the term, and consumers are given access to additional credits every month, not in a big lump at the start of the term.
Some hotels offer the option of paying for a whole room for a month, a year or longer. The guest has to be certain that the room will be used enough that it is cheaper than paying for it on demand.
In the IaaS world, this model is called 'annual hosting' or 'monthly hosting,' and is another form of subscription pricing. ElasticHosts, GoGrid, SoftLayer, Joyent, OpSource and many others offer this option to their customers.
Alternatively, hotel guests can buy access to the hotel loyalty club for one or three years. For a price paid in advance, the guest has the option to pop into the hotel whenever a room is needed and pay less per night. Consumers can choose to pay more up front, and receive a greater discount on the nightly price. This is the basis of AWS's reserved-instance model.
For service providers, these advance-reservation models allow them to plan more efficiently and increase the stickiness of their product. Furthermore, they reduce the risk that their customers will not be able to pay for resources consumed. Consumers benefit by receiving a discount if they are confident they will need to use resources over a prolonged period. However, there are risks – if virtual machines are not fully utilized, or if too many credits are purchased, refunds are generally not offered. Many of these models automatically renew if not cancelled at the end of the term. Consumers must be confident the up-front investment will be fully utilized and subsequently paid off, and must track and monitor their commitments.
Some guests at the hotel might not require a room for the whole night. In fact, they might just want to use it for a few hours while they have a nap or catch up on work. It's not acceptable for the guest to sleep on the streets overnight, so paying the standard rate to access the room seems reasonable. However, paying the standard rate for a room when it isn't vitally important to have access to the room (and when it won't be used for a significant period) is more difficult to justify financially.
The hotel offers a spot market for these guests. Guests bid on the room, and if their bid is higher than the spot price set by the hotel, they get access to the room. If the spot price rises above the guest's maximum bid, then the guest loses access to the room and must vacate immediately, making the room ready for guests who have bid higher, or who are willing to pay standard pricing.
Amazon Web Services offers such a spot market. Consumers place a maximum bid on virtual machines, and if this bid is above the current spot price, they get access to the resource. They can use this resource to do anything, but since they can be kicked off at any time, it is likely the resource will only be used for something noncritical, such as graphic processing. Since AWS determines when to terminate the virtual machine, consumers aren't charged for any whole hours.
Choosing a hotel
There are a number of hotels, and they all offer the same basic service: access to a room when required, for as long as it is needed. They will all offer the same range of services – single or double room – but the specification of these will vary between hotels. However, they may use different pricing schemes to sell their services, and they will, of course, charge different prices based on the attractiveness of their hotel.
Between hotels, the exact specifications of the rooms will vary. In one hotel, rooms might have more TV channels than those of its competitors; in another, there might be a balcony or a view. The hotels differentiate their rooms by publishing what characteristics make it attractive. When choosing a hotel, a potential customer might look for the hotel that offers room service and a balcony, for instance. The customer will use the published list of services the hotel offers to compare it to other hotels.
There is no standard size of virtual machine in IaaS. A virtual machine instance described as 'small' on one provider will probably vary from that of another provider. In fact, there will probably be no virtual machine specification that is common among two providers. This is often because different providers choose to divide their differently specified servers into a different number of virtual machines. However, it may also be because a provider wishes to imply their virtual machines offer slightly more computational power on a similar-for-similar comparison.
There are also other room specifications that the hotel does not publish. This may be because the hotel cannot guarantee a specification – for example, the size of the hotel's double rooms might vary between floors. There may also be specifications that are tough for the provider to control, such as noise from other guests. The hotel may also be keen to hide its weaknesses (or may not even know they exist); they might be keen to say that their room has a bath, but it fails to mention the toilet doesn't flush, for instance. Some specifications are subjective – all hotels would describe their rooms as luxurious, but which is actually the best?
This problem is endemic in cloud computing. There are many metrics the cloud provider cannot guarantee – since a virtual machine shares resources with other virtual machines, a particular level of performance cannot always be guaranteed because the provider does not know what other consumers will be running, and what impact this will have on multi-tenanted applications. This is akin to having noisy neighbors, ruining the peace and quiet of the guest's room.
The provider may also wish to hide weaknesses in its products (or may not know about them) – maybe there is limited bandwidth on the network and the service is prone to bottlenecks, or perhaps there is a high disk-failure rate, which can compromise data. Consumers do not know these characteristics until they turn out to be a problem. The exact definition of a compute unit (or virtual CPU) is another area that is hidden by most providers – what physical processor is used, and what percentage is dedicated to a virtual machine, are rarely published.
Finally, subjective issues exist, too. Some clouds might use hypervisor A; others might use hypervisor B. It's difficult to say one is better than the other, so rather than risk alienating a group of users, why mention it all?
Why can't someone else choose?
Hotels all offer essentially the same range of products, delivering the same approximate services. They all allow guests to pay for only the time they spent in the room, and to be charged on completion of their stay.
IaaS providers, too, all offer the same approximate range of virtual machines, delivering the same approximate services. They all allow consumers to access computing resources, and to pay for only those they used.
Comparing hotels used to be done by comparing room specifications. That was until grading systems became commonplace – hotels, their rooms and their specifications are now reviewed by classification agencies (third parties that assign star ratings, an independent measure of quality). Guests can now match nightly costs against star ratings and make an informed decision on where to stay.
But times are changing. How often do guests just turn up at hotels nowadays? Internet hotel brokers are everywhere, promising to find the best deals for both consumers and businesses. Using user-defined specifications of arrival date, duration, ability to be flexible, payment terms and budget allows guests to define exactly what they want, and integration with other services (like flights) helps to find the best overall solution. The brokers match these demands to the supply of hotels, and find the best venue for the consumer at the best price.
Is it time IaaS providers subject themselves to such independent assessment, perhaps a star rating based on virtual machine quality, performance, availability and customer service? And then could a broker find the best combination of cost models and prices to deliver this service?
Cloud brokers are key to the concept of a Digital Infrastructure strategy. Their role will be to select and negotiate the best combination of technologies and services to meet the consumer's specifications at the best possible price. They will determine the most cost-effective portfolio of financial instruments and pricing models to deliver to the customer's specifications – in real time as circumstances change. Could cloud classification drive a fair comparison for making these real-time decisions?