
Mein Team und ich versuchen, die beste Möglichkeit zur Implementierung von Blau/Grün für AWS ECS zu finden, aber wir können eine Frage zu Anwendungslastenausgleichsmodulen nicht eindeutig beantworten.
Bisher scheint die Methode, die unsere Ziele am besten erfüllt, darin zu bestehen, einen blauen und einen grünen Dienst in getrennten Zielgruppen bereitzustellen und den Listener auf unserem Anwendungs-Load Balancer zu aktualisieren. Wir haben jedoch einige Transaktionen mit längerer Laufzeit und laut diesem Artikel:
https://aws.amazon.com/blogs/compute/bluegreen-deployments-with-amazon-ecs/
Diese Blau/Grün-Methode entlädt Verbindungen nicht ordnungsgemäß. Ich habe jedoch kürzlich einen Beitrag eines anderen AWS-Ingenieurs gelesen, der dem widerspricht und behauptet, dass die Änderung des Listeners nur neue eingehende Verbindungen beeinflusst und daher ordnungsgemäß entlädt.
Kann jemand Licht ins Dunkel bringen, was eigentlich passiert, wenn ich den Listener für einen ELB ändere?
Antwort1
Du solltestELB als Teil Ihres Stacks haben, also ein ELB fürBlauStack und ein ELB fürGrünStapel.
Auf diese Weise können Sie eine vollständige Reihe von Abnahmetests für den neuen ELB durchführen und wenn Sie zufrieden sindErsetzen Sie den ELB-Namen im DNS. Dies hat keine Auswirkungen auf Ihre Sitzungen mit langer Laufzeit, da diese ihre Verbindungen zum alten ELB beibehalten, selbst wenn sich der DNS ändert.
Hoffentlich hilft das :)
Antwort2
AWS-Dokumentation zu Application Load Balancerngibt an, dass beim Abmelden eines Ziels dessen Verbindungen abgebaut werden. Sie könnten Ziele innerhalb Ihrer Zielgruppe abmelden, um Verbindungen ordnungsgemäß abzubauen. Natürlich ist dies nicht so ideal wie die Auswahl zwischen mehreren Zielgruppen.
Denken Sie daran, dass Sie auch nicht mehrere Listener mit demselben Portprotokoll innerhalb desselben ELB haben können.
Wie ein anderer Benutzer in seiner Antwort sagte, sollten Sie in Ihrer Bereitstellung separate ELBs haben und in Route53 einfach zwischen ihnen hin- und herwechseln. Auf diese Weise können Sie Routing-Richtlinien problemlos verwenden, um nur einen Teil des Datenverkehrs an die entsprechende ELB/Zielgruppe zu senden (sagen wir 80 % an Blau, 20 % an Grün).