본문으로 건너뛰기

DeregistrationDelay

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는 타겟이 로드 밸런서의 타겟 그룹에서 제거되기 전에 설정된 시간 동안 현재 활성 연결을 유지하는 기능입니다.
  • 이 기능은 다음과 같은 단계를 거쳐 작동합니다:
  1. 타겟 비활성화: 관리자가 타겟을 비활성화하거나 로드 밸런서에서 제거하기로 결정합니다.
  2. 지연 시간 설정: 타겟 비활성화 시, 설정된 Deregistration Delay 시간 동안 타겟은 새로운 요청을 받지 않으며, 기존의 활성 연결만 유지합니다.
  3. 기존 연결 유지: 이 지연 시간 동안 타겟은 현재 처리 중인 요청을 완료할 수 있습니다.
  4. 지연 시간 종료: 설정된 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 시간을 늘리는 경우

  • 현재 요청의 완전한 처리 보장
    • 긴 요청 처리 시간이 필요한 애플리케이션의 경우, 더 긴 Deregistration Delay 시간을 설정하면 활성 연결된 요청이 정상적으로 완료될 수 있습니다.
    • 이는 특히 장기 실행 작업이나 데이터를 저장하고 있는 애플리케이션에서 유용합니다.
  • 세션 일관성 유지
    • 세션 기반 애플리케이션에서는 사용자가 동일한 세션을 통해 지속적인 경험을 할 수 있도록 하는 것이 중요합니다. 더 긴 지연 시간은 세션의 일관성을 유지하고, 데이터 손실을 방지하는 데 도움이 됩니다.
  • 사용자 경험 개선
    • 사용자가 중단 없는 서비스를 경험할 수 있도록 보장합니다. 이는 고객 만족도를 높이고, 비즈니스에 긍정적인 영향을 미칠 수 있습니다.
  • 고려 사항
    • 긴 지연 시간은 리소스 비효율성을 초래할 수 있으며, 타겟의 배포나 유지 관리에 시간이 더 걸릴 수 있습니다.

4.2 Deregistration Delay 시간을 줄이는 경우

  • 빠른 리소스 해제
    • 타겟 인스턴스가 빠르게 해제되어 다른 작업에 사용할 수 있습니다. 이는 리소스 활용을 극대화하는 데 도움이 됩니다.
  • 신속한 배포 및 확장
    • 짧은 지연 시간을 설정하면 롤링 업데이트나 인프라 변경을 더 빠르게 적용할 수 있어, 신속한 대응이 필요한 상황에 유리합니다.
  • 고려 사항
    • 너무 짧은 지연 시간은 현재 활성화된 요청이 완료되기 전에 타겟이 제거되어, 사용자 요청이 중단될 위험이 있습니다. 또한, 세션 기반 애플리케이션에서는 세션이 갑자기 종료될 수 있습니다.

4.3 결론 및 권장 사항

  • Deregistration Delay 시간을 설정할 때는 애플리케이션의 유형, 처리할 요청의 특성, 비즈니스 요구 사항 등을 종합적으로 고려해야 합니다.
  • 긴 요청 처리 시간이나 세션 일관성이 중요한 애플리케이션에는 더 긴 지연 시간을 설정하고, 빠른 배포와 리소스 최적화가 필요한 경우에는 짧은 지연 시간을 선택하는 것이 좋습니다. 이를 통해 서비스 중단을 최소화하고, 사용자 경험을 최적화할 수 있습니다.