IP Library Granted Patent US 10,152,449
Granted Patent B1
US 10,152,449 · App. 13/475,399 · Granted Dec 11, 2018

User-defined capacity reservation pools for network-accessible resources

Inventor: David John Ward, Jr. (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F15/173
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,152,449
App. No.
13/475,399
Granted
Dec 11, 2018
Kind
B1
Abstract

Methods and apparatus for managing user-defined capacity reservation pools for network-accessible resources are disclosed. A system includes a plurality of resource instances of a provider network, and a resource manager. In response to a pool assignment request from a client specifying a pool identifier of a reserved instance pool created on behalf of the client, the resource manager assigns one or more resource instance reservations of the client to a pool with the first pool identifier. In response to an instance activation request from the client, the resource manager identifies a particular pool created on behalf of the client from which to select a particular resource instance reservation for activation, and activates the particular resource instance.

Claims (79)

1. A system, comprising:

a plurality of hardware computing devices configured to implement a plurality of resource instances of a provider network; and

one or more hardware computing devices configured to implement a resource manager, wherein the resource manager is configured to:

in response to receiving, from a first client, a pool assignment request specifying a first pool identifier, assign a first one or more resource instance reservations to a first reserved instance pool, wherein the first pool identifier identifies the first reserved instance pool;

create a link between the first reserved instance pool identified by the first pool identifier and a second reserved instance pool identified by a second pool identifier, wherein a second one or more resource instance reservations are assigned to the second reserved instance pool; and

in response to receiving, from the first client, an instance activation request specifying the first pool identifier identifying the first reserved instance pool:

identify a particular reserved instance pool from which to select a particular resource instance reservation for activation, wherein to identify the particular reserved instance pool, the resource manager is configured to:

determine whether there are sufficient resource instances in the first reserved instance pool to satisfy the instance activation request; and

select, based at least on a determination that there are insufficient resource instances in the first reserved instance pool to satisfy the instance activation request and on the link between the first reserved instance pool and the second reserved instance pool, the second reserved instance pool as the particular reserved instance pool from which to select the particular resource instance reservation for activation; and

activate on one of the plurality of hardware computing devices and responsive to the instance activation request that specifies the first pool identifier and based at least in part on said select the second reserved instance pool as the particular reserved instance pool, a particular resource instance of the plurality of resource instances corresponding to the second one or more resource instance reservations of the second reserved instance pool.

2. The system as recited in claim 1 , wherein, prior to assigning the first one or more resource instance reservations, the resource manager is further configured to:

in response to a pool creation request from the first client specifying the first pool identifier, create the first reserved instance pool with the first pool identifier.

3. The system as recited in claim 1 , wherein the resource manager is further configured to:

in response to a reservation transfer request specifying the particular pool as a source pool and another reserved instance pool created on behalf of the first client as a destination pool, transfer the particular resource instance reservation from the particular pool to the other pool.

4. The system as recited in claim 1 , wherein the resource manager is further configured to:

in response to an account linkage request specifying (a) an account identifier and (b) the first pool identifier, link the account identifier to the first pool identifier; and

transmit, to an owner of the account with the specified account identifier, a report associated with a resource instance reservation assigned to the pool identified by the first pool identifier.

5. The system as recited in claim 1 , wherein the resource manager is further configured to:

in response to (a) a pool sharing request specifying that the first client and a second client are to share access to a particular pool, and (b) a request for a resource instance reservation from the second client, assign a resource instance reservation from the particular pool to the second client.

6. The system as recited in claim 1 , wherein the interface manager is further configured to:

implement one or more programmatic interfaces allowing a client to specify a pool identifier of a reserved instance pool from which a resource instance reservation is to be selected in response to at least one of: an instance activation request, a report request, an instance status request, an instance description request, or a reservation transfer request;

wherein the instance activation request is received in accordance with an interface of the one or more programmatic interfaces.

7. A method, comprising:

performing, by one or more hardware computing devices:

in response to receiving, from a first client, a pool assignment request specifying a first pool identifier, assigning a first one or more resource instance reservations to a reserved instance pool, wherein the first pool identifier identifies the first reserved instance pool;

creating a link between the first reserved instance pool identified by the first pool identifier and a second reserved instance pool identified by a second pool identifier; and

in response to receiving, from the first client, an instance activation request specifying the first pool identifier identifying the first reserved instance pool:

identifying a particular pool from which to select a particular resource instance reservation for activation, wherein said identifying comprises:

determining whether there are sufficient resource instances in the first reserved instance pool to satisfy the instance activation request; and

selecting, based at least on determining that there are insufficient resource instances in the first reserved instance pool to satisfy the instance activation request and on the link between the first reserved instance pool and the second reserved instance pool, the second reserved instance pool as the particular reserved instance pool from which to select the particular resource instance reservation for activation; and

activating, responsive to the instance activation request specifying the first pool identifier and based at least in part on said selecting the second reserved instance pool as the particular reserved instance pool, a particular resource instance of the plurality of resource instances corresponding to a second one or more resource instance reservations of the second reserved instance pool.

8. The method as recited in claim 7 , further comprising:

including, within a report provided to the first client for use of the particular resource instance, an indication of a pool identifier of the particular pool.

9. The method as recited in claim 7 , further comprising:

prior to assigning the first one or more resource instance reservations, creating the first reserved instance pool with the first pool identifier in response to a pool creation request from the first client.

10. The method as recited in claim 7 , further comprising:

in response to a reservation transfer request specifying the particular pool as a source pool and an other reserved instance pool created on behalf of the first client as a destination pool, transferring the particular resource instance reservation from the particular pool to the other pool.

11. The method as recited in claim 7 , further comprising:

in response to an account linkage request specifying (a) an account identifier and (b) the first pool identifier, linking the account identifier to the first pool identifier; and

transmitting, to an owner of the account with the specified account identifier, a report associated with a resource instance reservation assigned to the pool identified by the first pool identifier.

12. The method as recited in claim 7 , further comprising:

in response to (a) a pool sharing request specifying that the first client and a second client are to share access to the particular pool, and (b) a request for a resource instance reservation from the second client, assigning a resource instance reservation from the particular pool to the second client.

13. The method as recited in claim 7 , further comprising:

implementing one or more programmatic interfaces allowing a client to specify a pool identifier of a reserved instance pool from which a resource instance reservation is to be selected in response to at least one of: an instance activation request, a report request, an instance status request, an instance description request, or a reservation transfer request;

wherein the instance activation request is received in accordance with an interface of the one or more programmatic interfaces.

14. The method as recited in claim 7 , further comprising:

associating a default reserved instance pool with the first client; and

in response to an other resource activation request from the first client, wherein the other resource activation request does not specify a reserved instance pool identifier, selecting an other resource instance reservation from the default pool for activation, and activating the other resource instance.

15. The method as recited in claim 7 , further comprising:

in response to an instance reservation request from the first client, wherein the reservation request specifies the first pool identifier, adding a new resource instance reservation to the first reserved instance pool with the first pool identifier.

16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:

in response to receiving, from a first client, a pool assignment request specifying a first pool identifier, assign a first one or more resource instance reservations to a first reserved instance pool, wherein the first pool identifier identifies the first reserved instance pool;

create a link between the first reserved instance pool identified by the first pool identifier and a second reserved instance pool identified by a second pool identifier; and

in response to receiving, from the first client, an instance activation request specifying the first pool identifier identifying the first reserved instance pool:

identify a particular pool created on behalf of the first client from which to select a particular resource instance reservation for activation, wherein to identify the particular pool, the program instruction are executable to:

determine whether there are sufficient resource instances in the first reserved instance pool to satisfy the instance activation request, and

select, based at least on a determination that there are insufficient resource instances in the first reserved instance pool to satisfy the instance activation request and on the link between the first reserved instance pool and the second reserved instance pool, the second reserved instance pool as the particular reserved instance pool from which to select the particular resource instance reservation for activation; and

activate, responsive to the instance activation request that specifies the first pool identifier and based at least in part on said select the second reserved instance pool. a particular resource instance of the plurality of resource instances corresponding to a second one or more resource instance reservations of the second reserved instance pool.

17. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

include, within a report provided to the first client for use of the particular resource instance, an indication of a pool identifier of the particular pool.

18. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

prior to assigning the first one or more resource instance reservations, create the first reserved instance pool with the first pool identifier in response to a pool creation request from the first client.

19. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

in response to a reservation transfer request specifying the particular pool as a source pool and an other reserved instance pool created on behalf of the first client as a destination pool, transfer the particular resource instance reservation from the particular pool to the other pool.

20. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

in response to an account linkage request specifying (a) an account identifier and (b) the first pool identifier, link the account identifier to the first pool identifier; and

transmit, to an owner of the account with the specified account identifier, a report associated with a resource instance reservation assigned to the pool identified by the first pool identifier.

21. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

in response to (a) a pool sharing request specifying that the first client and a second client are to share access to the particular pool, and (b) a request for a resource instance reservation from the second client, assign a resource instance reservation from the particular pool to the second client.

22. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

implement one or more programmatic interfaces allowing a client to specify a pool identifier of a reserved instance pool from which a resource instance reservation is to be selected in response to at least one of: an instance activation request, a report request, an instance status request, an instance description request, or a reservation transfer request;

wherein the instance activation request is received in accordance with an interface of the one or more programmatic interfaces.

23. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

associate a default reserved instance pool with the first client; and

in response to an other resource activation request from the first client, wherein the other resource activation request does not specify a reserved instance pool identifier, select an other resource instance reservation from the default pool for activation, and activating the other resource instance.

24. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

in response to an instance reservation request from the first client, wherein the reservation request specifies a first pool identifier, adding a new resource instance reservation to the first reserved instance pool with the first pool identifier.

25. The storage medium as recited in claim 16 , wherein the instructions when executed on the one or more processors:

store an indication of a resource activation policy in effect for the particular pool, wherein the resource activation policy comprises indications of one or more steps to be taken in response to a determination that the particular pool does not include a reservation matching one or more criteria specified in a particular instance activation request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2012
From: WARD, JR., DAVID JOHN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 028234/0888 →
Cited By (4)
US 12,189,519 US 12,386,679 US 12,436,892 US 12,683,769