
저희 팀과 저는 AWS ECS에 블루/그린을 구현하는 가장 좋은 방법을 찾으려고 노력하고 있지만 애플리케이션 로드 밸런서에 관한 한 가지 질문에 확실하게 대답할 수는 없는 것 같습니다.
지금까지 우리의 목표를 가장 많이 달성하는 방법은 블루 서비스와 그린 서비스를 별도의 대상 그룹에 배포하고 애플리케이션 로드 밸런서에서 리스너를 업데이트하는 것입니다. 그러나 이 기사에 따르면 몇 가지 장기 실행 트랜잭션이 있습니다.
https://aws.amazon.com/blogs/compute/bluegreen-deployments-with-amazon-ecs/
이 파란색/녹색 방법은 연결을 정상적으로 드레이닝하지 않습니다. 그러나 최근에 다른 AWS 엔지니어가 게시한 내용과 모순되는 게시물을 읽었으며, 리스너를 수정하면 새로 들어오는 연결에만 영향을 미치므로 정상적으로 연결이 해제된다고 주장합니다.
ELB에 대한 리스너를 수정할 때 실제로 어떤 일이 발생하는지 알려줄 수 있는 사람이 있나요?
답변1
당신은해야ELB를 스택의 일부로 포함, 즉 하나의 ELB파란색스택과 하나의 ELB녹색스택.
그렇게 하면 새로운 ELB에 대해 완전한 승인 테스트를 실행할 수 있고 일단 만족스러울 수 있습니다.DNS에서 ELB 이름 바꾸기. DNS가 변경되더라도 이전 ELB에 대한 연결을 유지하므로 장기 실행 세션에는 영향을 미치지 않습니다.
도움이 되었기를 바랍니다 :)
답변2
Application Load Balancer에 대한 AWS 설명서대상의 등록을 취소하면 해당 연결이 끊어진다는 의미입니다. 당신이 할 수 있는 일은 연결을 정상적으로 배수하기 위해 대상 그룹 내의 대상을 등록 취소하는 것입니다. 물론 이는 여러 대상 그룹 중에서 선택하는 것만큼 이상적이지는 않습니다.
또한 동일한 포트 프로토콜을 사용하는 동일한 ELB 내에 여러 리스너를 가질 수 없다는 점을 기억하십시오.
다른 사용자가 답변에서 언급했듯이 배포에 별도의 ELB가 있어야 하며 Route53에서 ELB 사이를 전환하면 됩니다. 이렇게 하면 라우팅 정책을 쉽게 사용하여 트래픽의 일부만 적절한 ELB/대상 그룹(예: 80%는 파란색, 20%는 녹색)으로 보낼 수 있습니다.