Service and APIs for remote volume-based block storage
First Claim
1. A method, comprising:
- exposing, by a block storage service implemented on one or more devices within a provider network, block storage service application programming interfaces (APIs) to clients external to the provider network, wherein the provider network provides volume-based block storage to clients external to the provider network, wherein the block storage service APIs provide an application programming interface for volume-based block storage operations of the block storage service, and wherein the block storage service APIs include a create volume API, an upload block API, a create snapshot API, and a download block API; and
performing, by the block storage service;
receiving, from a client external to the provider network, a create volume request according to the create volume API;
creating, within the provider network, a volume according to the create volume API and according to one or more parameters of the create volume request;
returning, to the application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume;
receiving, from the client external to the provider network, one or more upload block requests according to the upload block API, wherein each upload block request specifies the volume ID and data to be uploaded to the volume; and
for each of the one or more upload block requests, writing the respective data to the volume within the provider network according to the upload block API;
receiving, from the client external to the provider network, a create snapshot request according to the create snapshot API, wherein the create snapshot request specifies the volume ID;
creating, within the provider network, a snapshot of the volume within the provider network according to the create snapshot API;
receiving, from the client external to the provider network, one or more download block requests according to the download block API, wherein each download block request specifies data to be downloaded from the volume; and
for each of the one or more download block requests, reading the specified data from the volume within the provider network and returning, to the client external to the provider network, a download block response that includes the specified data according to the download block API.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatus, and computer-accessible storage media for providing a volume-based block storage service and application programming interfaces (APIs) to the service. A block storage service and block storage service APIs may allow processes (applications or appliances) on the service client network to leverage remote, volume-based block storage provided by the service provider. The APIs may provide a standard interface to volume-based block storage operations on a remote data store. The service provider, the service clients, and/or third parties may develop various applications and/or appliances that may, for example, be instantiated in service clients'"'"' local networks and that leverage the block storage service via the APIs to create and manage volumes and snapshots on the remote data store and to upload and download data from the volumes and snapshots on the remote data store.
78 Citations
20 Claims
-
1. A method, comprising:
-
exposing, by a block storage service implemented on one or more devices within a provider network, block storage service application programming interfaces (APIs) to clients external to the provider network, wherein the provider network provides volume-based block storage to clients external to the provider network, wherein the block storage service APIs provide an application programming interface for volume-based block storage operations of the block storage service, and wherein the block storage service APIs include a create volume API, an upload block API, a create snapshot API, and a download block API; and performing, by the block storage service; receiving, from a client external to the provider network, a create volume request according to the create volume API; creating, within the provider network, a volume according to the create volume API and according to one or more parameters of the create volume request; returning, to the application, a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receiving, from the client external to the provider network, one or more upload block requests according to the upload block API, wherein each upload block request specifies the volume ID and data to be uploaded to the volume; and for each of the one or more upload block requests, writing the respective data to the volume within the provider network according to the upload block API; receiving, from the client external to the provider network, a create snapshot request according to the create snapshot API, wherein the create snapshot request specifies the volume ID; creating, within the provider network, a snapshot of the volume within the provider network according to the create snapshot API; receiving, from the client external to the provider network, one or more download block requests according to the download block API, wherein each download block request specifies data to be downloaded from the volume; and for each of the one or more download block requests, reading the specified data from the volume within the provider network and returning, to the client external to the provider network, a download block response that includes the specified data according to the download block API. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
a plurality of computing devices on a provider network, each comprising at least one processor and memory, wherein the plurality of computing devices implement; a block storage service of the provider network; and application programming interfaces (APIs) to the block storage service for clients external to the provider network, wherein the APIs to the block storage service provide an application programming interface for the volume-based block storage operations of the block storage service, and wherein the APIs to the block storage service include a create volume API, an upload block API, a download block API, and a create snapshot API; wherein the block storage service is configured to; receive, from a client external to the provider network, one or more create volume requests according to the create volume API; for at least one received create volume request; create, within the provider network, a volume according to the create volume API and according to one or more parameters of the respective create volume request; and return, to the respective client a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receive, from the client external to the provider network, one or more upload block requests according to the upload block API, wherein each upload block request specifies a volume ID and data to be uploaded to a respective volume; and for at least one of the upload block requests, write the respective data to the respective volume within the provider network according to the upload block API. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-accessible storage medium storing program instructions computer-executable to:
-
implement a block storage service of a provider network; and implement application programming interfaces (APIs) to the block storage service for clients external to the provider network, wherein the APIs to the block storage service provide an application programming interface for the volume-based block storage operations of the block storage service, and wherein the APIs to the block storage service include a create volume API, an upload block API, a download block API, and a create snapshot API; receive, from a client external to the provider network, one or more create volume requests according to the create volume API; for at least one received create volume request; create, within the provider network, a volume according to the create volume API and according to one or more parameters of the respective create volume request; and return, to the respective client a create volume response according to the create volume API that indicates a volume identifier (ID) for the volume; receive, from the client external to the provider network, one or more upload block requests according to the upload block API, wherein each upload block request specifies a volume ID and data to be uploaded to a respective volume; and for at least one of the upload block requests, write the respective data to the respective volume within the provider network according to the upload block API.
-
Specification