IP Library › Granted Patent US 10,887,276
Granted Patent B1
US 10,887,276 · App. 16/699,334 · Granted Jan 5, 2021

DNS-based endpoint discovery of resources in cloud edge locations embedded in telecommunications networks

Inventors: Ishwardutt Parulkar (San Francisco, CA); Devlin Roarke Dunsmore (Bothell, WA); Upendra Bhalchandra Shevade (Washington, DC); Diwakar Gupta (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L61/1511H04L61/609H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,887,276
App. No.
16/699,334
Granted
Jan 5, 2021
Kind
B1
Abstract

Techniques for DNS-based endpoint discovery involving provider substrate extension resources are described. A client seeking to access a resource may utilize a DNS resolver located within a provider substrate extension of a provider network. The DNS resolver may be dynamically configured by a coordinator service located within the provider network to resolve a domain to an endpoint that may provide the lowest latency of access for clients close to the provider substrate extension.

Claims (55)

1. A computer-implemented method comprising:

receiving, at a coordinator service within a cloud provider network, a first Domain Name Service (DNS) request transmitted by a DNS resolver executed within a first provider substrate extension of the cloud provider network, wherein the first DNS request identifies a domain name, wherein the first provider substrate extension includes a computer system that provides capacity for execution of compute instances for users of the cloud provider network and is controlled at least in part by a control plane of the cloud provider network, wherein the first provider substrate extension is coupled with a communications service provider network that is separate from the cloud provider network;

determining, based at least in part on the first DNS request, a location associated with the first provider substrate extension;

selecting, based at least in part on the location, a target network address from a set of network addresses associated with the domain name; and

transmitting, to the DNS resolver, a first DNS response identifying at least the target network address.

2. The computer-implemented method of claim 1 , further comprising:

receiving, at the DNS resolver, a second DNS request transmitted by a client application, the second DNS request identifying the domain name; and

transmitting, by the DNS resolver, a second DNS response identifying at least the target network address.

3. The computer-implemented method of claim 2 , wherein:

the client application is executed by a mobile device; and

the second DNS request was originated by the mobile device using a cellular connection provided by the communications service provider network.

4. The computer-implemented method of claim 1 , wherein the target network address is utilized by a compute instance executed within a second provider substrate extension that is geographically separate from the first provider substrate extension.

5. The computer-implemented method of claim 1 , wherein the target network address is utilized by a compute instance executed within the first provider substrate extension.

6. The computer-implemented method of claim 5 , further comprising:

receiving, at a hardware virtualization service of the cloud provider network, a request to launch the compute instance within the first provider substrate extension;

launching the compute instance within the first provider substrate extension, wherein the compute instance utilizes the target network address; and

registering, with the coordinator service, the target network address as being associated with at least one of the domain name or the compute instance.

7. The computer-implemented method of claim 1 , further comprising:

determining, by the coordinator service, that the DNS resolver should associate a second target network address with the domain name instead of the target network address, wherein the first target network address is associated with a first compute instance executed within the first provider substrate extension, and wherein the second target network address is associated with a second compute instance executed within a second provider substrate extension or within the cloud provider network; and

transmitting, to the DNS resolver, a message identifying at least the second target network address.

8. The computer-implemented method of claim 7 , further comprising:

receiving, by the coordinator service from a first health check component executed within the first provider substrate extension, one or more status values associated with the first provider substrate extension,

wherein determining that the DNS resolver should associate the second target network address with the domain name instead of the target network address is based at least in part on at least one of the one or more status values.

9. The computer-implemented method of claim 8 , wherein at least one of the one or more status values indicates a current or recent reachability status between the first health check component and the first compute instance.

10. The computer-implemented method of claim 8 , wherein at least one of the one or more status values comprises an availability or capacity value associated with the communications service provider network.

11. The computer-implemented method of claim 8 , further comprising:

receiving, by the coordinator service from a second health check component executed within the second provider substrate extension, a second one or more status values associated with the second provider substrate extension,

wherein determining that the DNS resolver should associate the second target network address with the domain name instead of the target network address is further based at least in part on at least one of the second one or more status values.

12. A system comprising:

a Domain Name Service (DNS) resolver implemented by a first one or more electronic devices within a provider substrate extension, wherein the provider substrate extension includes a computer system that provides capacity for execution of compute instances for users of a provider network and is controlled at least in part by a control plane of the provider network, wherein the provider substrate extension is coupled with a communications service provider network that is separate from the provider network; and

a coordinator service implemented by a second one or more electronic devices within the provider network, the coordinator service including a first set of instructions that upon execution cause the coordinator service to:

receive a first DNS request transmitted by the DNS resolver, wherein the first DNS request identifies a domain name;

determine, based at least in part on the first DNS request, a location associated with the provider substrate extension;

select, based at least in part on the location, a target network address from a set of network addresses associated with the domain name; and

transmit, to the DNS resolver, a first DNS response identifying at least the target network address.

13. The system of claim 12 , wherein the DNS resolver includes a second set of instructions that upon execution cause the DNS resolver to:

receive a second DNS request transmitted by a client application, the second DNS request identifying the domain name; and

transmit a second DNS response to the client application that identifies at least the target network address.

14. The system of claim 13 , wherein:

the client application is executed by a mobile device; and

the second DNS request was originated by the mobile device using a cellular connection provided by the communications service provider network.

15. The system of claim 12 , wherein the target network address is utilized by a compute instance executed within a second provider substrate extension that is distinct from the provider substrate extension.

16. The system of claim 12 , wherein the target network address is utilized by a compute instance executed within the provider substrate extension.

17. The system of claim 16 , wherein:

the system further comprises a hardware virtualization service to launch compute instances on behalf of users of the provider network, the hardware virtualization service including a third set of instructions that upon execution cause the hardware virtualization service to:

receive a request to launch the compute instance within the provider substrate extension; and

launch the compute instance within the provider substrate extension, wherein the compute instance utilizes the target network address; and

the first set of instructions upon execution further cause the coordinator service to register the target network address as being associated with at least one of the domain name or the compute instance.

18. A non-transitory computer-readable storage medium storing instructions which, when executed by one or more processors of a computing device, cause the computing device to implement a coordinator service within a cloud provider network to perform operations comprising:

receiving a first Domain Name Service (DNS) request transmitted by a DNS resolver executed within a first provider substrate extension of the cloud provider network, wherein the first DNS request identifies a domain name, wherein the first provider substrate extension includes a computer system that provides capacity for execution of compute instances for users of the cloud provider network and is controlled at least in part by a control plane of the cloud provider network, wherein the first provider substrate extension is coupled with a communications service provider network that is separate from the cloud provider network;

determining, based at least in part on the first DNS request, a location associated with the first provider substrate extension;

selecting, based at least in part on the location, a target network address from a set of network addresses associated with the domain name; and

transmitting, to the DNS resolver, a first DNS response identifying at least the target network address.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the target network address is utilized by a compute instance executed within a second provider substrate extension that is geographically separate from the first provider substrate extension.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the target network address is utilized by a compute instance executed within the first provider substrate extension.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2020
From: PARULKAR, ISHWARDUTT; DUNSMORE, DEVLIN ROARKE; SHEVADE, UPENDRA BHALCHANDRA; GUPTA, DIWAKAR
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 054152/0939 →
Cited By (21)
US 12,199,866 US 12,238,105 US 12,341,695 US 12,348,569 US 12,356,191 US 12,386,636 US 12,395,843 US 12,432,219 US 12,452,671 US 12,483,568 US 12,506,678 US 12,507,147 US 12,549,948 US 12,587,855 US 12,598,213 US 12,639,106 US 12,641,006 US 12,641,429 US 12,664,356 US 12,701,418 US 12,726,455