Jump to: navigation, search

Difference between revisions of "Nova/APIFeatureComparison"

(Amazon EC2 API Compatability)
 
(18 intermediate revisions by 6 users not shown)
Line 1: Line 1:
__NOTOC__
 
This page attempts to enumerate how [[OpenStack]], Eucalyptus and [[CloudStack]] compare in regards to EC2 API support.  Corrections/contributions welcome.
 
  
= General API Support =
+
= EC2 API Comparison Matrix =
 +
 
 +
This page attempts to enumerate how [[OpenStack]], Eucalyptus and [https://cloudstack.apache.org/ Apache CloudStack]  compare in regards to EC2 API support.  Corrections/contributions welcome. ''X indicates unsupported''.
 +
 
 +
== General API Support ==
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 8: Line 10:
 
|  Eucalyptus  
 
|  Eucalyptus  
 
|  [[OpenStack]]  
 
|  [[OpenStack]]  
 +
|  Apache CloudStack
 +
 
|-
 
|-
 
|  EC2 Query API                         
 
|  EC2 Query API                         
(./)        
+
Y        
(./)     
+
Y   
 +
|  Y   
 +
 
|-
 
|-
 
|  EC2 Soap API                         
 
|  EC2 Soap API                         
 
|  (./)       
 
|  (./)       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|  (./)     
 
|-
 
|-
 
|  OpenStack API / Rackspace API       
 
|  OpenStack API / Rackspace API       
 
|<span style="font-size: large; color: white; background: red">|X</span>         
 
|<span style="font-size: large; color: white; background: red">|X</span>         
|  (./)    
+
|  (./)    
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|-
 
|-
 
|  SSL Between Components               
 
|  SSL Between Components               
 
|  (./)       
 
|  (./)       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|  (./)           
 
|-
 
|-
 
|  Horizontal Component Scalability     
 
|  Horizontal Component Scalability     
|<span style="font-size: large; color: white; background: red">|X</span>       
+
| (./)     
 +
| (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  Web-based UI                         
 
|  Web-based UI                         
 
|  (./)       
 
|  (./)       
|  (./)    
+
|  (./)
 +
|  (./)         
 
|-
 
|-
 
|  Command line interface               
 
|  Command line interface               
 
|  (./)       
 
|  (./)       
|  (./)    
+
|  (./)  
 +
|  (./)       
 
|}
 
|}
  
= Amazon EC2 High Level Feature Support =
+
== Amazon EC2 High Level Feature Support ==
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 44: Line 56:
 
|  Eucalyptus  
 
|  Eucalyptus  
 
|  [[OpenStack]]  
 
|  [[OpenStack]]  
 +
|  Apache CloudStack
 +
 
|-
 
|-
 
|  Shared AMIs                           
 
|  Shared AMIs                           
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Parameterized launch (user-data)     
 
|  Parameterized launch (user-data)     
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Instance metadata                     
 
|  Instance metadata                     
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Public AMI's                         
 
|  Public AMI's                         
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Launch/Terminate Instance             
 
|  Launch/Terminate Instance             
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Reboot Instance                       
 
|  Reboot Instance                       
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Start/Stop Persisted Instance       
 
