aws-app-mesh-roadmap
aws-app-mesh-roadmap copied to clipboard
Feature Request: ALB-style Session Stickiness using application cookies/headers
If you want to see App Mesh implement this idea, please upvote with a :+1:.
Tell us about your request ALB-style Session Stickiness using application cookies/headers.
Which integration(s) is this request for? ECS, EKS, EC2, Fargate
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? We're deploying our apps with ECS Fargate, using AppMesh behind ALBs and hand-made Ingress Gateways (based on Nginx). The setup looks as follows:
[Users/Internet] -> [ALB] -> [Ingress/Nginx] -> [Virtual Service] -> [Virtual Router] -> [Virtual Nodes: blue/green]
The blue
/green
Virtual Nodes are wrapped around ECS Fargate Services, as we're additionally using Virtual Routers to implement traffic shifting in Canary Deployment scenario.
Unfortunately, some of our backends are monolithic, stateful applications that require Session Stickiness. Just enabling Session Stickiness on ALB, even when using custom cookie, does not work, as it will only stick the ALB and a specific instance of Ingress Gateway together. What we need is a mechanism that would allow us to guarantee requests with specific JSESSIONID
header always end up on the same ECS Tasks.
Are you currently working around this issue? We're very early at this, but are currently considering:
- Deploying those apps on EC2 / ECS directly behind ALBs. We'd however have to rewrite our Canary Deployments implementation using Weighted Target Groups,
- Checking if we can make Nginx / Nginx Plus help here with any built-in session stickiness mechanisms,
- Checking if the backends themselves have any session/cache replication mechanisms built-in that we could use.
We are currently having the same issue. We know Envoy supports sticky session mechanisms like Ring Hash and Maglev, so we wonder if that would be a simple way for AppMesh to support sticky session affinity to backend ECS tasks (etc).
I would imagine this would be a critical issue as not having it would negate anything stateful being able to scale horizontally.
@herrhound Any updates on this request? I'm looking forward to bringing about sticky sessions on App Mesh.
@yasaichi, at the moment we don't have a specific date yet for supporting sticky sessions with App Mesh. It is not on our immediate roadmap (see https://github.com/aws/aws-app-mesh-roadmap/projects/1).
@herrhound Thanks for your reply. Could you tell me how I can put the feature on the roadmap?
@herrhound Can you share any information when can this end up on the roadmap, please? It's almost two years now since it's first been reported. Is there anything we can do to speed things up?