# US 2014/0207918 A1 · Instance host configuration

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

- Number: US 2014/0207918 A1
- Document ID: US20140207918A1
- Status: Published application
- Kind: A1
- Application number: 13/747,176
- Filed: 2013-01-22
- Published: 2014-07-24
- Earliest claimed: 2013-01-22
- Assignees: Amazon Technologies, Inc.
- Inventors: MARCIN PIOTR KOWALSKI; ROLAND PATERSON-JONES; JAMES ALFRED GORDON GREENFIELD
- Web page: https://patentgrep.com/patent/US20140207918A1

## CPC

- H04L 41/0803: Configuration setting
- G06F 11/0709: {in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems}
- H04L 41/0273: using web services for network management, e.g. simple object access protocol [SOAP]
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and apparatus for instance host configuration are disclosed. A system includes a plurality of instance hosts configurable for resource instances of a network-accessible service, and control servers to manage remote configuration of the instance hosts. In response to an instance configuration request from a client, a selected control server transmits, to a selected instance host, a sequence of one or more commands. The selected instance host instantiates a remote command executor. The remote command executor initiates configuration operations corresponding to the command sequence, and terminates. The selected control server provides a response to the instance configuration request, based at least in part on results of the operations initiated by the executor.

## Claims

### Claim 1

A method, comprising:
in response to an instance configuration request from a client,
receiving, from a selected control server of one or more control servers designated to manage remote configuration of resource instances, a sequence of one or more commands formatted according to a particular command protocol for instance configuration, wherein said receiving is performed at a selected instance host of a plurality of instance hosts designated to implement resource instances of a network-accessible service;
instantiating, at the selected instance host in response to receiving the sequence of one or more commands, a remote command executor;
initiating, by the remote command executor at the selected instance host, one or more configuration operations corresponding to the sequence of one or more commands;
providing results of the one or more configuration operations to the selected control server;
terminating the remote command executor; and
providing a response to the instance configuration request, based at least in part on the results, to the client.

### Claim 2 (depends on 1)

The method as recited in claim 1, further comprising:
receiving, via a secure networking protocol, the sequence of one or more commands by a web server, on the selected instance host;
wherein said instantiating the remote command executor comprises instantiating at least one thread of execution by the web server in accordance with the Common Gateway Interface (CGI) standard.

### Claim 3 (depends on 1)

The method as recited in claim 1, further comprising:
subscribing, by an event dispatcher at the selected instance host, to an event monitor implemented at the selected instance host;
transmitting, to a particular control server of the set of control servers, from the event dispatcher via a secure networking protocol, a notification of an event at a resource instance implemented at the selected instance host, wherein said notification is usable to update state information of the resource instance.

### Claim 4 (depends on 1)

The method as recited in claim 1, further comprising:
estimating a rate at which instance recovery configuration operations are to be performed to recover, in the event of a particular type of failure, resource instances implemented at the plurality of instance hosts; and
determining a number of control servers to be included in the one or more control servers based at least in part on the estimated rate.

### Claim 5 (depends on 1)

The method as recited in claim 1, wherein the selected instance host is located within a first data center of a first availability container of a provider network, and wherein the selected control server is located within a different data center within a second availability container of the provider network, wherein the first availability container has a different availability profile than the second availability container.

### Claim 6

A system, comprising:
a plurality of instance hosts configurable to implement resource instances of a network-accessible service; and
one or more control servers configured to manage configuration of resource instances at the plurality of instance hosts;
wherein a selected control server of the one or more control servers is configured to transmit, in response to an instance configuration request from a client, a sequence of one or more commands to a selected instance host of the plurality of instance hosts;
wherein the selected instance host is configured to, in response to receiving the sequence of one or more commands, instantiate a remote command executor;
wherein the remote command executor is configured to initiate one or more configuration operations corresponding to the sequence of one or more commands; and
wherein the selected control server is configured to provide a response to the instance configuration request, based at least in part on results of the one or more configuration operations, to the client.

### Claim 7 (depends on 6)

The system as recited in claim 6, wherein the selected instance host is further configured to:
receive the sequence of one or more commands at a web server; and
wherein the web server is configured to instantiate the remote command executor in accordance with the Common Gateway Interface (CGI) standard.

### Claim 8 (depends on 6)

The system as recited in claim 6, wherein the selected instance host comprises an event dispatcher configured to:
subscribe to an event monitor implemented at the selected instance host; and
transmit, via a secure networking protocol, to a particular control server of the one or more control servers, a notification of an occurrence of an event indicated by the event monitor at the selected instance host.

### Claim 9 (depends on 8)

The system as recited in claim 8, wherein the particular control server is further configured to:
update, based at least in part on the notification, state information for a resource instance.

### Claim 10 (depends on 6)

The system as recited in claim 6, wherein the one or more control servers comprise a plurality of control servers of a control server pool, wherein a size of the control server pool is determined based at least in part on an estimated rate at which instance recovery configuration operations are to be performed to recover, in the event of a particular type of failure, resource instances implemented at the plurality of instance hosts.

