# US 9,436,493 B1 · Distributed computing environment software configuration

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,493 B1
- Document ID: US9436493B1
- Status: Granted
- Kind: B1
- Application number: 13/536,571
- Filed: 2012-06-28
- Granted: 2016-09-06
- Earliest claimed: 2012-06-28
- Assignees: Amazon Technologies, Inc.
- Applicants: Nathan Thomas; Max Joseph Spevack; Nathan H. Blackham; Matthew S. Wilson
- Inventors: Nathan Thomas; Max Joseph Spevack; Nathan H. Blackham; Matthew S. Wilson
- Web page: https://patentgrep.com/patent/US9436493B1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5088: {involving task migration}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Certain embodiments herein relate to configuring software in a virtual machine instance (“instance”) to optimally utilize computing resources that are available for implementation of the software. The software, such as operating systems and software applications, may be configured based on resource parameters associated with the instance. Such resource parameters may include information associated with capacities of the available computing resources.

## Claims

### Claim 1

One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, configure the at least one processor to perform operations comprising:
receiving a request to create an instance that includes an operating system and a software application; and
creating the instance, wherein creating the instance comprises:
detecting, by at least one of the operating system or the software, a first set of resource parameters for the instance, wherein the first set of resource parameters include information associated with one or more servers in a distributed computing environment to be allocated to host the instance; and
after detecting the first set of resource parameters, configuring the operating system and the software application based at least in part on the first set of resource parameters;
receiving a request for modification of the instance;
determining a second set of resource parameters based at least in part on the modification; and
reconfiguring the operating system and the software application based at least in part on the second set of resource parameters, wherein reconfiguring the operating system and the software application comprises at least one of: (i) modifying a number of allowable concurrent connections to a web server, or (ii) modifying a number of allowable threads spawned by the operating system or the software application.

### Claim 2 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, the at least one processor further configured to execute the computer-executable instructions to perform operations comprising:
determining a portion of the second set of resource parameters for configuring a second software application running in the instance; and
configuring the second software application based at least in part on the portion of the second set of resource parameters.

### Claim 3 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, wherein the configuring modifies the operating system and the software application to perform according to a respective capacity of the one or more servers.

### Claim 4 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, wherein the resource parameters comprise information associated with at least one of a central processing unit (CPU), a random access memory (RAM), a hard disk, a computer hardware platform, network connectivity, disk input/output operations per second (IOPS), a bandwidth, or one or more network settings.

### Claim 5 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, wherein reconfiguring the operating system and the software application further comprises at least one of modifying one or more network settings, or modifying at least one of a type or an amount of content output by the operating system or the software application.

### Claim 6 (depends on 1)

The one or more non-transitory computer-readable media of claim 1, wherein the software application comprises a game application and the resource parameters comprise an indication of a Graphics Processing Unit (GPU), wherein configuring the operating system and the software application based at least in part on the detected resource parameters comprises configuring the game application to enable 3-dimensional effects processed by the GPU.

### Claim 7

A system comprising:
at least one memory configured to store computer-executable instructions; and
at least one processor configured to access the at least one memory and execute the computer-executable instructions to:
receive a request to configure software associated with an instance;
detect, by the software, resource parameters for configuring the software based at least in part on the request, the resource parameters comprising information associated with a respective capacity of one or more computing resources to be utilized by the instance;
after detecting the resource parameters, configure the software based at least in part on the detected resource parameters;
determine that the resource parameters have changed based at least in part on a received request for modification of the instance; and
reconfigure the software based at least in part on the determination that the resource parameters have changed, wherein reconfiguring the software comprises at least one of: (i) modifying a number of allowable concurrent connections to a web server, or (ii) modifying a number of allowable threads spawned by an operating system or the software.

### Claim 8 (depends on 7)

The system of claim 7, wherein the resource parameters comprise information associated with at least one of a central processing unit (CPU), a random access memory (RAM), a hard disk, a computer hardware platform, network connectivity, disk input/output operations per second (IOPS), a bandwidth, or one or more network settings.

### Claim 9 (depends on 7)

The system of claim 7, wherein the software comprises an operating system, wherein the operating system is configured based at least in part on a first portion of the resource parameters, and wherein the at least one processor is further configured to:
detect, by the software, a second portion of resource parameters for configuring a software application associated with the instance; and
after detecting the second portion of resource parameters, configure the software application based at least in part on the second portion.

