aws / containers-roadmap

This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS).
https://aws.amazon.com/about-aws/whats-new/containers/
Other
5.21k stars 320 forks source link

[ECS] [Fargate]: Add custom attributes to Cloudmap via ECS service deploy #1119

Open awsiv opened 4 years ago

awsiv commented 4 years ago

Community Note

Tell us about your request Enable ECS to add (user provided) custom attributes to Cloudmap

Which service(s) is this request for? Fargate, ECS, Cloudmap, Appmesh

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? Currently it is not possible to tell ECS service to add custom attributes to Cloudmap instance. ECS adds certain attributes by default, but I was thinking of adding additional attributes. eg. LIVE = true, so it allows to do some traffic shaping/simulate deregistration delay etc.. by filtering virtual nodes (in App Mesh) based on its attributes. It can be done with external tooling ofc, but then that needs to be made aware of scale-in and scale-out. eg. the tool needs to update Cloudmap after every task is launched. Would be great if this was supported in ECS by default.

As of now, custom attributes for tasks cannot be specified via task definition or during service creation.

Related Issue on aws-cdk: https://github.com/aws/aws-cdk/issues/1711

Are you currently working around this issue? No

Additional context Migrating to Appmesh

Attachments If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Lux-CC commented 1 year ago

We also require a similar for traffic shaping, but also to update the custom attributes after deployment of a task set.

So we would use the EXTERNAL deployment controller, create a new task set (with custom attributeLIVE=false). Then we would send some test traffic, and update the custom attribute to LIVE=true if tests succeed. This way there needs to be no 'smartness' in the client application on where to send traffic to. It would be simply all tasks with a tag LIVE=true.

I'm aware that this can be done using target groups & codedeploy, but we don't use ALBs for ingress on the service but traefik due to a limitation on the number of routing rules of ALBs.