### Claim 11 (depends on 6)

The system as recited in claim 6, wherein the selected instance host is located within a first data center of a first availability container of a provider network, and wherein the selected control server is located within a different data center within a second availability container of the provider network, wherein the first availability container has a differ availability profile than the second availability container.

### Claim 12 (depends on 6)

The system as recited in claim 6, wherein prior to transmitting the sequence of one or more commands, the selected control server is configured to obtain a lock on the selected instance host.

### Claim 13 (depends on 6)

The system as recited in claim 6, wherein the sequence of one or more commands is transmitted in accordance with a command protocol supporting a plurality of command types, wherein at least a subset of command types of the plurality of command types comprise idempotent commands.

### Claim 14 (depends on 13)

The system as recited in claim 13, wherein a particular control server of the one or more control servers is further configured to:
collect one or more performance metrics from the selected instance host using a particular command type of the plurality of command types.

### Claim 15 (depends on 6)

The system as recited in claim 6, wherein the selected instance host is chosen from the plurality of instance hosts based at least in part on one or more of: (a) identification information of the client (b) a resource instance type indicated in the instance configuration request (c) one or more performance metrics associated with the plurality of instance hosts, or (d) one or more pricing policies.

### Claim 16 (depends on 6)

The system as recited in claim 6, wherein the sequence of one or more commands is transmitted via a variant of the HyperText Transfer Protocol.

### Claim 17 (depends on 6)

The system as recited in claim 6, wherein the sequence of one or more commands is transmitted in accordance with a variant of JavaScript Object Notation (JSON) format.

### Claim 18 (depends on 6)

The system as recited in claim 6, wherein the instance configuration request indicates a resource instance type to be configured, wherein the resource instance type comprises at least one of: (a) a compute resource instance, (b) a storage resource instance, or (c) a networking resource instance.

### Claim 19

A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a control server of a provider network comprising a plurality of instance hosts configurable to host resource instances of one or more network-accessible services, wherein the control server is configured to:
in response to an instance configuration request from a client, wherein the instance configuration request is directed to a particular service of the one or more network-accessible services,
transmit, to a selected instance host of the plurality of instance hosts, one or more commands;
receive, from the selected instance host, results of one or more configuration operations initiated at the selected instance host by a remote command executor instantiated at the selected instance host in response to the one or more commands;
provide a response to the instance configuration request, based at least in part on results of the one or more configuration operations, to the client.

### Claim 20 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein the control server comprises one or more of: (a) a workflow manager configured to determine the one or more commands to be transmitted, (b) a communication module configured to transmit the one or more commands to the selected instance host, and (c) an event listener configured to receive asynchronous event notifications from the selected instance host.

### Claim 21 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein prior to transmitting the one or more commands, the control server is configured to obtain a lock on the selected instance host.

### Claim 22 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein the one or more commands are transmitted in accordance with a command protocol supporting a plurality of command types, wherein at least a subset of command types of the plurality of command types comprise idempotent commands.

### Claim 23 (depends on 22)

The non-transitory computer-accessible storage medium as recited in claim 22, wherein the control server is further configured to:
collect one or more performance metrics from the selected instance host using a particular command type of the plurality of command types.

### Claim 24 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein the one or more commands is transmitted via a variant of the HyperText Transfer Protocol.

### Claim 25 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein the particular network-accessible service defines a set of resource instance types, wherein the instance configuration request comprises an indication of (a) a particular resource instance type of the set and (b) a requested variation to a default property of the particular resource instance type, and wherein at least one command of the one or more commands is targeted to implement the requested variation.

### Claim 26 (depends on 19)

The non-transitory computer-accessible storage medium as recited in claim 19, wherein the requested variation comprises an indication of at least one of: (a) a performance capability, or (b) an installed software component.

### Claim 27

A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
receive an instance configuration command from a control server of a provider network, wherein the control server is configured to manage remote configuration of resource instances to provide one or more network-accessible services;
instantiate a remote command executor in response to the instance configuration command, wherein the remote command executor is configured to initiate one or more configuration operations in accordance with the command; and
provide results of the one or more configuration operations to the control server.

### Claim 28 (depends on 27)

The non-transitory computer-accessible storage medium as recited in claim 27, wherein the instructions when executed on the one or more processors:
receive the instance configuration command at a web server, wherein the remote command executor comprises at least one executable process instantiated in accordance with the Common Gateway Interface (CGI) standard, and wherein the at least one executable process is configured to terminate after initiation of the one or more configuration operations.

### Claim 29 (depends on 27)

The non-transitory computer-accessible storage medium as recited in claim 27, wherein the instructions when executed on the one or more processors implement an event dispatcher operable to:
subscribe to an event monitor implemented at least in part by at least one of (a) a local hypervisor component, or (b) a local operating system component; and
transmit, to the control server, a notification of an event monitored by the event monitor.
