Low latency connections to workspaces in a cloud computing environment
First Claim
1. A system, comprising:
- a plurality of computing nodes located in multiple geographic regions that collectively provide virtual computing services to one or more clients, each of the computing nodes comprising at least one processor and a memory;
a plurality of virtualized computing resource instances, each executing on a respective one of the computing nodes within a data center in a respective one of the regions; and
a plurality of gateway components, wherein each of the gateway components is hosted on a respective one of the computing nodes at a point of presence location in a respective one of the regions;
wherein one or more of the virtualized computing resource instances are configured to implement a management component of a virtual desktop service;
wherein at least some of the plurality of gateway components and the management component of the virtual desktop service interoperate with each other within a virtual private cloud of the virtual desktop service;
wherein one of the virtualized computing resource instances is configured to implement a virtual desktop instance on a particular computing node other than the computing nodes hosting the plurality of gateway components;
wherein two or more of the plurality of gateway components are configured as network interfaces for communication between client devices and the virtual desktop service, wherein the client devices communicate with the two or more gateway components over a public network, wherein the two or more gateway components are hosted at respective point of presence locations, and wherein the two or more of the plurality of gateway components are configured to establish connections to the particular computing node within the virtual private cloud; and
wherein in response to receiving a request from a client device to connect to the virtual desktop instance on the particular computing node, the management component of the virtual desktop service is configured to;
determine which one of the respective point of presence locations to use for a communication channel with the virtual desktop instance on the particular computing node for two-way communication of an interactive video stream between the client device and the virtual desktop instance on the particular computing node, wherein the determined point of presence location comprises one of the two or more gateway components, and wherein the two or more gateway components are configured to establish communications between the client device and the virtual desktop instance on the particular computing node;
establish the communication channel between the virtual desktop instance on the particular computing node and the one of the two or more of the gateway components of the determined point of presence location for the two-way communication of the interactive video stream between the client device and the virtual desktop instance, wherein the interactive video stream comprises a stream of pixels communicated to the client device through the one of the two or more of the gateway components from the virtual desktop instance and a plurality of inputs that are communicated from the client device through the one of the two or more of the gateway components to the virtual desktop instance that represent user interactions with the virtual desktop instance.
1 Assignment
0 Petitions
Accused Products
Abstract
A computing system providing virtual computing services may generate and manage remote computing sessions between client devices and virtual desktop instances (workspaces) hosted on the service provider'"'"'s network. The system may implement a virtual private cloud for a workspaces service that extends out to gateway components in multiple, geographically distributed point of presence (POP) locations. In response to a client request for a virtual desktop session, the service may configure a virtual computing resource instance for the session and establish a secure, reliable, low latency communication channel (over a virtual private network) between the resource instance and a gateway component at a POP location near the client for communication of a two-way interactive video stream for the session. The availability zone containing the POP location may be different than one hosting the resource instance for the session. Client devices may connect to the gateway component over a public network.
-
Citations
22 Claims
-
1. A system, comprising:
-
a plurality of computing nodes located in multiple geographic regions that collectively provide virtual computing services to one or more clients, each of the computing nodes comprising at least one processor and a memory; a plurality of virtualized computing resource instances, each executing on a respective one of the computing nodes within a data center in a respective one of the regions; and a plurality of gateway components, wherein each of the gateway components is hosted on a respective one of the computing nodes at a point of presence location in a respective one of the regions; wherein one or more of the virtualized computing resource instances are configured to implement a management component of a virtual desktop service; wherein at least some of the plurality of gateway components and the management component of the virtual desktop service interoperate with each other within a virtual private cloud of the virtual desktop service; wherein one of the virtualized computing resource instances is configured to implement a virtual desktop instance on a particular computing node other than the computing nodes hosting the plurality of gateway components; wherein two or more of the plurality of gateway components are configured as network interfaces for communication between client devices and the virtual desktop service, wherein the client devices communicate with the two or more gateway components over a public network, wherein the two or more gateway components are hosted at respective point of presence locations, and wherein the two or more of the plurality of gateway components are configured to establish connections to the particular computing node within the virtual private cloud; and wherein in response to receiving a request from a client device to connect to the virtual desktop instance on the particular computing node, the management component of the virtual desktop service is configured to; determine which one of the respective point of presence locations to use for a communication channel with the virtual desktop instance on the particular computing node for two-way communication of an interactive video stream between the client device and the virtual desktop instance on the particular computing node, wherein the determined point of presence location comprises one of the two or more gateway components, and wherein the two or more gateway components are configured to establish communications between the client device and the virtual desktop instance on the particular computing node; establish the communication channel between the virtual desktop instance on the particular computing node and the one of the two or more of the gateway components of the determined point of presence location for the two-way communication of the interactive video stream between the client device and the virtual desktop instance, wherein the interactive video stream comprises a stream of pixels communicated to the client device through the one of the two or more of the gateway components from the virtual desktop instance and a plurality of inputs that are communicated from the client device through the one of the two or more of the gateway components to the virtual desktop instance that represent user interactions with the virtual desktop instance. - View Dependent Claims (2, 3, 4)
-
-
5. A method, comprising:
performing, by one or more computers; receiving, from a client device, a request to begin a virtual desktop session on a virtual desktop instance, wherein the virtual desktop instance is hosted on a given one of a plurality of computing nodes that are located in multiple availability zones and that collectively implement a virtual desktop service; determining a gateway component from a plurality of gateway components is to be used to handle communication of the interactive video stream between the client device and the virtual desktop instance hosted on the given computing node, wherein the gateway components are configured to provide communication interfaces between the client device and the virtual desktop instance hosted on the given computing node, wherein each of the plurality of gateway components is hosted on a respective computing node other than the given computing node hosting the virtual desktop instance, wherein the respective computing node hosting each of the plurality of gateway components is at a respective point of presence location in a respective one of the multiple availability zones, wherein at least some of the plurality of gateway components interoperate with one or more other components of the virtual desktop service within a virtual private cloud of the virtual desktop service, and wherein the at least some of the plurality of gateway components are configured to establish connections to the given computing node within the virtual private cloud; establishing the communication channel between the virtual desktop instance and the gateway component to handle communication of an interactive video stream between the client device and the virtual desktop instance; and beginning a virtual desktop session on the virtual desktop instance, wherein said beginning comprises initiating communication of the interactive video stream between the virtual desktop instance and the client device via the gateway component such that the client device communicates with the gateway component over a public network, wherein the interactive video stream comprises a stream of pixels communicated to the client device through the gateway component from the virtual desktop instance and a plurality of inputs that are communicated from the client device through the gateway component to the virtual desktop instance that represent user interactions with the virtual desktop instance. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
configuring a virtualized computing resource instance to provide virtual desktop sessions on behalf of one or more clients, wherein the virtualized computing resource instance is hosted on a given one of a plurality of computing nodes that are located in multiple regions and that collectively provide virtual computing services; receiving a request from a client to open a virtual desktop session on the virtualized computing resource instance; in response to the request, determining which of a plurality of gateway components that are configured to provide network interfaces between clients and the virtual computing services is to be used to handle communication of an interactive video stream between the virtualized computing resource instance hosted by the given computing node and the client, wherein the gateway components are configured to provide communication interfaces between the client device and the virtual desktop session hosted on the given computing node, wherein each of the plurality of gateway components is hosted on a respective computing node other than the computing node hosting the virtualized computing resource instance, wherein the respective computing node of each of the plurality of gateway components is at a point of presence location in a respective one of the regions, wherein at least some of the plurality of gateway components and one or more other components of the virtual computing services participate within a virtual private cloud, wherein the at least some of the plurality of gateway components are configured to establish connections to the given computing node within the virtual private cloud, and wherein said determining is dependent, at least in part, on the region in which the client is located; and establishing a communication channel between the virtualized computing resource instance and the determined gateway component on behalf of the client. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification