IP Library › Granted Patent US 10,248,461
Granted Patent B2
US 10,248,461 · App. 15/797,190 · Granted Apr 2, 2019

Termination policies for scaling compute resources

Inventors: Derek Solomon Pai (Seattle, WA); Eric Samuel Stone (Seattle, WA); Mihir Rajendrabhai Patel (Seattle, WA); Thomas Hans Deml (Berlin, DE)
Assignee: Amazon Technologies, Inc.
G06F9/5022G06F9/455G06F9/45558G06F9/50G06F9/5005G06F9/5077G06F2009/45562G06F2009/45575
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,248,461
App. No.
15/797,190
Granted
Apr 2, 2019
Kind
B2
Abstract

Approaches are described for enabling a user to specify one or more termination policies that can be used to select which instances in a group of virtual machines (or other compute resources) allocated to the user should be terminated first when scaling down the group of virtual machine instances. The termination policies can be utilized by an automatic scaling service when managing the resources in a multitenant shared resource computing environment, such as a cloud computing environment.

Claims (57)

1. A computer implemented method for scaling compute resources, the method comprising:

receiving a plurality of user-specified termination policies, including an ordering of attributes, that is used to select one or more virtual machine instances from a group of virtual machine instances to de-provision, the group of virtual machine instances having been provisioned for a user on one or more host computing devices and the ordering of attributes determining the order in which virtual machine instances should be de-provisioned;

detecting that at least one virtual machine instance of the group of virtual machine instances should be de-provisioned based on one or more attributes associated with the at least one virtual machine instance;

selecting the at least one virtual machine instance to de-provision based at least in part on applying a user-specified termination policy of the plurality of user-specific termination policies;

applying the plurality of user-specified termination policies in a specified order until at least one virtual machine instance is selected to be de-provisioned; and

de-provisioning the selected at least one virtual machine instance.

2. The computer implemented method of claim 1 , wherein the one or more attributes associated with the at least one virtual machine instance include at least one of:

a virtual machine instance that has been executing for a longest time interval;

a virtual machine instance that has been executing for a shortest time interval;

a virtual machine instance that has an oldest launch configuration; or

a virtual machine instance that is nearest in time to a next billing time interval.

3. The computer implemented method of claim 1 , wherein the plurality of user-specified termination policies have been ranked in the specified order by a user.

4. The computer implemented method of claim 1 , wherein applying the plurality of user-specified termination policies in a specified order further comprises:

determining a subset of the group of virtual machine instances that are associated with a first attribute specified by a first termination policy; and

determining, from the subset of the group of virtual machine instances, at least one virtual machine instance that is associated with a second attribute; and

de-provisioning the at least one virtual machine instance that is associated with the second attribute.

5. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the processor, cause the computing device to:

invoke a group of virtual machine instances;

receive a plurality of user-specified termination policies ranked in order of execution that is used to select virtual machine instances in a group of virtual machine instances to de-provision, the group of virtual machine instances having been provisioned for a user on one or more host computing devices;

determine that at least one virtual machine instance in the group of virtual machine instances should be de-provisioned;

identify at least one virtual machine instance that is associated with at least one attribute specified by the user-specified termination policy;

apply the plurality of user-specified termination policies in the order of execution until at least one virtual machine instance is selected for de-provisioning; and

de-provision the at least one virtual machine instance that is associated with the at least one attribute.

6. The computing device of claim 5 , wherein receiving a user-specified termination policy further comprises:

receiving, from an application executing on the group of virtual machine instances, information used to select the at least one virtual machine instance to de-provision; and

selecting the at least one virtual machine instance based at least in part on the information received from the application.

7. The computing device of claim 5 , wherein the at least one attribute specified by the user-specified termination policy is one of:

a launch time of a virtual machine instance;

a configuration version of a virtual machine instance; or

a billing time for use of a virtual machine instance.

8. The computing device of claim 5 , wherein the instructions, when executed, further cause the computing device to:

inspect metadata associated with each virtual machine instance, the metadata including attributes of the virtual machine instances;

execute the user-specified termination policy to identify the at least one attribute specified by the user-specified termination policy; and

select the at least one virtual machine instance to de-provision based on the attributes included in the metadata.

9. A non-transitory computer readable storage medium storing one or more sequences of instructions executed by one or more processors to:

execute a group of virtual machine instances;

receive a plurality of termination policies ranked in an order of execution that are used to select virtual machine instances in a group of virtual machine instances to de-provision, the group of virtual machine instances having been provisioned for a user on one or more host computing devices;

determine that at least one virtual machine instance in the group of virtual machine instances should be de-provisioned;

execute the plurality of termination policies in the order of execution until at least one virtual machine instance that is associated with at least one attribute that is specified by a termination policy of the plurality of termination policies is identified; and

de-provision the at least one virtual machine instance that is associated with the at least one attribute.

10. The non-transitory computer readable storage medium of claim 9 further comprising instructions to:

determine a launch time of each virtual machine instance in the group of virtual machine instances; and

select the at least one virtual machine instance to be de-provisioned based at least in part on the launch time of the at least one virtual machine instance.

11. The non-transitory computer readable storage medium of claim 9 further comprising instructions to:

determine a billing time interval for each virtual machine instance in the group of virtual machine instances; and

select the at least one virtual machine instance to be de-provisioned based at least in part on identifying the virtual machine instance that is nearest in time to a billing time interval.

12. The non-transitory computer readable storage medium of claim 9 further comprising instructions to:

determine a configuration version of each virtual machine instance in the group of virtual machine instances; and

select the at least one virtual machine instance having an oldest configuration version to be de-provisioned.

13. The non-transitory computer readable storage medium of claim 12 , further comprising instructions to:

determine a subset of the group of virtual machine instances that is associated with an attribute specified by a first termination policy;

determine, from the subset of the group of virtual machine instances, at least one virtual machine instance that is associated with an attribute specified by a second termination policy; and

de-provision the at least one virtual machine instance.

14. The non-transitory computer readable medium of claim 9 , wherein the group of virtual machine instances is a group of compute resources hosted on one or more host computing devices, the group of compute resources executing at least one application for a user; and

wherein selecting the at least one virtual machine instance to be de-provisioned is performed by an automatic scaling service configured to de-provision the at least one virtual machine instance based at least in part on one or more operating metrics associated with the virtual machine instances.

Continuity (2)
Continuation 13768877 · Feb 15, 2013
Related Publication 20180060129A1 · Mar 1, 2018
Cited By (1)
US 12,236,282