|  Start/Stop Persisted Instance       
|<span style="font-size: large; color: white; background: red">|X</span>     
+
| (./
 
|  (./)       
 
|  (./)       
 +
|  (./) 
 
|-
 
|-
 
|  Retrieve Console Output               
 
|  Retrieve Console Output               
 
|      (./)   
 
|      (./)   
 
|      (./)   
 
|      (./)   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|-
 
|-
 
|  Paid AMI's                           
 
|  Paid AMI's                           
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|<span style="font-size: large; color: white; background: red">|X</span>         
 
|-
 
|-
 
|  Multiple Instance Types               
 
|  Multiple Instance Types               
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Instance Launch Time                 
 
|  Instance Launch Time                 
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Elastic IP's                         
 
|  Elastic IP's                         
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Availability Zones                   
 
|  Availability Zones                   
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
Line 100: Line 127:
 
|      (./)   
 
|      (./)   
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 +
 
|-
 
|-
 
|  User selectable kernels               
 
|  User selectable kernels               
 
|      (./)   
 
|      (./)   
 
|      (./)   
 
|      (./)   
 +
|<span style="font-size: large; color: white; background: red">|X</span>         
 
|-
 
|-
 
|  Elastic Block Store                   
 
|  Elastic Block Store                   
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Booting without a ramdisk             
 
|  Booting without a ramdisk             
 
|      (./)   
 
|      (./)   
 +
|      (./) 
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  Windows Support                       
 
|  Windows Support                       
|<span style="font-size: large; color: white; background: red">|X</span>     
+
|     (./)   
|      (./)
+
|     (./)
 +
|      (./)  
 
|-
 
|-
 
|  Reserved Instances                   
 
|  Reserved Instances                   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|      (./) 
 
|-
 
|-
 
|  Auto Scaling                         
 
|  Auto Scaling                         
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|  (./)   
|<span style="font-size: large; color: white; background: red">|X</span>     
+
|<span style="font-size: large; color: white; background: red">|X</span>
 +
|     (./)       
 
|-
 
|-
 
|  Elastic Load Balancing               
 
|  Elastic Load Balancing               
|<span style="font-size: large; color: white; background: red">|X</span>        
+
| (./)        
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>    
 +
|      (./)   
 
|-
 
|-
 
|  [[CloudWatch]]                           
 
|  [[CloudWatch]]                           
 +
|(./)     
 +
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>     
+
 
 
|-
 
|-
 
|  Virtual Private Cloud (IPSec)         
 
|  Virtual Private Cloud (IPSec)         
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|      (./)       
 
|-
 
|-
 
|  Shared Snapshots                     
 
|  Shared Snapshots                     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>    
 +
|      (./)     
 
|-
 
|-
 
|  AMI's backed by EBS                   
 
|  AMI's backed by EBS                   
|<span style="font-size: large; color: white; background: red">|X</span>        
+
|(./)        
 
|      (./)   
 
|      (./)   
 +
|      (./)   
 
|-
 
|-
 
|  Spot Instances                       
 
|  Spot Instances                       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|<span style="font-size: large; color: white; background: red">|X</span>
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
     
 
|-
 
|-
 
|  Sticky session in Elastic LB         
 
|  Sticky session in Elastic LB         
|<span style="font-size: large; color: white; background: red">|X</span>        
+
| (./)        
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|      (./)   
 
|-
 
|-
 
|  cc1.4xlarge                           
 
|  cc1.4xlarge                           
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>       
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|      (./)        
 
|-
 
|-
 
|  Specify IP address for inst in VPC   
 
|  Specify IP address for inst in VPC   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|      (./)     
 
|-
 
|-
 
|  Tags                                 
 
|  Tags                                 
|<span style="font-size: large; color: white; background: red">|X</span>        
+
| (./)        
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>    
 +
|      (./)     
 
|-
 
|-
 
|  Filters                               
 
|  Filters                               
 +
| (./)     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
|<span style="font-size: large; color: white; background: red">|X</span>     
+
|     (./)   
 
|-
 
|-
 
|  Idempotent [[RunInstance]] Calls         
 
|  Idempotent [[RunInstance]] Calls         
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  Import keypair                       
 
|  Import keypair                       
|<span style="font-size: large; color: white; background: red">|X</span>     
+
| (./)   
 +
|     (./
 
|      (./)   
 
|      (./)   
 
|-
 
|-
 
|  SSL termination                       
 
|  SSL termination                       
|<span style="font-size: large; color: white; background: red">|X</span>      
+
| (./)     
|<span style="font-size: large; color: white; background: red">|X</span>     
+
|<span style="font-size: large; color: white; background: red">|X</span>  
 +
|     (./)     
 
|}
 
|}
  
= Amazon EC2 API Compatability =
+
== Amazon EC2 API Compatability ==
  
