CodePipeline + ECS deploy: deregister, drain, stop?

0

hi everyone,

I've got a CodePipeline + ECS question: we have a pipeline configured to do source --> build --> deploy that uses in the final step an Amazon ECS Deploy action provider like so:

Enter image description here

My expectation, from reading on the internet (https://stackoverflow.com/questions/75137347/aws-ecs-does-not-drain-connections-or-remove-tasks-from-target-group-before-stop and https://garbe.io/blog/2020/03/04/deep-dive-ecs-deployment/), is that when a new deployment happens in ECS, that it should:

  • deregister the old task
  • drain the old tasks... then
  • stop the old tasks

but when I'm seeing is that my containers are getting a "stop" message first... then deregister happens... then draining happens, which is problematic for our JVM's because the stop command / message tells the JVM to start shutting down... but we haven't drained the connections yet.

Anyone have any experience / tips for getting drain + degister happening well before a stop message is issued to the containers?

2 Antworten
0

Hi, if you want to have good control of what happens at JVM shutdown triggered by ECS to drain your sessions and do other things for a clean shutdown, you should insert shutdown hooks in your JVM config.

See https://www.baeldung.com/jvm-shutdown-hooks

With such hooks in place, you can do what you need: wait for existing sessions to complete, etc. before proceeding to effective shutdown

Best,

Didier

profile pictureAWS
EXPERTE
beantwortet vor 10 Monaten
0

yeah, that doesn't really help... the application I have is constantly receiving new HTTP requests.... I need ECS to stop sending requests / drain connections... THEN tell the JVM after all the connections are drained to stop...

Am I wrong that the ECS process should be 1) deregister, 2) drain, 3) shutdown?

profile picture
AJ
beantwortet vor 10 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen