Introduction

introduce 'elasticity'

Purpose

Document History

References

\[1\] [http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html]

\[2\] [http://support.rightscale.com/09-Clouds/AWS/02-Amazon_EC2/Designing_Failover_Architectures_on_EC2/00-Best_Practices_for_using_Elastic_IPs_(EIP)_and_Availability_Zones]

\[3\]

Scope & Assumptions

Semantic differences from AWS EIP

Functional requirements & non-requirements

Detailed Design

User API

Current set of associateIpAddress, disassociateIpAddress API's used to acquire and release a public IP is restricted to zone level public IP. Also, associateIpAddress actually combines acquiring and associating the IP with a network. Once associated with a network, there is only disassociate operation available on public IP, so public IP association can not be changed from one network to another. Due to semantic differences its not best way to extend the existing set of API's dealing with public IP management to be extended to manage EIP pool of IP's. With this premise following set of API's shall be introduced.

allocateElasticIPAddress

acquires an EIP IP from the pool of elastic IP's provisioned at region level

Request parameters:

API Response: ElasticIpAddressReponse

releaseElasticIpAddress

release EIP acquired previously

Request parameters:

API response: will return 'SuccessResponse' on success

associateElasticIpAddress

Associate acquired elastic IP with VM instance in a zone. 

Request parameters:

API Response: ElasticIpAddressReponse

disassociateElasticIpAddress

Request parameters:

API response: will return 'SuccessResponse' on success

listElasticIpAddress

Request parameters:

API Response: list of ElasticIpAddressReponse objects

Admin API

Following administrator API shall be introduced to add/delete/list IP addresses in to/from EIP pool

createElasticIpRange

Request parameters:

API Response: list of ElasticIpAddressReponse objects

deleteElasticIpRange

Request parameters:

API response: will return 'SuccessResponse' on success

listElasticIpRange

Request parameters:

 API Response: list of ElasticIpAddressReponse objects

Service Layer changes

Schema changes

Auditing

Action Events

Usage events

Upgrade

Risk/Open Issues