IP Library › Granted Patent US 12,271,276
Granted Patent B1
US 12,271,276 · App. 18/339,729 · Granted Apr 8, 2025

Systems and methods for enabling a failover service for block-storage volumes

Inventors: Hardeep Singh Uppal (Seattle, WA); Harvo Reyzell Jones (Gig Harbo, WA); Brad E Marshall (Bainbridge Island, WA); Joseph Elmar Magerramov (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
G06F11/2023G06F11/0709H04L12/4641G06F2201/85H04L45/28
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 12,271,276
App. No.
18/339,729
Filed
Jun 22, 2023
Granted
Apr 8, 2025
Kind
B1
Art Unit
2113
USPC
714/4.11
Abstract

The present disclosure generally relates to a first network device in a primary region that can failover network traffic into a second network device in a failover region. The first network device can receive routing criteria identifying how traffic originating in the primary region should be routed. The first network device can transmit this routing criteria to the second network device in the failover region. Based on determining the occurrence of a failover event, the first network device may transmit network traffic originating in the primary region to the second network device in the failover region. The second network device can determine how to route the network traffic based on the routing criteria of the primary region. In some embodiments, the second network device can determine how to route the network traffic based on the routing criteria of the failover region.

Claims (52)

1. A computing device for routing network traffic, the computing device comprising:

data processing hardware; and

memory in communication with the data processing hardware, the memory storing instructions, wherein execution of the instructions by the data processing hardware causes the data processing hardware to:

identify a failover computing device to receive a first packet of network traffic from the computing device; and

based on a failover event, route the first packet of network traffic to the failover computing device, wherein the failover computing device receives the first packet of network traffic from the computing device and routes the first packet of network traffic to a first data destination according to routing criteria corresponding to one of:

first routing criteria associated with the computing device based on the first packet of network traffic including an endpoint identifier associated with a first region, wherein the first region is associated with the computing device, or

second routing criteria associated with the failover computing device based on the first packet of network traffic including an endpoint identifier associated with a second region, wherein the second region is associated with the failover computing device.

2. The computing device of claim 1 , wherein the execution of the instructions by the data processing hardware further causes the data processing hardware to:

obtain a second packet of network traffic subsequent to routing the first packet of network traffic, wherein the computing device routes the second packet of network traffic to a second data destination based on the first routing criteria subsequent to routing the first packet of network traffic.

3. The computing device of claim 1 , wherein the execution of the instructions by the data processing hardware further causes the data processing hardware to:

obtain a second packet of network traffic prior to routing the first packet of network traffic, wherein the computing device routes the second packet of network traffic to a second data destination based on the first routing criteria prior to routing the first packet of network traffic.

4. The computing device of claim 1 , wherein a data source of the first packet of network traffic and the first data destination are located in a same network.

5. The computing device of claim 1 , wherein the execution of the instructions by the data processing hardware further causes the data processing hardware to:

determine the second region is available for failover.

6. The computing device of claim 1 , wherein at least one of the first routing criteria or the second routing criteria comprises at least one of an endpoint policy, a service policy, or a source policy.

7. The computing device of claim 1 , wherein each of a data source of the first packet of network traffic, the computing device, and the failover event correspond to a virtual private network environment.

8. The computing device of claim 7 , wherein the virtual private network environment comprises a first virtual private network environment, and wherein each of the failover computing device and the first data destination correspond to a second virtual private network environment.

9. The computing device of claim 1 , wherein the first region comprises a primary region and the second region comprises a failover region, wherein the primary region and the failover region correspond to an active-standby region configuration.

10. The computing device of claim 9 , wherein each of a data source of the first packet of network traffic, the computing device, and the failover event are associated with the primary region, and wherein each of the failover computing device and the first data destination are associated with the failover region.

11. The computing device of claim 1 , wherein the first region comprises a first active region and the second region comprises a second active region, wherein the first active region and the second active region correspond to an active-active region configuration.

12. The computing device of claim 11 , wherein each of a data source of the first packet of network traffic, the computing device, and the failover event are associated with the first active region, and wherein each of the failover computing device and the first data destination are associated with the second active region.

13. The computing device of claim 1 , wherein a data source of the first packet of network traffic is located in one or more of:

the first region, wherein the data source comprises a virtual machine instance located in the first region; or

the second region, wherein the data source routes data to the computing device.

14. A system for managing failover of traffic, the system comprising:

a first computing device associated with a first region, the first computing device comprising:

first data processing hardware; and

first memory in communication with the first data processing hardware, the first memory storing first instructions, wherein execution of the first instructions by the first data processing hardware causes the first data processing hardware to:

identify a second region; and

based on a failover event, route a packet of network traffic to the second region, and

a second computing device associated with the second region, the second computing device comprising:

second data processing hardware; and

second memory in communication with the second data processing hardware, the second memory storing second instructions, wherein execution of the second instructions by the second data processing hardware causes the second data processing hardware to:

receive the packet of network traffic from the first computing device; and

route the packet of network traffic to a data destination using routing criteria corresponding to one of:

first routing criteria associated with the first computing device based on the packet of network traffic including an endpoint identifier associated with the first region, or

second routing criteria associated with the second computing device based on the packet of network traffic including an endpoint identifier associated with the second region.

15. The system of claim 14 , wherein the execution of the first instructions by the first data processing hardware further causes the first data processing hardware to:

determine occurrence of the failover event, wherein the failover event is associated with the first region.

16. The system of claim 14 , wherein the execution of the first instructions by the first data processing hardware further causes the first data processing hardware to:

modify the packet of network traffic to include the endpoint identifier associated with the second region.

17. A method implemented by a first computing device, the method comprising:

obtaining, at the first computing device, a packet of network traffic associated with a first region and the first network computing device;

determining, by the first computing device, a second region; and

based on a failover event, routing, by the first computing device, the packet of network traffic to the second region, wherein a second computing device associated with the second region receives the packet of network traffic from the first computing device and routes the packet of network traffic to a data destination using routing criteria selected from:

first routing criteria associated with the first computing device based on the packet of network traffic including an endpoint identifier associated with the first region, or

second routing criteria associated with the second computing device based on the packet of network traffic including an endpoint identifier associated with the second region.

18. The method of claim 17 , wherein obtaining the packet of network traffic comprises obtaining, by the first computing device, the packet of network traffic from a virtual machine instance via an endpoint device.

19. The method of claim 17 , wherein the data destination, the first computing device, and the second computing device are located in a private network.

20. The method of claim 17 , wherein the second routing criteria comprises the first routing criteria, the method further comprising:

transmitting, by the first computing device, the first routing criteria to the second computing device; and

transmitting, by the first computing device, the first routing criteria to a third computing device associated with a third region, wherein determining the second region comprises determining the second region from the second region and the third region.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2024
From: UPPAL, HARDEEP SINGH; JONES, HARVO REYZELL; MARSHALL, BRAD E; MAGERRAMOV, JOSEPH ELMAR
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 069657/0701 →
Continuity (1)
Continuation 17216301 · Mar 29, 2021
References Cited (77)
US 6865591B1 · Garg · 2005 [cited by applicant]
US 8595547B1 · Sivasubramanian · 2013 [cited by applicant]
US 8918673B1 · Rangaiah et al. · 2014 [cited by applicant]
US 9116862B1 · Rath · 2015 [cited by applicant]
US 9274903B1 · Garlapati · 2016 [cited by applicant]
US 9984140B1 · Sukumaran · 2018 [cited by applicant]
US 10404613B1 · Brooker · 2019 [cited by applicant]
US 10713129B1 · Turmala · 2020 [cited by applicant]
US 11341005B2 · Waters · 2022 [cited by applicant]
US 11366728B2 · MacCarthaigh · 2022 [cited by applicant]
US 11385975B2 · Dye · 2022 [cited by applicant]
US 11397651B2 · Dye · 2022 [cited by applicant]
US 11397652B2 · MacCarthaigh · 2022 [cited by applicant]
US 11411808B2 · MacCarthaigh · 2022 [cited by applicant]
US 11693746B2 · Dye et al. · 2023 [cited by applicant]
US 11709741B1 · Uppal · 2023 [cited by examiner]
US 12066906B2 · Dye et al. · 2024 [cited by applicant]
US 12124344B2 · Dye et al. · 2024 [cited by applicant]
US 20050193227A1 · Nakahara · 2005 [cited by applicant]
US 20050283658A1 · Clark · 2005 [cited by applicant]
US 20060047776A1 · Chieng · 2006 [cited by applicant]
US 20070006015A1 · Rao · 2007 [cited by applicant]
US 20070180314A1 · Kawashima · 2007 [cited by applicant]
US 20080294933A1 · Nishii · 2008 [cited by applicant]
US 20090228589A1 · Korupolu · 2009 [cited by applicant]
US 20090290483A1 · Curtis · 2009 [cited by applicant]
US 20100325473A1 · Agneeswaran · 2010 [cited by applicant]
US 20110099146A1 · McAlister · 2011 [cited by applicant]
US 20110145243A1 · Yudenfriend · 2011 [cited by applicant]
US 20110239215A1 · Sugai · 2011 [cited by applicant]
US 20130117231A1 · Sridharan et al. · 2013 [cited by applicant]
US 20140059379A1 · Ren · 2014 [cited by applicant]
US 20140317441A1 · Arata · 2014 [cited by applicant]
US 20150178137A1 · Gordon · 2015 [cited by applicant]
US 20150370659A1 · Pershin · 2015 [cited by applicant]
US 20160004552A1 · Innan · 2016 [cited by applicant]
US 20160055062A1 · Petri · 2016 [cited by applicant]
US 20160162378A1 · Garlapati · 2016 [cited by applicant]
US 20170230451A1 · Paramasivam · 2017 [cited by applicant]
US 20170339065A1 · Li · 2017 [cited by applicant]
US 20180004612A1 · Gahlot · 2018 [cited by applicant]
US 20180143885A1 · Dong · 2018 [cited by applicant]
US 20180165166A1 · Wang · 2018 [cited by applicant]
US 20190235979A1 · Li · 2019 [cited by applicant]
US 20190250849A1 · Compton · 2019 [cited by applicant]
US 20190281014A1 · Lin · 2019 [cited by applicant]
US 20190317869A1 · Selvaraj et al. · 2019 [cited by applicant]
US 20190324874A1 · Gill · 2019 [cited by applicant]
US 20190372908A1 · Featonby et al. · 2019 [cited by applicant]
US 20200042410A1 · Gupta · 2020 [cited by applicant]
US 20200044966A1 · Krishnan · 2020 [cited by applicant]
US 20200092334A1 · Hiebert et al. · 2020 [cited by applicant]
US 20200104222A1 · Ramamoorthi · 2020 [cited by applicant]
US 20200257704A1 · Du · 2020 [cited by applicant]
US 20200285547A1 · Shukla · 2020 [cited by examiner]
US 20200319890A1 · Compton · 2020 [cited by applicant]
US 20210004275A1 · Avagyan · 2021 [cited by applicant]
US 20210144050A1 · Fagan · 2021 [cited by examiner]
US 20230080776A1 · Dye et al. · 2023 [cited by applicant]
CN 103034570 · 2013 [cited by applicant]
CN 105144138 · 2015 [cited by applicant]
CN 106716972 · 2017 [cited by applicant]
CN 110297801 · 2019 [cited by applicant]
CN 114787781 · 2022 [cited by applicant]
CN 115698954 · 2023 [cited by applicant]
CN 116166479 · 2023 [cited by applicant]
CN 116302719 · 2023 [cited by applicant]
DE 112020005786T5 · 2022 [cited by applicant]
EP 4127936 · 2023 [cited by applicant]
EP 4386559 · 2024 [cited by applicant]
GB 2606092 · 2022 [cited by applicant]
WO WO2021108452 · 2021 [cited by applicant]
WO WO2021195392 · 2021 [cited by applicant]
Search Report and Written Opinion dated Jul. 16, 2021, issued in PCT/US2021/024173. [cited by applicant]
Search Report and Written Opinion dated Jun. 1, 2021 issued in PCT/US2020/062090. [cited by applicant]
International Preliminary Report on Patentability issued May 17, 2022, issued in PCT/US2020/062090. [cited by applicant]
Zhou et al., “Cloud Service Reliability Enhancement via Virtual Machine Placement Optimization”, 2017, IEEE Transactions on Services Computing, pp. 902-913 (Year: 2017). [cited by applicant]