Does AWS Global Accelerator maintain the connection integrity?

0

IP anycast is per packet level. It’s not per connection. Does AWS Global Accelerator ensure that all packets for a given connection are consistently routed to the same backend server to maintain connection integrity?

To be precise, I'm not talking about stateful connection. Let's say a POST request will have 1000 packets, will AWS Global Accelerator ensure that all 1000 packets are routed to the same server?

In the case of HTTP/3, if client crashed during the transferring process of 1000 packets, after recovering, does the client reconnect using the same connection ID, does AWS Global Accelerator routes to the same server?

asked a month ago65 views
3 Answers
0

For your specific scenario with a POST request consisting of 1000 packets, AWS Global Accelerator will route all these packets to the same server, ensuring that the entire request is handled by a single backend server1.

Regarding HTTP/3, if a client crashes during the transfer process and then recovers, it can reconnect using the same connection ID. AWS Global Accelerator will route the traffic to the same server, maintaining the session continuity. This is possible because HTTP/3 is designed to handle such scenarios, and AWS Global Accelerator supports this by ensuring consistent routing.

https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-accelerators.html

profile picture
EXPERT
answered a month ago
0

There are two answers:

If the underlying protocol you use is TCP-based then packets from a single session will always go to the endpoint/server that is selected because the protocol itself is (for the purposes of this answer) "stateful". All 1,000 packets will always go to the same endpoint because they are part of the same traffic session. If the client crashes then any additional traffic will be a new session. In that case, the answer provided by @mikeblack-aws is correct - you need to select the client affinity in order for different session from the same client to go to the same server.

If the underlying protocol is UDP-based (which HTTP/3 is) then it's a little tricker but I would strongly recommend (as per the other answer) to use client affinity.

profile pictureAWS
EXPERT
answered a month ago
  • No, I can not use client affinity. When clients (mobile app) crashes/connection drop, it often get a new ip address. Do you know how to configure UDP based on connection id in http3?

  • By design, UDP is connectionless. So if the clients are getting new IP addresses new sessions from them will hash differently and be delivered to different targets. Your application will need to look at the connection id and use some sort of session-sharing database.

  • So correct me if I'm wrong, your answer is as simple as no, AWS GA does not support connection integrity in the case of:

    • Client crashes, reconnects
    • Client use HTTP3
0

Are you talking about client affinity? When you are connecting to the an endpoint via AWS Global Accelerator by default it is set to None meaning it will use the 5-tuple system to select the next value. If you want to pin packets to a particular server/endpoint. I would be looking at this.

https://docs.aws.amazon.com/global-accelerator/latest/dg/about-listeners-client-affinity.html

profile pictureAWS
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions