이 글은 Amazon ECS 실행 구조와 선택 기준을 다루는 시리즈의 2부입니다. 1부에서는 launch type은 호환되는 실행 환경을 표시하는 용도로만 사용하고 실제 실행은 용량 공급자(capacity provider)로 구성한다는 원칙을 바탕으로, Fargate와 ECS Managed Instances, EC2에 걸친 컴퓨트 선택과 Express Mode부터 예약 Task까지의 실행 형태를 살펴봤습니다. 2부에서는 남은 선택지를 다룹니다. 6종으로 증가한 배포 전략에서 시작해 네트워크와 스토리지, 플랫폼 […] ||
이 글은 Amazon ECS 실행 구조와 선택 기준을 다루는 시리즈의 2부입니다.
1부에서는 launch type은 호환되는 실행 환경을 표시하는 용도로만 사용하고 실제 실행은 용량 공급자(capacity provider)로 구성한다는 원칙을 바탕으로, Fargate와 ECS Managed Instances, EC2에 걸친 컴퓨트 선택과 Express Mode부터 예약 Task까지의 실행 형태를 살펴봤습니다.
2부에서는 남은 선택지를 다룹니다. 6종으로 증가한 배포 전략에서 시작해 네트워크와 스토리지, 플랫폼 옵션을 살펴보고, 마지막에 두 편에서 다룬 선택 기준을 종합해서 상황별 선택 가이드와 설계 상한이 되는 서비스 쿼터로 제안해 봅니다.
1. 6종으로 증가한 배포 전략
새 리비전(revision)을 내보내는 방법은 Rolling, CodeDeploy Blue/Green, External 3종에서 6종으로 증가했습니다. 공식 문서의 구조는 배포 컨트롤러 3종(ECS, CodeDeploy, External) 입니다. 이 중에서 ECS 컨트롤러가 ROLLING, BLUE_GREEN, LINEAR, CANARY 4개 전략을 포함합니다. 모두 고려하면 6가지 방식이고 기본값은 Rolling입니다. 표 1은 6종 각각의 트래픽 전환 방식과 로드밸런서 요구 사항, 그리고 어떤 상황에 적합한지를 정리했습니다.
전략
컨트롤러
전환 방식
로드밸런서 요구
적합 상황
Rolling
ECS
Task 점진 교체. minimumHealthyPercent 하한과 maximumPercent 상한으로 속도 제어
불필요
점진적 트래픽 제어가 불필요한 대부분의 서비스. 기본값이며 로드밸런서를 요구하지 않는 전략
Blue/Green (내장)
ECS
그린 환경을 테스트 트래픽으로 선검증 후 프로덕션 트래픽 전량 즉시 전환
ALB/NLB 또는 Service Connect
즉시 전환과 신속 롤백이 필요한 서비스
Linear
ECS
동일 비율 증분으로 점진 전환. step 3.0~100.0%(0.1 단위), step bake 0~1,440분
ALB/NLB 또는 Service Connect
트래픽을 조금씩 옮기며 지표를 확인해야 하는 서비스
Canary
ECS
2단계 전환 – 소량 트래픽 선검증 후 나머지 일괄 전환
ALB/NLB 또는 Service Connect
새로운 버전을 소량 트래픽으로 먼저 검증하고 싶은 서비스
Blue/Green (CodeDeploy)
CODE_DEPLOY
CodeDeploy 사전 정의 구성으로 canary / linear / all-at-once 전환
ALB/NLB 필수, NLB는 all-at-once만
기존 CodeDeploy 파이프라인을 유지해야 하는 팀
External
EXTERNAL
서드파티 컨트롤러가 task set의 scale 값으로 직접 제어
선택. 사용 시 ALB/NLB만
자체 배포 도구를 가진 조직
표 1. 배포 전략 6종 – 방식과 적합 상황
선택 기준에 대한 권고사항에 대해서 CodeDeploy Blue/Green 배포 문서에서 내장된 Blue/Green 사용을 권장한다고 밝힙니다. CodeDeploy 방식은 기존 파이프라인을 유지해야 하는 경우의 선택지로 남습니다.
1.1 내장 고급 배포의 공통 구조: 6단계와 bake time
내장

