Cloud Economics – A Platform Comparison


Any new technology adoption happens because of one of the three reasons:

  1. Capability: It allows us to do something which was not feasible earlier
  2. Convenience: It simplifies
  3. Cost: It significantly reduces cost of doing something

What is our expectation from cloud computing? As I had stated earlier, it is all about cost saving … (1) through elastic capacity and (2) through economy of scale. So, for any CIO who is interested in moving to cloud, it is very important to understand what the cost elements are for different cloud solutions. I am going to look at 3 platforms: Amazon EC2, Google App Engine and Microsoft Azure. They are sufficiently different from each other and each of these companies is following a different cloud strategy – so we need to understand their pricing model.

(A word of caution: this analysis is as per the published data on 20th January, 2010 and texts in green italics are my interpretation)

[Update on Amazon offering as on June, 2011]

Quick Read: Market forces seem to have ensured that all the prices are similar – for quick rule of thumb calculation to look at viability, use the following numbers irrespective of the provider. You will not go too much off the mark.

  • Base machine = $0.1 per hour (for 1.5 GHz Intel Processor)
  • Storage = $0.15 per GB per month
  • I/O = $0.01 for 1,000 write and $0.001 for 1,000 read
  • Bandwidth = $0.1 per GB for incoming traffic and $0.15 per GB for outgoing traffic

However, if you have time, you can go through the detail analysis given below.

Amazon: 

  • Overview: You can create one or more instances of a virtual machine for processing and for storage
    • You pay based on time the instances are running and not on how much they are used – if an instance is idle, you still pay for it
    • There are three physically different locations where the facility is available (called availability zones) – US(N. Virginia, N. California) and EU(Ireland)
    • When you either shutdown the machine instance or it crashes for whatever reason you lose all your data – to preserve your data you need to opt for one of the 4 possible data persistence mechanisms
    • It is possible to have a reserve instance (for 1 year or 3 years) for an initial payment and discounted rate of usage – however, I do not think it provides any guarantee against data loss because of machine crash
    • Data storage can be both relational and non-relational
  • Machine Instance: Virtual machine can be of different capacity – Standard(Small, Large, Extra Large), High-Memory(Double Extra Large, Quadruple Extra Large), High-CPU(Medium, Extra Large)
    • Charge for Machine Usage: You are charged for the time you keep the instance of the machine running – the time is calculated in hours, any fraction of hour is taken as full hour
      • Hourly charge vary from $0.085 (Small – Linux – N. Virginia) to $3.16 (Quadruple Extra Large – Windows – N. California)
      • Both Linux and Windows machine instances are supported – Windows machines are about 40% more expensive – other software charges are extra
    • There are separate charges for mapping IP addresses, for monitoring & auto scaling ($0.015 per instance per hour) and load balancing
    • A message queue is available (Simple Queue Service – SQS) but again it has a separate charge – $0.1 to $0.17 per GB depending on the total monthly volume
  • Data Persistence: To persistent data storage you can one of the 4 alternatives – Elastic Block Store (EBS) Simple DB, Simple Storage Service (S3) or Relational Database Service (RDS)
    • EBS behaves like a mountable hard drive and is automatically replicated. You can use it in any way you want.
    • Simple DB and S3 storage mechanism is not RDBMS – that is you do not have tables therefore you cannot retrieve records through using JOIN
    • RDS is an instance of MySQL – so you can use it like a normal RDBMS
    • Charges for EBS: you pay for allocated storage and I/O
      • Storage charge are $0.10 per allocated GB per month
      • I/O requests are charged separately at $0.10 per million I/O
    • Charges for Simple DB: you pay separately for CPU, disk space and data transfer – though up to a limit they are free (25 CPU hours, 1GB data transfer, 1GB of storage)
      • CPU usage calculation is normalized to 1.7 GHz Xeon (2007) processor and works out to $0.14 to $0.154 per hour depending on location
      • Data transfer In is free till June 2010 and charge for transfer Out is between $0.1 to $0.17
        per GB depending on the total monthly volume
      • Actual storage is charger at $0.25 to $0.275 per GB per month – it includes 45 bytes of overhead for each item uploaded
    • Charges for S3: You are charged for disk space, data transfer and number of request made instead of CPU usage – data transfer charges are the same
      • Storage charge varies from $.055 to $0.165 per GB per month making it slightly cheaper than Simple DB but at a higher level of usage (more than 1000 TB)
      • I/O requests are charged separately – you pay between $0.01 to $0.011 per 1,000 write requests and $0.01 to $0.011 per 10,000 read requests – deletes are free
    • Charge for RDS: You pay for storage, I/O request, data transfer and machine instance (Small, Large, Extra Large, Double Extra Large, Quadruple Extra Large) based on usage
      • You pay for RDS instance – charges vary from $0.11 to $3.10 per hour depending on the instance size
      • The storage charge is not pay as you use – you have to decide in advance (5 GB to 1 TB) and the charges are $0.10 per GB per month
      • The is no charge for backup up to the amount of storage you have chosen but you have to pay $0.15 per GB per month for extra backup
      • You pay separately for I/O at $0.10 per 1 million I/O requests

