# US 10,372,475 B2 · Approaches for managing virtual instance data

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

- Number: US 10,372,475 B2
- Document ID: US10372475B2
- Status: Granted
- Kind: B2
- Application number: 15/236,259
- Filed: 2016-08-12
- Published: 2017-08-03
- Granted: 2019-08-06
- Earliest claimed: 2014-12-05
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Gideon Klompje; Mathew Daniel
- Web page: https://patentgrep.com/patent/US10372475B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 8/61: Installation
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A resource provider is able to manage instance data associated with virtual compute instances running in the resource provider environment. For example, when provisioning a compute instance, the resource provider can obtain data associated with the compute instance and can store this data, for example, in a data store. The resource provider can act as a centralized repository of such data for some or all instances that are running in the resource provider environment. Entities (e.g., users or other compute instances running in the resource provider environment) can query the resource provider to perform various operations (e.g., read, modify, duplicate) on the data being managed by the resource provider for the various compute instances. Any changes to the data for a compute instance, for example, by a user, the compute instance, or a different compute instance, can be saved by the resource provider and propagated to the compute instance.

## Claims

### Claim 1

A computer-implemented method, comprising:
deploying instance data to a first virtual instance that is active in a resource provider environment, wherein the instance data includes at least configuration information about the first virtual instance;
receiving, from a customer to an application programming interface of the resource provider environment, a request to update the instance data;
generating updated instance data based on the request;
causing the updated instance data to be made available to the first virtual instance through an instance data service;
receiving, from an entity, at least one request for duplicating, for a second virtual instance, the updated instance data;
determining, using at least one processor, that the entity is authorized to duplicate the updated instance data;
updating, based on the updated instance data, at least a portion of instance data associated with the second virtual instance;
storing, in a memory, modified instance data for the second virtual instance, the modified instance data based at least in part on the updating of the at least a portion of instance data associated with the second virtual instance; and
providing the modified instance data to the second virtual instance, wherein the second virtual instance stores the modified instance data in a data store managed by the second virtual instance.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
providing the portion of the instance data to the entity.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
updating the portion of the instance data based at least in part on a request to create updated instance data; and
storing the updated instance data.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein determining that the entity is authorized to duplicate the updated instance data further comprises:
determining, by the resource provider, that the entity is authorized to access the updated instance data based at least in part on the instance data.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the instance data includes at least one of an attribute of the first virtual instance, a configuration of the first virtual instance, text, a parameter, argument, variable, or cryptographic material.

### Claim 6

A system, comprising:
at least one processor;
memory including instructions that, when executed by the at least one processor, cause the system to:
deploy instance data to a first virtual instance that is active in a resource provider environment, wherein the instance data includes at least configuration information about the first virtual instance;
receive, from a customer to an application programming interface of the resource provider environment, a request to update the instance data;
generate updated instance data based on the request;
cause the updated instance data to be made available to the first virtual instance through an instance data service;
receive, from an entity, at least one request for duplicating, for a second virtual instance, the updated instance data;
determine, using at least one processor, that the entity is authorized to duplicate the updated instance data;
update, based on the updated instance data, at least a portion of instance data associated with the second virtual instance;
store, in a memory, modified instance data for the second virtual instance, the modified instance data based at least in part on the updating of the at least a portion of instance data associated with the second virtual instance; and
provide the modified instance data to the second virtual instance, wherein the second virtual instance stores the modified instance data in a data store managed by the second virtual instance.

### Claim 7 (depends on 6)

The system of claim 6, wherein the instructions further cause the system to:
provide the portion of the instance data to the entity.

### Claim 8 (depends on 6)

The system of claim 6, wherein the instructions further cause the system to:
update the portion of the instance data based at least in part on a request to create updated instance data; and
store the updated instance data.

### Claim 9 (depends on 6)

The system of claim 6, wherein the instructions to determine that the entity is authorized to duplicate the updated instance data further cause the system to:
determine, by the resource provider, that the entity is authorized to access the updated instance data based at least in part on the instance data.

### Claim 10 (depends on 6)

The system of claim 6, wherein the instance data includes at least one of an attribute of the first virtual instance, a configuration of the first virtual instance, text, a parameter, argument, variable, or cryptographic material.

### Claim 11

A computer-implemented method, comprising:
receiving, by an application programming interface of a first compute instance, a request for accessing first instance data associated with the first compute instance, the first compute instance being active in a resource provider environment, and the first instance data including at least configuration information about the first compute instance;
determining that the first instance data is unavailable in a data store managed by the first compute instance;
sending, to the resource provider, a request for the first instance data, wherein the resource provider is configured to manage respective instance data for a plurality of compute instances active in the resource provider environment;
receiving, from the resource provider, the first instance data in response to the request;
storing the first instance data in the data store managed by the first compute instance;
receiving, by the first compute instance, a request for modifying second instance data associated with a second compute instance;
sending, to the resource provider, a request to update the second instance data, wherein the resource provider is configured to determine that the first compute instance is authorized to modify the second instance data;
receiving, by the first compute instance from the second compute instance, a request to access the modified value of the first data attribute;
determining that the second compute instance is authorized to access the modified value of the first data attribute; and
providing information describing the modified value to the second compute instance, wherein the resource provider is configured to update and store the second instance data based at least in part on the request, and wherein the resource provider is configured to send the updated second instance data to the second compute instance.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein the first instance data and the second instance data are associated with access control information including access rights for performing an operation on the first instance data or the second instance data.