### Claim 10 (depends on 7)

The system of claim 7, wherein determining the resource parameters is based at least in part on at least one of a type of the software, an indication of how the instance will be utilized, or information associated with a user of the software.

### Claim 11 (depends on 7)

The system of claim 7, wherein the software is configured in association with at least one of installing the software, initiating the software, or detecting a change associated with the one or more computing resources.

### Claim 12 (depends on 7)

The system of claim 7, wherein reconfiguring the software comprises modifying one or more network settings.

### Claim 13 (depends on 7)

The system of claim 7, wherein reconfiguring the software comprises modifying at least one of a type of content output by the software or an amount of the content output by the software.

### Claim 14 (depends on 7)

The system of claim 7, wherein the resource parameters correspond to a type of the instance, and wherein the instance is created based at least in part on the type of the instance.

### Claim 15 (depends on 7)

The system of claim 7, wherein the software comprises an operating system, and wherein the operating system is configured in association with creating the instance.

### Claim 16 (depends on 7)

The system of claim 7, wherein the software comprises an operating system and one or more software applications.

### Claim 17

A method comprising:
under control of one or more computer systems configured with executable instructions,
receiving a request to create a type of instance that includes software;
detecting, by the software, resource parameters associated with the instance, wherein the resource parameters include information associated with a respective capacity of one or more computing resources to be utilized by the instance; and
after detecting the resource parameters, creating the instance based at least in part on at least a portion of the detected resource parameters, wherein the instance includes an operating system and a software application;
receive a request for modification of the instance;
determining that the resource parameters associated with the instance have changed according to the request; and
configuring the operating system and the software application based at least in part on the determination that the resource parameters have changed, wherein configuring the operating system and the software application comprises at least one of: (i) modifying a number of allowable concurrent connections to a web server, or (ii) modifying a number of allowable threads spawned by the operating system or the software application.

### Claim 18 (depends on 17)

The method of claim 17, further comprising storing the resource parameters.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
monitoring the one or more computing resources; and
upon detecting a change in at least one of performance associated with the one or more computing resources or utilization of the one or more computing resources, updating the stored resource parameters with information associated with the change.

### Claim 20 (depends on 17)

The method of claim 17, wherein the software is an operating system, wherein the operating system configures its kernel based on the resource parameters.

### Claim 21

A method comprising:
detecting, by software associated with a computing system comprising one or more computers, at least a portion of resource parameters for configuring an instance comprising the software, wherein the resource parameters comprise information associated with a respective capacity of one or more computing resources to be utilized by the instance; and
configuring, by the software, the instance based at least in part on the detected at least a portion of resource parameters, wherein the configuring modifies the software in the instance to perform according to the respective capacity of the one or more computing resources;
receiving a request for modification of the instance;
determining, based at least in part on the request, that the resource parameters have changed; and
reconfiguring the instance based at least in part on the determination that the resource parameters have changed, wherein configuring the operating system and the software application comprises at least one of: (i) modifying a number of allowable concurrent connections to a web server, or (ii) modifying a number of allowable threads spawned by the operating system or the software application.

### Claim 22 (depends on 21)

The method of claim 21, wherein the software includes an operating system, the method further comprising:
detecting, by the software, at least a second portion of resource parameters for configuring a software application associated with the instance; and
after detecting the at least a second portion of resource parameters, configuring, by the software, the software application based at least in part on the at least a second portion.

### Claim 23 (depends on 21)

The method of claim 21, wherein determining the at least a portion of resource parameters is based at least in part on at least one of a type of the instance, an indication of how the instance will be utilized, or information associated with a user of the instance.

### Claim 24 (depends on 21)

The method of claim 21, further comprising receiving, from the software, a request to configure the software.

### Claim 25 (depends on 21)

The method of claim 21, wherein the at least a portion of resource parameters comprises information associated with at least one of a central processing unit (CPU), a random access memory (RAM), a hard disk, a computer hardware platform, network connectivity, disk input/output operations per second (IOPS), a bandwidth, or one or more network settings.

### Claim 26 (depends on 21)

The method of claim 21, wherein performing according to the respective capacity of the one or more computing resources further comprises at least one of modifying one or more network settings, or modifying at least one of a type of content output by the software or an amount of the content output by the software.
