IP Library › Granted Patent US 12,056,024
Granted Patent B1
US 12,056,024 · App. 17/710,406 · Granted Aug 6, 2024

Managing the placement of virtual resources between partitions of resources in availability zones

Inventors: Disha Mathad (Seattle, WA); Matthys Strydom (Kirkland, WA); Neilen Marais (Cape Town, ZA)
Assignee: AMAZON TECHNOLOGIES, INC.
G06F11/1484G06F9/45558G06F9/505G06F9/5072G06F9/5077G06F11/0712G06F2009/4557
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 12,056,024
App. No.
17/710,406
Granted
Aug 6, 2024
Kind
B1
Abstract

Techniques for a service provider network to divide computing resources of availability zones into smaller, isolated partitions (or “cells”), and manage the placement of virtual computing resources into the cells to reduce overconsumption of computing resources in the cells while ensuring ensure resiliency and availability. As virtual computing resources are launched into cells, or migrated between cells, the service provider network may load balance the virtual computing resources on a per-user basis to ensure resiliency and availability across the cells. Further, the service provider network may monitor the number of mutations (e.g., an operation that affects the state of a virtual computing resource) in each cell, as well as utilization rates of the underlying computing resources, and load balance virtual computing resource to maintain stable mutation rates and reduce over utilization (and/or under-utilization) of computing resources.

Claims (101)

1. A system comprising:

a plurality of data centers located in geographic regions of a service provider network, the plurality of data centers comprising computing resources that are grouped into availability zones with isolated failure domains;

one or more processors; and

one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

instantiating first and second cells of a service stack in an availability zone, wherein the service stack is configured to manage at least a launch of a type of resource in the availability zone, and wherein the first and second cells of the service stack are logically isolated from one another;

receiving a request to launch a virtual computing resource of the type of resource in the availability zone on behalf of a user account associated with the service provider network;

determining that the user account has other virtual computing resources running in the first cell and the second cell;

receiving first mutation data indicating a first rate at which modifications are made to first virtual computing resources in the first cell;

receiving second mutation data indicating a second rate at which modifications are made to second virtual computing resources in the second cell;

determining, using the first mutation data, a first heat value indicating utilization of the first virtual computing resources of the first cell;

determining, using the second mutation data, a second heat value indicating utilization of the second virtual computing resources of the second cell; and

launching the virtual computing resource in the first cell based on the first heat value and the second heat value.

2. The system of claim 1 , the operations further comprising:

determining that the first cell has experienced a failure;

determining a group of cells in which the user account has virtual computing resources running;

selecting a third cell from amongst the group of cells; and

moving the virtual computing resource to the third cell.

3. The system of claim 1 , the operations further comprising:

partitioning third computing resources, included in the availability zone, into a third cell for use by third virtual computing resources;

receiving input indicating that virtual computing resources associated with the user account are restricted from running in more than a threshold number of cells;

determining that the virtual computing resources associated with the user account are running in the threshold number of cells; and

refraining from selecting the third cell to launch the virtual computing resource based at least in part on the virtual computing resources associated with the user account running in the threshold number of cells.

4. A computer-implemented method comprising:

determining to run a virtual computing resource in an availability zone of a service provider network, the availability zone including a first cell and a second cell of a service stack, the first cell allocated first computing resources that are logically isolated from second computing resources allocated to the second cell;

determining a first value that represents at least a first amount of modifications made to first virtual computing resources running in the first cell;

determining a second value that represents at least a second amount of modifications made to second virtual computing resources running in the second cell;

determining to run the virtual computing resource in the first cell based at least in part on the first value and the second value; and

launching the virtual computing resource on the first computing resources allocated to the first cell.

5. The computer-implemented method of claim 4 , further comprising:

receiving a request to run the virtual computing resource in the availability zone on behalf of a user account; and

identifying the first virtual computing resources and the second virtual computing resources as being run on behalf of the user account such that the first value and the second value are per-account values for the user account.

6. The computer-implemented method of claim 4 , wherein the virtual computing resource is run on behalf of a user account associated with the service provider network, further comprising:

determining that the first cell has experienced a failure or been removed from the availability zone;

determining a group of cells in which the user account has virtual computing resources running;

selecting a third cell from amongst the group of cells; and

moving the virtual computing resource to the third cell.

7. The computer-implemented method of claim 4 , wherein the virtual computing resource is run on behalf of a user account associated with the service provider network, further comprising:

determining that a third cell has been created in the availability zone;

determining a threshold number of cells in which the user account is permitted to run the virtual computing resources;

determining that the user account is running virtual computing resources in less than the threshold number of cells; and

launching another virtual computing resource on behalf of the user account on third computing resources of the third cell based at least in part on the user account running virtual computing resources in less than the threshold number of cells.

8. The computer-implemented method of claim 4 , wherein the virtual computing resource is run on behalf of a user account associated with the service provider network, further comprising:

determining that the user account is restricted from running virtual computing resources in more than a threshold number of cells;