Note: Info on Eucalyptus was provided entirely by doing a grep of the source code. The Eucalyptus repository is [https://launchpad.net/eucalyptus here].  Info on [[CloudStack]]'s [[CloudBridge]] EC2 Commands was provided from [http://docs.cloudstack.org/@api/deki/files/165/CloudBridgeGuide.pdf CloudStack's Cloud Bridge Guide]. Eucalyptus and [[OpenStack]]'s EC2 support is integrated into the respective code bases.  [[CloudStack]]'s support is provided by running a [[CloudBridge]] proxy server.  Source code for the [[CloudBridge]] proxy is [https://github.com/CloudStack/CloudBridge here].
+
Note: Info on Eucalyptus was provided entirely by doing a grep of the source code. The Eucalyptus repository is [https://launchpad.net/eucalyptus here].  Info on [[CloudStack]]'s EC2 Commands was provided from [https://cwiki.apache.org/confluence/x/rgHVAQ CloudStack's AWS API Guide]. Eucalyptus and [[OpenStack]]'s EC2 support is integrated into the respective code bases.  Source code for the Apache CloudStack EC2 API  is [https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=tree;f=awsapi here].
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 190: Line 241:
 
|  Eucalyptus  
 
|  Eucalyptus  
 
|  [[OpenStack]]  
 
|  [[OpenStack]]  
 +
|  Apache CloudStack
 
|-
 
|-
 
|  AllocateAddress                     
 
|  AllocateAddress                     
 
|  (./)       
 
|  (./)       
|  (./)    
+
|  (./)
 +
|  (./)   
 
|-
 
|-
 
|  AssociateAddress                   
 
|  AssociateAddress                   
 
|  (./)       
 
|  (./)       
|  (./)    
+
|  (./)    
 +
|  (./) 
 
|-
 
|-
 
|  AttachVolume                       
 
|  AttachVolume                       
 
|  (./)       
 
|  (./)       
 +
|  (./) 
 
|  (./)       
 
|  (./)       
 
|-
 
|-
Line 206: Line 261:
 
|  (./)       
 
|  (./)       
 
|  (./)       
 
|  (./)       
 +
|  (./) 
 
|-
 
|-
 
|  BundleInstance                     
 
|  BundleInstance                     
 +
| (./) 
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
|<span style="font-size: large; color: white; background: red">|X</span>     
 
 
|-
 
|-
 
|  CancelBundleTask                   
 
|  CancelBundleTask                   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|-
 
|-
 
|  CancelSpotInstanceRequests         
 
|  CancelSpotInstanceRequests         
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|-
 
|-
 
|  ConfirmProductInstance             
 
|  ConfirmProductInstance             
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|-
 
|-
 
|  CreateImage                         
 
|  CreateImage                         
|<span style="font-size: large; color: white; background: red">|X</span>    
+
| (./)    
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|  (./)     
 
|-
 
|-
 
|  CreateKeyPair                       
 
|  CreateKeyPair                       
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  CreatePlacementGroup               
 
|  CreatePlacementGroup               
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  CreateSecurityGroup                 
 
|  CreateSecurityGroup                 
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  CreateSnapshot                     
 
|  CreateSnapshot                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  CreateSpotDatafeedSubscription     
 
|  CreateSpotDatafeedSubscription     
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  CreateTags                         
 
|  CreateTags                         
|<span style="font-size: large; color: white; background: red">|X</span>    
+
| (./)    
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
| (./)     
 
|-
 
|-
 
|  CreateVolume                       
 
|  CreateVolume                       
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DeleteKeyPair                       
 
|  DeleteKeyPair                       
 
|  (./)       
 
|  (./)       
 +
|  (./)   
 
|  (./)       
 
|  (./)       
 +
 
 
|-
 
|-
 
|  DeletePlacementGroup               
 
|  DeletePlacementGroup               
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
 
|-
 
|-
 
|  DeleteSecurityGroup                 
 
|  DeleteSecurityGroup                 
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DeleteSnapshot                     
 
|  DeleteSnapshot                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DeleteSpotDatafeedSubscription     
 
|  DeleteSpotDatafeedSubscription     
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
|-
 
|-
 
|  DeleteTags                         
 
|  DeleteTags                         
|<span style="font-size: large; color: white; background: red">|X</span>    
+
| (./)    
|<span style="font-size: large; color: white; background: red">|X</span>       
+
|<span style="font-size: large; color: white; background: red">|X</span>
 +
| (./)        
 +
     
 
|-
 
|-
 
|  DeleteVolume                       
 
|  DeleteVolume                       
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DeregisterImage                     
 
|  DeregisterImage                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeAddresses                   
 
|  DescribeAddresses                   
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeAvailabilityZones           
 
|  DescribeAvailabilityZones           
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeBundleTasks                 
 
|  DescribeBundleTasks                 
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
|-
 
|-
 
|  DescribeImageAttribute             
 
|  DescribeImageAttribute             
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeImages                     
 
|  DescribeImages                     
 
|  (./)       
 
|  (./)       
 +
|  (./)
 
|  (./)       
 
|  (./)       
 +
   
 
|-
 
|-
 
|  DescribeInstanceAttribute           
 
|  DescribeInstanceAttribute           
|<span style="font-size: large; color: white; background: red">|X</span>    
+
| (./)    
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>
 +
|  (./)     
 
|-
 
|-
 
|  DescribeInstances                   
 
|  DescribeInstances                   
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeKeyPairs                   
 
|  DescribeKeyPairs                   
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribePlacementGroups             
 
|  DescribePlacementGroups             
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
   
 
|-
 
|-
 
|  DescribeRegions                     
 
|  DescribeRegions                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeReservedInstances           
 
|  DescribeReservedInstances           
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  DescribeReservedInstancesOfferings  
 
|  DescribeReservedInstancesOfferings  
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  DescribeSecurityGroups             
 
|  DescribeSecurityGroups             
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeSnapshotAttribute           
 
|  DescribeSnapshotAttribute           
|<span style="font-size: large; color: white; background: red">|X</span>  
+
| (./)
 +
|<span style="font-size: large; color: white; background: red">|X</span>    
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
 
|-
 
|-
 
|  DescribeSnapshots                   
 
|  DescribeSnapshots                   
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DescribeSpotDatafeedSubscription   
 
|  DescribeSpotDatafeedSubscription   
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
   
 
|-
 
|-
 
|  DescribeSpotInstanceRequests       
 
|  DescribeSpotInstanceRequests       
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  DescribeSpotPriceHistory           
 
|  DescribeSpotPriceHistory           
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
|-
 
|-
 
|  DescribeTags                       
 
|  DescribeTags                       
|<span style="font-size: large; color: white; background: red">|X</span>  
+
| (./) 
 +
|<span style="font-size: large; color: white; background: red">|X</span>  
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
 
|-
 
|-
 
|  DescribeVolumes                     
 
|  DescribeVolumes                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DetachVolume                       
 
|  DetachVolume                       
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  DisassociateAddress                 
 
|  DisassociateAddress                 
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
Line 378: Line 487:
 
|  (./)       
 
|  (./)       
 
|  (./)       
 
|  (./)       
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|-
 
|-
 
|  GetPasswordData                     
 
|  GetPasswordData                     
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
|<span style="font-size: large; color: white; background: red">|X</span>      
+
|<span style="font-size: large; color: white; background: red">|X</span>    
 +
|  (./)     
 +
 
 
|-
 
|-
 
|  ImportKeyPair                       
 
|  ImportKeyPair                       
|<span style="font-size: large; color: white; background: red">|X</span> 
+
| (./) 
|<span style="font-size: large; color: white; background: red">|X</span>     
+
|   (./)     
 +
|   (./)     
 
|-
 
|-
 
|  ModifyImageAttribute               
 
|  ModifyImageAttribute               
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  ModifyInstanceAttribute             
 
|  ModifyInstanceAttribute             
 +
| (./)
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
   
 
|-
 
|-
 
|  ModifySnapshotAttribute             
 
|  ModifySnapshotAttribute             
|<span style="font-size: large; color: white; background: red">|X</span>  
+
| (./) 
 +
|<span style="font-size: large; color: white; background: red">|X</span>      
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  MonitorInstances                   
 
|  MonitorInstances                   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>     
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|-
 
|-
 
|  PurchaseReservedInstancesOffering   
 
|  PurchaseReservedInstancesOffering   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span> 
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
   
 
|-
 
|-
 
|  RebootInstances                     
 
|  RebootInstances                     
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  RegisterImage                       
 
|  RegisterImage                       
 
|  (./)       
 
|  (./)       
 +
|  (./)   
 
|  (./)       
 
|  (./)       
 +
 
|-
 
|-
 
|  ReleaseAddress                     
 
|  ReleaseAddress                     
 
|  (./)       
 
|  (./)       
 +
|  (./)   
 
|  (./)       
 
|  (./)       
 +
 
 
|-
 
|-
 
|  RequestSpotInstances               
 
|  RequestSpotInstances               
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
     
 
|-
 
|-
 
|  ResetImageAttribute                 
 
|  ResetImageAttribute                 
 
|  (./)       
 
|  (./)       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
|  (./)     
 
|-
 
|-
 
|  ResetInstanceAttribute             
 
|  ResetInstanceAttribute             
|<span style="font-size: large; color: white; background: red">|X</span>  
+
| (./) 
 +
|<span style="font-size: large; color: white; background: red">|X</span>    
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
 
|-
 
|-
 
|  ResetSnapshotAttribute             
 
|  ResetSnapshotAttribute             
 +
| (./) 
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
   
 
|-
 
|-
 
|  RevokeSecurityGroupIngress         
 
|  RevokeSecurityGroupIngress         
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|  (./)       
 
|  (./)       
 
|-
 
|-
 
|  RunInstances                       
 
|  RunInstances                       
 
|  (./)       
 
|  (./)       
 +
|  (./) 
 
|  (./)       
 
|  (./)       
 +
 
 
|-
 
|-
 
|  StartInstances                     
 
|  StartInstances                     
|<span style="font-size: large; color: white; background: red">|X</span>    
+
| (./)    
|<span style="font-size: large; color: white; background: red">|X</span>        
+
| (./)     
 +
| (./)        
 
|-
 
|-
 
|  StopInstances                       
 
|  StopInstances                       
|<span style="font-size: large; color: white; background: red">|X</span> 
+
| (./) 
|<span style="font-size: large; color: white; background: red">|X</span>        
+
| (./)   
 +
| (./)        
 +
 
 
|-
 
|-
 
|  TerminateInstances                 
 
|  TerminateInstances                 
 
|  (./)       
 
|  (./)       
 
|  (./)       
 
|  (./)       
 +
|  (./)     
 
|-
 
|-
 
|  UnmonitorInstances                 
 
|  UnmonitorInstances                 
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 
|<span style="font-size: large; color: white; background: red">|X</span>   
 +
|<span style="font-size: large; color: white; background: red">|X</span>
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 
|<span style="font-size: large; color: white; background: red">|X</span>       
 +
     
 
|}
 
|}
  
 
----
 