Google:

  • Overview: Application written in Python or Java can directly be deployed – the implementation is a subset
    • No need to instantiate any virtual machine
    • You are charged on the actual normalized CPU cycles used
    • Storage is only non-relational
    • Charge is calculated on these parameters – bandwidth, CPU, storage, emails send
    • You have free quota for each of these parameters – it is enough for development, testing and small deployment
    • There are limits imposed for peak usage on many different parameters – with daily limits & limits on usage in a burst
    • You will need to rewrite your application to work on Google App Engine – see this
    • Charge for CPU usage: It is calculated in CPU seconds equivalent to 1.2 GHz Intel x86 processor
      • You pay $0.10 per hour of CPU usage for processing requests
      • 6.5 hours of CPU time is free
      • You do not pay for CPU idle time
    • Charge for storage: Only non-relational storage is available
      • You pay $0.15 per GB per month – the size includes overhead, metadata and storage required for indexes
      • It includes data stored in the datastore, memcache, blobstore
      • You pay for CPU usages for data I/O at $0.10 per hour
      • 60 hours of CPU time for data I/O is free
      • Up to 1 GB of storage is freeFAQ page says that it is 500 MB
      • You are charged every day at $0.005 GB per day after subtracting your free quota
    • Charge for bandwidth usage: Inward and outward bandwidth usage is charged at different rate
      • You pay $0.10 per GB for incoming traffic
      • You pay $0.12 per GB for outgoing traffic
      • 1 GB of incoming traffic and 1 GB of outgoing traffic is free

Microsoft:

  • Overview: Offering has 3 main parts – Windows Azure, SQL Azure and App Fabric
    • Details available on the Microsoft site is more about the vision of the product than about what is implemented here and now.
    • However this document “Introducing Windows Azure” is good
    • It uses Hyper-V for virtualization – it works more like Amazon than like Google
    • There is an introductory offer where the service can be avail for free
    • The development environment is Visual Studio through an SDK
    • The emphasis of creating applications which partly runs in premise
      and partly on cloud
    • Microsoft wants to keep the programming model as much unaltered as possible – see this
    • Charge for CPU usage: It is calculated in CPU seconds equivalent to 1.2 GHz Intel x86 processor
      • You pay $0.12 per hour of CPU usage for processing requests
    • Charge for storage: Only relational storage is available in form of SQL Azure
      • You pay $0.15 per GB per month
      • Storage transactions are charged separately at $0.01 per 10,000 transactions
    • Charge for bandwidth usage: Inward and outward bandwidth usage is charged at different rate
      • You pay $0.10 per GB for incoming traffic – rates for Asia are different $0.30 per GB
      • You pay $0.15 per GB for outgoing traffic – rates for Asia are different $0.45 per GB

Looking at the complexity of pricing I see great prospect for anybody who specializes in optimizing application for cloud – unlike traditional applications – any improvement in cloud application and directly be measured in $$$ saved.

 


