ec2-api  9.0.0
About: OpenStack EC2 API provides a standalone EC2 (and VPC) API service.
The "Train" series (latest release).
  Fossies Dox: ec2-api-9.0.0.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

ec2-api Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies
  4. ec2-api-9.0.0.tar.gz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).
README.rst

Team and repository tags

image

OpenStack EC2 API README

Support of EC2 API for OpenStack. This project provides a standalone EC2 API service which pursues two goals:

  1. Implement VPC API
  2. Create a standalone service for EC2 API support.

Installation

Run install.sh

The EC2 API service gets installed on port 8788 by default. It can be changed before the installation in install.sh script.

The services afterwards can be started as binaries:

/usr/local/bin/ec2-api
/usr/local/bin/ec2-api-metadata
/usr/local/bin/ec2-api-s3

or set up as Linux services.

Installation in devstack:

In order to install ec2-api with devstack the following should be added to the local.conf or localrc the following line:

enable_plugin ec2-api https://opendev.org/openstack/ec2-api

To configure OpenStack for EC2 API metadata service:

for Nova-network

add:

[DEFAULT]
metadata_port = 8789
[neutron]
service_metadata_proxy = True

to /etc/nova.conf

then restart nova-metadata (can be run as part of nova-api service) and nova-network services.

for Neutron

add:

[DEFAULT]
nova_metadata_port = 8789

to /etc/neutron/metadata_agent.ini

then restart neutron-metadata service.

S3 server is intended only to support EC2 operations which require S3 server (e.g. CreateImage) in OpenStack deployments without regular object storage. It must not be used as a substitution for all-purposes object storage server. Do not start it if the deployment has its own object storage or uses a public one (e.g. AWS S3).

Usage

Download aws cli from Amazon. Create configuration file for aws cli in your home directory ~/.aws/config:

[default]
aws_access_key_id = 1b013f18d5ed47ae8ed0fbb8debc036b
aws_secret_access_key = 9bbc6f270ffd4dfdbe0e896947f41df3
region = us-east-1

Change the aws_access_key_id and aws_secret_acces_key above to the values appropriate for your cloud (can be obtained by "openstack ec2 credentials list" command).

Run aws cli commands using new EC2 API endpoint URL (can be obtained from openstack cli with the new port 8788) like this:

aws --endpoint-url http://10.0.2.15:8788 ec2 describe-instances

Supported Features and Limitations

General:
  • DryRun option is not supported.
  • Some exceptions are not exactly the same as reported by AWS.