----
 
[[Category:Nova]]
 
[[Category:Nova]]

Latest revision as of 18:55, 5 June 2014

EC2 API Comparison Matrix

This page attempts to enumerate how OpenStack, Eucalyptus and Apache CloudStack compare in regards to EC2 API support. Corrections/contributions welcome. X indicates unsupported.

General API Support

Feature Eucalyptus OpenStack Apache CloudStack
EC2 Query API Y Y Y
EC2 Soap API (./) X (./)
OpenStack API / Rackspace API X (./) X
SSL Between Components (./) X (./)
Horizontal Component Scalability (./) (./) (./)
Web-based UI (./) (./) (./)
Command line interface (./) (./) (./)

Amazon EC2 High Level Feature Support

EC2 feature Eucalyptus OpenStack Apache CloudStack
Shared AMIs (./) (./) (./)
Parameterized launch (user-data) (./) (./) (./)
Instance metadata (./) (./) (./)
Public AMI's (./) (./) (./)
Launch/Terminate Instance (./) (./) (./)
Reboot Instance (./) (./) (./)
Start/Stop Persisted Instance (./) (./) (./)
Retrieve Console Output (./) (./) X
Paid AMI's X X X
Multiple Instance Types (./) (./) (./)
Instance Launch Time (./) (./) (./)
Elastic IP's (./) (./) (./)
Availability Zones (./) (./) (./)
Region Support (./) (./) (./)
User selectable kernels (./) (./) X
Elastic Block Store (./) (./) (./)
Booting without a ramdisk (./) (./) (./)
Windows Support (./) (./) (./)
Reserved Instances X X (./)
Auto Scaling (./) X (./)
Elastic Load Balancing (./) X (./)
CloudWatch (./) X X
Virtual Private Cloud (IPSec) X X (./)
Shared Snapshots X X (./)
AMI's backed by EBS (./) (./) (./)
Spot Instances X X X
Sticky session in Elastic LB (./) X (./)
cc1.4xlarge X X (./)
Specify IP address for inst in VPC X X (./)
Tags (./) X (./)
Filters (./) X (./)
Idempotent RunInstance Calls X X X
Import keypair (./) (./) (./)
SSL termination (./) X (./)

