I am disappointed with the unreliable disk I/O in VPS (no matter what the virtualization and cpu/ram specs, shared disk often becomes a bottleneck).

Can someone tell me whether the disk in cloud hosting is shared? For example, if I go for Amazon EC2, is it more like an on demand VPS with shared disk/ram (on a huge box) or like an on-demand dedicated server.

3 Answers
3

Amazon EC2 and cloud are on demand VPSes with shared disk and RAM but the providers allocates fixed amount of resources to your instance. A VPS can almost never measure up to the performance of a dedicated server.

As Sameer mentioned earlier that in cloud IaaS you get access to shared resources, but for CPU, HDD-space, RAM you get a guarantee. However it is also important to note that AWS (& other IaaS providers, I'd imagine) provide different options where the no. of processors, amount of RAM, and I/O performance can be light, moderate or extensive. Apparently some providers allow you to mix-n-match cloud-hosting and colo.

It is a commonly held belief that in cloud service s.a. AWS, to make the best use of their infrastructure, you may require a completely re-architected/redesigned system, which leverages the strengths of cloud infrastructure. Take the google live-search feature for instance, or Youtube for that matter. I am sure you'd agree that these are pretty i/o intensive usage of cloud infrastructure. Of course, we may not have he luxury of doing so, always or immediately.

"Unreliable"? do you mean as in "the performance varies" or as in "sometimes it's just not there"? I can see why a cheap VPS/Cloud/whatever service might have variable IO performance but it shouldn't be disappearing etc. Certainly there's nothing inherently unstable in any hypervisor - if they're cutting corners or being incompetent then that's a different matter.

As for the IO model of cloud computing, well it varies, there's hundreds of companies doing this and they all use different components and setup/manage them differently. Even with EC2 they won't use a single storage model, the basic API is obviously the same but some of their subsystems will use one storage vendor/connection/disk-type etc. while elsewhere it'll be different.