AWS Component Command Functionality group Limitations
bold - supported, normal - supported with limitations, italic -not supported
VPC AcceptVpcPeeringConnection cross-VPC connectivity not supported
EC2, VPC AllocateAddress addresses
AllocateHosts dedicated hosts not supported
AssignIpv6Addresses network interfaces not supported
VPC AssignPrivateIpAddresses network interfaces allowReassignment parameter
EC2, VPC AssociateAddress addresses
VPC AssociateDhcpOptions DHCP options
VPC AssociateRouteTable routes
AssociateSubnetCidrBlock subnets not supported
AssociateVpcCidrBlock VPC not supported
VPC AttachClassicLinkVpc cross-VPC connectivity not supported
VPC AttachInternetGateway internet gateways
VPC AttachNetworkInterface network interfaces
EC2, EBS AttachVolume volumes
VPC AttachVpnGateway VPN
EC2, VPC AuthorizeSecurityGroupEgress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC AuthorizeSecurityGroupIngress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
BundleInstance tasks,s3 not supported
CancelBundleTask tasks,s3 not supported
CancelConversionTask tasks,s3 not supported
CancelExportTask tasks,s3 not supported
CancelImportTask tasks,s3 not supported
CancelReservedInstancesListing market not supported
CancelSpotFleetRequests market not supported
CancelSpotInstanceRequests market not supported
ConfirmProductInstance product codes not supported
EBS CopyImage image provisioning not supported
EBS CopySnapshot snapshots,s3 not supported
VPC CreateCustomerGateway VPC gateways BGPdynamicrouting
VPC CreateDhcpOptions DHCP options
CreateEgressOnlyInternetGateway VPC gateways not supported
CreateFlowLogs infrastructural not supported
EBS CreateImage images blockDeviceMapping parameter
CreateInstanceExportTask tasks,s3 not supported
VPC CreateInternetGateway VPC gateways
EC2 CreateKeyPair key pairs
CreateNatGateway NAT gateways not supported
VPC CreateNetworkAcl ACL not supported
VPC CreateNetworkAclEntry ACL not supported
VPC CreateNetworkInterface network interfaces
CreatePlacementGroup clusters not supported
CreateReservedInstancesListing market not supported
VPC CreateRoute routes vpcPeeringConnection parameter
VPC CreateRouteTable routes
EC2, VPC CreateSecurityGroup security groups
EBS CreateSnapshot snapshots
CreateSpotDatafeedSubscription market not supported
VPC CreateSubnet subnets availabilityZone parameter
EC2 CreateTags tags
EBS CreateVolume volumes iops, encrypted, kmsKeyId parameters
VPC CreateVpc VPC
VPC CreateVpcEndpoint cross-VPC connectivity not supported
VPC CreateVpcPeeringConnection cross-VPC connectivity not supported
VPC CreateVpnConnection VPN BGP dynamic routing
VPC CreateVpnConnectionRoute VPN
VPC CreateVpnGateway VPN BGP dynamic routing
VPC DeleteCustomerGateway VPC gateways
VPC DeleteDhcpOptions DHCP options
DeleteEgressOnlyInternetGateway VPC gateways not supported
DeleteFlowLogs infrastructural not supported
VPC DeleteInternetGateway VPC gateways
EC2 DeleteKeyPair key pairs
DeleteNatGateway NAT gateways not supported
VPC DeleteNetworkAcl ACL not supported
VPC DeleteNetworkAclEntry ACL not supported
VPC DeleteNetworkInterface network interfaces
EC2 DeletePlacementGroup clusters not supported
VPC DeleteRoute routes
VPC DeleteRouteTable routes
EC2, VPC DeleteSecurityGroup security groups
EBS DeleteSnapshot snapshots
DeleteSpotDatafeedSubscription market not supported
VPC DeleteSubnet subnets
EC2 DeleteTags tags
EBS DeleteVolume volumes
VPC DeleteVpc VPC
VPC DeleteVpcEndpoints cross-VPC connectivity not supported
VPC DeleteVpcPeeringConnection cross-VPC connectivity not supported
VPC DeleteVpnConnection VPN
VPC DeleteVpnConnectionRoute VPN
VPC DeleteVpnGateway VPN
EBS DeregisterImage images
EC2 DescribeAccountAttributes infrastructural vpc-max-security-groups-per-interface, max-elastic-ips, vpc-max-elastic-ips attributes
EC2, VPC DescribeAddresses addresses
EC2 DescribeAvailabilityZones availability zones
DescribeBundleTasks tasks,s3 not supported
VPC DescribeClassicLinkInstances cross-VPC connectivity not supported
DescribeConversionTasks tasks,s3 not supported
VPC DescribeCustomerGateways gateways
VPC DescribeDhcpOptions DHCP options
DescribeEgressOnlyInternetGateways VPC gateways not supported
DescribeExportTasks tasks,s3 not supported
DescribeFlowLogs infrastructural not supported
DescribeHosts dedicated hosts not supported
DescribeIdentityIdFormat resource IDs not supported
DescribeIdFormat resource IDs not supported
EBS DescribeImageAttribute images productCodes, sriovNetSupport attributes
EBS DescribeImages images
DescribeImportImageTasks tasks,s3 not supported
DescribeImportSnapshotTasks tasks,s3 not supported
EC2 DescribeInstanceAttribute instances same limitations as for ModifyInstanceAttribute
EC2, EBS, VPC DescribeInstances instances
DescribeInstanceStatus monitoring not supported
VPC DescribeInternetGateways gateways
EC2 DescribeKeyPairs key pairs
VPC DescribeMovingAddresses infrastructural not supported
DescribeNatGateways NAT gateways not supported
VPC DescribeNetworkAcls ACL not supported
VPC DescribeNetworkInterfaceAttribute network interfaces
VPC DescribeNetworkInterfaces network interfaces
EC2 DescribePlacementGroups clusters not supported
VPC DescribePrefixLists cross-VPC connectivity not supported
EC2 DescribeRegions availability zones RegionNameparameter
DescribeReservedInstances market not supported
DescribeReservedInstancesListings market not supported
DescribeReservedInstancesModifications market not supported
DescribeReservedInstancesOfferings market not supported
VPC DescribeRouteTables routes
DescribeScheduledInstanceAvailability scheduled instances not supported
DescribeScheduledInstances scheduled instances not supported
DescribeSecurityGroupReferences security groups not supported
EC2, VPC DescribeSecurityGroups security groups cidr, protocol, port, sourceGroup parameters
EBS DescribeSnapshotAttribute snapshots not supported
EBS DescribeSnapshots snapshots
DescribeSpotDatafeedSubscription market not supported
DescribeSpotFleetInstances market not supported
DescribeSpotFleetRequestHistory market not supported
DescribeSpotFleetRequests market not supported
DescribeSpotInstanceRequests market not supported
DescribeSpotPriceHistory market not supported
DescribeStaleSecurityGroups security groups not supported
VPC DescribeSubnets subnets
EC2 DescribeTags tags
EBS DescribeVolumeAttribute volumes not supported
EBS DescribeVolumes volumes
DescribeVolumeStatus monitoring not supported
VPC DescribeVpcAttribute VPC not supported
VPC DescribeVpcClassicLink cross-VPC connectivity not supported
DescribeVpcClassicLinkDnsSupport cross-VPC connectivity not supported
VPC DescribeVpcEndpoints cross-VPC connectivity not supported
VPC DescribeVpcEndpointServices cross-VPC connectivity not supported
VPC DescribeVpcPeeringConnections cross-VPC connectivity not supported
VPC DescribeVpcs VPC
VPC DescribeVpnConnections VPN
VPC DescribeVpnGateways VPN
VPC DetachClassicLinkVpc cross-VPC connectivity not supported
VPC DetachInternetGateway VPC
VPC DetachNetworkInterface network interfaces
EC2, EBS DetachVolume volumes instance_id, device, force parameters
VPC DetachVpnGateway VPN
VPC DisableVgwRoutePropagation VPN
VPC DisableVpcClassicLink cross-VPC connectivity not supported
DisableVpcClassicLinkDnsSupport cross-VPC connectivity not supported
EC2, VPC DisassociateAddress addresses
VPC DisassociateRouteTable DisassociateSubnetCidrBlock routes subnets not supported
DisassociateVpcCidrBlock VPC not supported
VPC EnableVgwRoutePropagation VPN
EBS EnableVolumeIO monitoring not supported
VPC EnableVpcClassicLink cross-VPC connectivity not supported
EnableVpcClassicLinkDnsSupport cross-VPC connectivity not supported
EC2 GetConsoleOutput instances
GetConsoleScreenshot instances not supported
EC2 GetPasswordData instances
ImportImage tasks,s3 not supported
ImportInstance tasks,s3 not supported
EC2 ImportKeyPair keypairs
ImportSnapshot tasks,s3 not supported
ImportVolume tasks,s3 not supported
ModifyHosts dedicated hosts not supported
ModifyIdentityIdFormat resource IDs not supported
ModifyIdFormat resource IDs not supported
EBS ModifyImageAttribute images productCodes attribute
EC2 ModifyInstanceAttribute instances only disableApiTermination, sourceDestCheck,instanceType supported
ModifyInstancePlacement dedicated hosts not supported
VPC ModifyNetworkInterfaceAttribute network interfaces
ModifyReservedInstances market not supported
EBS ModifySnapshotAttribute snapshots not supported
ModifySpotFleetRequest market not supported
VPC ModifySubnetAttribute subnets not supported
EBS ModifyVolumeAttribute volumes not supported
VPC ModifyVpcAttribute VPC not supported
VPC ModifyVpcEndpoint cross-VPC connectivity not supported
ModifyVpcPeeringConnectionOptions cross-VPC connectivity not supported
MonitorInstances monitoring not supported
VPC MoveAddressToVpc infrastructural not supported
PurchaseReservedInstancesOffering market not supported
PurchaseScheduledInstances scheduled instances not supported
EC2 RebootInstances instances
EBS RegisterImage images virtualizationType, sriovNetSupport parameters
VPC RejectVpcPeeringConnection cross-VPC connectivity not supported
EC2, VPC ReleaseAddress addresses
ReleaseHosts dedicated hosts not supported
VPC ReplaceNetworkAclAssociation ACL not supported
VPC ReplaceNetworkAclEntry ACL not supported
VPC ReplaceRoute routes
VPC ReplaceRouteTableAssociation routes
ReportInstanceStatus monitoring not supported
RequestSpotFleet market not supported
RequestSpotInstances market not supported
EBS ResetImageAttribute images
EC2 ResetInstanceAttribute instances same limitations as for ModifyInstanceAttribute
VPC ResetNetworkInterfaceAttribute network interfaces
EBS ResetSnapshotAttribute snapshots not supported
VPC RestoreAddressToClassic infrastructural not supported
EC2, VPC RevokeSecurityGroupEgress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC RevokeSecurityGroupIngress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC, EBS RunInstances instances placement, block_device_mapping partial support, monitoring, iamInstanceProfile, ebsOptimized, shutdownInitiatedInstanceBehavior parameters
RunScheduledInstances scheduled instances not supported
EC2 StartInstances instances
EC2 StopInstances instances
EC2 TerminateInstances instances
UnassignIpv6Addresses network interfaces not supported
VPC UnassignPrivateIpAddresses network interfaces
UnmonitorInstances monitoring not supported

References

Blueprint: https://blueprints.launchpad.net/nova/+spec/ec2-api

Spec: https://review.opendev.org/#/c/147882/