Amazon EC2 API Compatability

Note: Info on Eucalyptus was provided entirely by doing a grep of the source code. The Eucalyptus repository is here. Info on CloudStack's EC2 Commands was provided from CloudStack's AWS API Guide. Eucalyptus and OpenStack's EC2 support is integrated into the respective code bases. Source code for the Apache CloudStack EC2 API is here.

EC2 API method Eucalyptus OpenStack Apache CloudStack
AllocateAddress (./) (./) (./)
AssociateAddress (./) (./) (./)
AttachVolume (./) (./) (./)
AuthorizeSecurityGroupIngress (./) (./) (./)
BundleInstance (./) X X
CancelBundleTask X X X
CancelSpotInstanceRequests X X X
ConfirmProductInstance X X X
CreateImage (./) X (./)
CreateKeyPair (./) (./) (./)
CreatePlacementGroup X X X
CreateSecurityGroup (./) (./) (./)
CreateSnapshot (./) (./) (./)
CreateSpotDatafeedSubscription X X X
CreateTags (./) X (./)
CreateVolume (./) (./) (./)
DeleteKeyPair (./) (./) (./)
DeletePlacementGroup X X X
DeleteSecurityGroup (./) (./) (./)
DeleteSnapshot (./) (./) (./)
DeleteSpotDatafeedSubscription X X X
DeleteTags (./) X (./)
DeleteVolume (./) (./) (./)
DeregisterImage (./) (./) (./)
DescribeAddresses (./) (./) (./)
DescribeAvailabilityZones (./) (./) (./)
DescribeBundleTasks X X X
DescribeImageAttribute (./) (./) (./)
DescribeImages (./) (./) (./)
DescribeInstanceAttribute (./) X (./)
DescribeInstances (./) (./) (./)
DescribeKeyPairs (./) (./) (./)
DescribePlacementGroups X X X
DescribeRegions (./) (./) (./)
DescribeReservedInstances X X X
DescribeReservedInstancesOfferings X X X
DescribeSecurityGroups (./) (./) (./)
DescribeSnapshotAttribute (./) X X
DescribeSnapshots (./) (./) (./)
DescribeSpotDatafeedSubscription X X X
DescribeSpotInstanceRequests X X X
DescribeSpotPriceHistory X X X
DescribeTags (./) X X
DescribeVolumes (./) (./) (./)
DetachVolume (./) (./) (./)
DisassociateAddress (./) (./) (./)
GetConsoleOutput (./) (./) X
GetPasswordData X X (./)
ImportKeyPair (./) (./) (./)
ModifyImageAttribute (./) (./) (./)
ModifyInstanceAttribute (./) X X
ModifySnapshotAttribute (./) X X
MonitorInstances X X X
PurchaseReservedInstancesOffering X X X
RebootInstances (./) (./) (./)
RegisterImage (./) (./) (./)
ReleaseAddress (./) (./) (./)
RequestSpotInstances X X X
ResetImageAttribute (./) X (./)
ResetInstanceAttribute (./) X X
ResetSnapshotAttribute (./) X X
RevokeSecurityGroupIngress (./) (./) (./)
RunInstances (./) (./) (./)
StartInstances (./) (./) (./)
StopInstances (./) (./) (./)
TerminateInstances (./) (./) (./)
UnmonitorInstances X X X