Amazon EC2 pioneered the cloud computing IaaS layer today. VMware vCloud Express recently entered the market. Many developers naturally are interested in how the two offerings compare – and differ – at the API level.
In this blog, I’ll compare the two APIs to help developers make better decisions about which API best meets your needs. This is not intended to be a full comparison but a high level summary. For details, you should check out their API specifications(VMware vCloud API, Amazon EC2 API).
What’s Common?
These two APIs are both designed to help developers manage IaaS cloud infrastructure. To many users, the two APIs are very similar. Viewed from the highest level, each can be used to:
- Program with REST interfaces
- Create new virtual machines
- Manage the lifecycles of the virtual machines
- Manage networking, etc.
- Manage virtual machine templates (a.k.a AMI in EC2)
- List the inventories and template catalog
What’s Different?
When we come down to the ground level, there are many differences. Let’s go over the major differences here:
- Target Audiences. EC2 is designed for single accounts and vCloud Express is designed for enterprises, SMBs and single user accounts. This is important because it affects the API design decisions.
- Concept Model. With #1 in mind, you will find vCloud APIs include a set of APIs to manage the inventory structures and users, which you don’t need in EC2. vCloud APIs consist of two set of APIs: user level APIs, similar to EC2; and an administration API.
- VM Group. EC2 can manage only one VM; vCloud can manage a group of VMs called vApp as a solution. When you have one VM in the vApp, they are the same.
- Flexibility. EC2 predefines seven types (changing over the time) of configurations with memory, storage, IO capabilities combined; vCloud relies on the OVF open standard and you can have as many configurations as you want.
- Persistence. EC2 instances don’t persist after powering off. You have to use either S3 or EBS to persist your data. vCloud vApps persist despite the power state change.
- Openness. EC2 is a proprietary API while vCloud has been submitted to DMTF with other industry leaders.
There are some implicit differences. For example, Amazon EC2 manages XEN-based infrastructures and vCloud manages vSphere based ones. Because this detail is more about implementation than interfaces, we don’t list it above. Things can change as well. Amazon may choose to implement the open vCloud API on XEN someday. Who knows?
If you want to get more information on the progress of the vCloud API, check out the VMware vCloud Community, and follow us on Twitter @vCloud or become a fan of our Facebook Page.
A significant difference that you have omitted is that EC2 allows dynamic upload of machine images (AMIs) so that a user can use an automated tool for VM creation and management (e.g., the Elastic Server Platform, rPath, Elastra(?)), so they do not have to build each one by hand or clone existing VMs, and that they can move or reuse AMIs across EC2 and Eucalyptus environments. The EC2 API command is “ec2-upload-bundle” and this significantly distinguishes EC2 from other public clouds.
Nice post. You have figured out the major differences between two products that will be beneficial while going to choose one. Both do have their own benefits and while opting for the one will entirely depend on the requirement.
Thank you very much ! You have cleared out the difference between them. Now it is becomes easy to choose one according to you requirement and benefit. It also helps me lot in clearing out the confusion between the both.