Amazon ECS용 로드 밸런서 연결 드레이닝 매개변수 최적화

Amazon ECS용 로드 밸런서 연결 드레이닝 매개변수 최적화

최적화를 위해 클라이언트는 컨테이너 서비스에 대한 keep-alive 연결을 유지해요. 배포 속도를 높이기 위해 deregistration_delay.timeout_seconds 로드 밸런서 매개변수를 구성할 수 있어요.

출처: 문서

본문

최적화를 허용하기 위해 클라이언트는 컨테이너 서비스에 대한 keep-alive 연결을 유지합니다. 이를 통해 해당 클라이언트의 후속 요청이 기존 연결을 재사용할 수 있습니다. 컨테이너로의 트래픽을 중지하려면 로드 밸런서에 알립니다. 로드 밸런서는 클라이언트가 keep-alive 연결을 닫았는지 주기적으로 확인합니다. Amazon ECS는 로드 밸런서를 모니터링하고 로드 밸런서가 keep-alive 연결이 닫혔다고(대상이 UNUSED 상태임) 보고하기를 기다립니다.

로드 밸런서가 대상을 UNUSED 상태로 이동하기 위해 기다리는 시간이 등록 취소 지연(deregistration delay)입니다. 배포 속도를 높이기 위해 다음 로드 밸런서 매개변수를 구성할 수 있습니다.

deregistration_delay.timeout_seconds: 300 (기본값)

응답 시간이 1초 미만인 서비스가 있으면 클라이언트와 백엔드 서비스 사이의 연결을 끊기 전에 로드 밸런서가 5초만 기다리도록 매개변수를 다음 값으로 설정하세요.

deregistration_delay.timeout_seconds: 5

참고: 느린 파일 업로드나 스트리밍 연결 같은 장기 요청이 있는 서비스에는 값을 5초로 설정하지 마세요.

SIGTERM 응답성

Amazon ECS는 먼저 작업에 중지 신호를 보내 애플리케이션이 완료하고 종료해야 함을 알립니다. 이 신호는 컨테이너 이미지에서 STOPSIGNAL 지시문으로 정의할 수 있으며 기본값은 SIGTERM입니다. 그런 다음 Amazon ECS는 SIGKILL 메시지를 보냅니다. 애플리케이션이 SIGTERM을 무시하면 Amazon ECS 서비스는 프로세스를 종료하기 위해 SIGKILL 신호를 보내기까지 기다려야 합니다.

Amazon ECS가 SIGKILL 메시지를 보내기까지 기다리는 시간은 다음 Amazon ECS 에이전트 옵션으로 결정됩니다.

ECS_CONTAINER_STOP_TIMEOUT: 30 (기본값)

더 알아보기 (Learn more)