- Newest
- Most votes
- Most comments
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
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.
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
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
Relevant content
- asked 6 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated a year ago
Do you have any page support what you said? I can not find it anywhere. Thank you
https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-accelerators.creating-editing.html https://xebia.com/blog/latency-based-routing-in-aws/
Sorry, but your link is completely unrelated to what you post here.
Hey Tonny, it's all here.
https://developer.mozilla.org/en-US/docs/Glossary/HTTP_3 https://docs.aws.amazon.com/global-accelerator/