determining that the virtual computing resources associated with the user account are running in at least the threshold number of cells; and

refraining from selecting a third cell to launch the virtual computing resource based at least in part on the virtual computing resources associated with the user account running in the threshold number of cells.

9. The computer-implemented method of claim 4 , further comprising:

determining that the first value has exceeded a threshold value indicating a maximum amount of modifications permitted for the first cell; and

migrating the virtual computing resource from the first cell to run on the second computing resources of the second cell.

10. The computer-implemented method of claim 4 , wherein the virtual computing resource is run on behalf of a user account associated with the service provider network, further comprising:

determining that a group of virtual computing resources are running on behalf of the user account in a group of cells of the availability zone; and

selecting, from the group of cells, the first cell in which to run the virtual computing resource, wherein the group of cells includes at least the first cell at the second cell.

11. The computer-implemented method of claim 4 , further comprising:

receiving mutation data indicating a rate at which the first amount of modifications are made to the first virtual computing resources in the first cell;

receiving utilization data indicating at least one of:

an amount of network traffic associated with the first cell; or

an amount of a resource type utilized by the first virtual computing resources, the resource type being at least one of a central processing unit (CPU) resource type, a memory resource type, or a storage resource type; and

calculating the first value based at least in part on the mutation data and the utilization data.

12. The computer-implemented method of claim 4 , wherein the virtual computing resource is run on behalf of a user account associated with the service provider network, further comprising:

determining that other virtual computing resources have previously run, or are currently running, in the first cell and the second cell on behalf of the user account; and

selecting the first cell from amongst at least the first cell and the second cell based at least in part on the other virtual computing resources previously run, or currently running, in the first cell and the second cell.

13. A system comprising:

one or more processors; and

one or more computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

determining to run a virtual computing resource on behalf of a user account in an availability zone of a service provider network;

determining that the user account currently has, or previously had, a plurality of virtual computing resources running in a group of cells of the availability zone, the group of cells including a first cell and a second cell of a service stack, the first cell allocated first computing resources that are logically isolated from second computing resources allocated to the second cell;

selecting, using a distribution algorithm and from the group of cells, the first cell for running the virtual computing resources; and

launching the virtual computing resource on the first computing resources allocated to the first cell.

14. The system of claim 13 , the operations further comprising:

receiving first mutation data indicating a first amount of modifications made to first virtual computing resources in the first cell;

receiving second mutation data indicating a second amount of modifications made to second virtual computing resources in the second cell;

determining, using the first mutation data, a first value indicating utilization of the first computing resources of the first cell; and

determining, using the second mutation data, a second value indicating utilization of the second computing resources of the second cell,

wherein the first cell is selected based at least in part on the first value and the second value.

15. The system of claim 13 , the operations further comprising:

determining that the first cell has experienced a failure or been removed from the availability zone;

selecting a third cell from amongst the group of cells; and

moving the virtual computing resource to the third cell.

16. The system of claim 13 , the operations further comprising:

determining that a third cell has been created in the availability zone;

determining a threshold number of cells in which the user account is permitted to run the virtual computing resources;

determining that a number of cells in the group of cells is less than the threshold number of cells; and

launching another virtual computing resource on behalf of the user account on third computing resources of the third cell based at least in part on the number of cells in the group of cells being less than the threshold number of cells.

17. The system of claim 13 , the operations further comprising:

determining that the user account is restricted from running the virtual computing resources in more than a threshold number of cells;

determining that a number of cells in the group of cells is at least the threshold number of cells; and

refraining from selecting a third cell to launch the virtual computing resource based at least in part on the number of cells in the group of cells being at least the threshold number of cells.

18. The system of claim 13 , the operations further comprising:

determining a value that represents at least an amount of modifications made to a portion of the virtual computing resources that are running in the first cell;

determining that the value has exceeded a threshold value indicating a maximum amount of modifications permitted for the first cell; and

migrating the virtual computing resource from the first cell to run on the second computing resources of the second cell.

19. The system of claim 18 , the operations further comprising:

receiving mutation data indicating a rate at which modifications are made to first virtual computing resources in the first cell;

receiving utilization data indicating at least one of:

an amount of network traffic associated with the first cell; or

an amount of a resource type utilized by the first virtual computing resources, the resource type being at least one of a central processing unit (CPU) resource type, a memory resource type, or a storage resource type; and

calculating the value based at least in part on the mutation data and the utilization data,

wherein the first cell is selected based at least in part on the value.

20. The system of claim 13 , the operations further comprising:

determining a first value that represents at least a first amount of modifications made to first virtual computing resources running in the first cell; and

determining a second value that represents at least a second amount of modifications made to second virtual computing resources running in the second cell,

wherein the first cell is selected based at least in part on the first value and the second value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2024
From: MATHAD, DISHA; MARAIS, NEILEN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 067272/0584 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2022
From: STRYDOM, MATTHYS
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 059463/0533 →
Cited By (2)
US 12,639,100 US 12,743,310