1 Deregistration Delay란 무엇인가?
- AWS의 Elastic Load Balancing(ELB) 서비스는 애플리케이션의 고가용성을 보장하고, 트래픽을 다양한 백엔드 서버로 효율적으로 분배하는 중요한 역할을 합니다.
- Deregistration Delay는 이 ELB 서비스에서 제공하는 기능 중 하나로, 타겟 그룹에서 특정 인스턴스나 서비스를 제거할 때 지연 시간을 설정하는 기능을 의미합니다.
1.1 Deregistration Delay의 목적
- 현재 연결된 요청의 처리 보장: 타겟이 로드 밸런서에서 제거될 때, 이미 활성화된 요청이 정상적으로 처리될 수 있도록 시간을 제공합니다.
- 세션 일관성 유지: 세션 기반 애플리케이션의 경우, 세션이 중단되지 않도록 보장하며, 장기 실행 요청의 경우에도 안정적으로 종료될 수 있게 합니다.
- 사용자 경험 최적화: 비활성화 중인 타겟에서 요청이 중단되지 않고 처리될 수 있어, 사용자는 중단 없는 서비스를 경험할 수 있습니다.
1.2. Deregistration Delay를 지원하는 ELB 유형
- Deregistration Delay 기능은 다음의 ELB 유형에서 지원됩니다:
- Application Load Balancer (ALB): HTTP 및 HTTPS 트래픽을 처리하며, 주로 웹 애플리케이션을 대상으로 사용됩니다. Deregistration Delay는 ALB에서 트래픽을 처리하는 모든 타겟에 적용할 수 있습니다.
- Network Load Balancer (NLB): 주로 TCP, UDP, TLS 트래픽을 처리하며, 높은 성능과 저지연 특성을 제공합니다. NLB에서도 Deregistration Delay를 설정하여 트래픽이 일정 시간 동안 기존 타겟으로 유지되도록 할 수 있습니다.
2 Deregistration Delay의 작동 방식
- Deregistration Delay는 타겟이 로드 밸런서의 타겟 그룹에서 제거되기 전에 설정된 시간 동안 현재 활성 연결을 유지하는 기능입니다.
- 이 기능은 다음과 같은 단계를 거쳐 작동합니다:
- 타겟 비활성화: 관리자가 타겟을 비활성화하거나 로드 밸런서에서 제거하기로 결정합니다.
- 지연 시간 설정: 타겟 비활성화 시, 설정된 Deregistration Delay 시간 동안 타겟은 새로운 요청을 받지 않으며, 기존의 활성 연결만 유지합니다.
- 기존 연결 유지: 이 지연 시간 동안 타겟은 현재 처리 중인 요청을 완료할 수 있습니다.
- 지연 시간 종료: 설정된 Deregistration Delay 시간이 종료되면, 로드 밸런서는 타겟과의 모든 연결을 강제로 종료하고, 타겟을 타겟 그룹에서 제거합니다.
3 Deregistration Delay의 설정 및 사용
- 기본 설정 값: Deregistration Delay의 기본 값은 300초(5분)입니다. 이 시간은 사용자가 필요에 따라 최소 0초에서 최대 3600초(1시간)까지 조정할 수 있습니다.
- 사용 예시: 애플리케이션의 롤링 업데이트나 확장/축소 시, 요청이 원활하게 처리되고 서비스 중단이 최소화되도록 Deregistration Delay를 적절히 설정합니다.
4 Deregistration Delay 시간 설정 팁
- Deregistration Delay 시간을 설정할 때는 애플리케이션의 특성과 비즈니스 요구 사항을 고려하여 신중하게 결정하는 것이 중요합니다.
- 올바른 설정을 통해 서비스 중단을 최소화하고 리소스 효율성을 극대화할 수 있습니다.
- 아래는 Deregistration Delay 시간을 설정할 때 고려해야 할 주요 팁입니다.
4.1 Deregistration Delay 시간을 늘리는 경우