About these ads
Comments
21 Responses to “Cloud Economics – A Platform Comparison”
  1. Ben says:

    I am a little surprised that Sugarsync didn’t make it into this list. I personally have been using them for a long time now and am more than happy. Not only are they cheaper than most of its competitors, they also offer by far the best product in the market today.

    Also, if you use the following link to sign up for Sugarsync, you now get 5.5 GB of free online storage forever: https://www.sugarsync.com/referral?rf=ejjfpyq3n6nmz

  2. excellent read, any information on how these cloud server compare with physical server in term of performance?

    • Udayan Banerjee says:

      We have not done any rigorous benchmarking but the performance seems to be acceptable. In one instance where we migrated a MediaWiki installation to an Amazon micro instance and the performance was acceptable.

  3. May West says:

    If you need a comparison between Azure, AWS and Appengine, this free online diagnostic is pretty handy: http://www.whitestratus.com/cloud-platform-diagnostic-tool

  4. gerry says:

    Hi there

    Thanks for the post,

    I am in the process of developing a clould based service.
    Many of the posts i find relate to the clould provider.
    My issue is i dont know what programming language we should use to ensure to develop the service on to ensure

    1. Scalability
    2. Performance / Speed
    3. Security
    4. Futureproof

    It depends who we speak to some say php, others ROR, others Java etc

    Any feedback on this ?

    Thanks
    Ger

    • Udayan Banerjee says:

      I think how you architect the application is more important then the choice of language. It should be architect-ed to scale horizontally – that is – the application should be able to run seamlessly on multiple machine instance. However, I am not sure if ROR is a viable solution.

      However, i doubt if future proofing is feasible as the technology is evolving very fast. If you get it right – you can consider yourself lucky. Similarly, be prepared to look foolish few years down the line for your current choice of technology. (I still remember there was a time when Java Swing appeared to be the technology to bet on)

  5. Petr Volny says:

    Hi Udayan,
    great post. I also tried to do some cloud providers comparison (Amazon, Rackspace, ReliaCloud, Joyent) – http://sevcloud.blogspot.com/2010/05/cloud-hosting-price-comparison.html
    Petr

  6. Udayan

    Wow! Your blog is a goldmine of information. Really great comparison of the economics of the prevailing leaders in Cloud Computing space. Other posts around Cloud are really insightful as well. I analyzed the Infrastructure-as-a-Service (http://www.prudentcloud.com/cloud-computing-technology/graduating-cloud-to-enterprise-infrastructure-as-a-service-20012010/) and Platform-as-a-Service (http://www.prudentcloud.com/cloud-computing-technology/graduating-cloud-to-the-enterprise-platform-as-a-service-25012010/) landscape as part of strategy consulting I did. Thought your readers might find it useful.

  7. TryingToHelp says:

    You say “When you either shutdown the machine instance or it crashes for whatever reason you lose all your data.” But you don’t say that this can be avoided by mounting to an EBS volume and storing persistent data and settings in EBS. EBS is like an external hard drive for your instance. EBS is a high-availablity storage system and should not fail. This feature has been around a long time. I suggest doing more thorough research and reposting. As is, this post is very misleading.

  8. Hi Udayan,
    Thanks for this post. I have bookmarked it as a reference!

    Incidentally, I am working on a similar analysis for one of my blog posts.

    Please take a look at my post on the Cloud Computing opportunity in India – http://www.janakiramm.net/blog/who-will-win-the-cloud-computing-battle-in-india

    – Janakiram

Trackbacks
Check out what others are saying...
  1. […] Udayan Banerjee, Cloud Economics – A Platform Comparison, Udayan Banerjee’s Blog – From The Other Side (Jan. 21, 2010, 1:12 PM), http://setandbma.wordpress.com/2010/01/21/cloud-economics-a-platform-comparison.
 […]

  2. […] had taken a dipstick of the prevailing AWS prices on Jan-10 which you can check here. There is no doubt that the breadth and the depth of offering has increased significantly, but we […]

  3. […] Is there a significant change in the pricing? The answer is almost none – there slight decrease in the charge of higher end EC2 instances. You can see the summary status as on January 2010. […]

  4. […] Is there a significant change in the pricing? The answer is almost none – there slight decrease in the charge of higher end EC2 instances. You can see the summary status as on January 2010. […]

  5. […] 14 months. However, such trend in not yet visible. I had done an analysis one year back – Cloud Economics – A Platform Comparison. You can use data from that post to do your own calculation. Leave a Comment LikeBe the first […]

  6. […] wants to make their presence felt in the cloud – the following are the major players and here a summary of the pricing structure of EC2, Azure & GAE for your quick […]

  7. […] This link provides some detailed information about the comparison of EC2 , Google App Engine and Microsoft Azure from the pricing perspective. Share the bee buzz: […]

  8. […] for dedicated server hosting and Amazon for on-demand cloud hosting. (In an earlier post I had compared the cost of different cloud providers). This is only a direct cost comparison. I have not considered issues like support, security, […]

  9. […] for 2010-01-28 Cloud Economics – A Platform Comparison « Udayan Banerjee’s Blog – From The Other Side detailed look at costs & quotas for the three highest profile cloud platforms. (tags: google […]

  10. […] [Detailed comparison of cost – Cloud Economics – A Platform Comparison] […]



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,005 other followers

%d bloggers like this: