등록 해제 지연
등록 해제 지연, 영어로는 디레지스트레이션 딜레이(Deregistration Delay) 커넥션 드레이닝(Connection Draining)이라고도 불립니다.
하지만 CLB는 사라질 예정이기 때문에 ALB와 NLB가 생기고 나서 붙여진 네이밍으로 사용해야 하지만 부르기 쉬운 드레이닝으로 사용하도록 하겠습니다.
개요
- 기능: 인스턴스가 등록 해제되거나 비정상 상태일 때 활성 요청을 완료할 시간을 주기 위한 기능
- 용어
- 클래식 로드 밸런서(CLB): 연결 드레이닝(Connection Draining)
- 애플리케이션 및 네트워크 로드 밸런서(NLB, ALB): 등록 취소 지연(Deregistration Delay)
동작 원리
- 드레이닝 모드:
- 인스턴스가 드레이닝 모드로 설정되면 새로운 요청을 받지 않음.
- 기존 연결된 유저는 주어진 시간 동안 요청을 완료할 수 있음.
- 작업이 끝나면 모든 연결이 종료됨.
- 새로운 요청 처리:
- ELB는 드레이닝 상태의 인스턴스에 새로운 요청을 보내지 않음.
- 새로운 연결은 다른 정상적인 EC2 인스턴스와 수립됨.
설정 설명
- 파라미터:
- 설정 가능 시간: 1초 ~ 3,600초 (기본값: 300초)
- 0으로 설정 시 드레이닝 비활성화
- 설정 예시:
- 짧은 요청: 30초 정도
- 긴 요청: 높은 값으로 설정
사용 시나리오
- 짧은 요청: 드레이닝 시간을 낮게 설정하여 인스턴스의 빠른 교체를 지원
- 긴 요청: 드레이닝 시간을 높게 설정하여 인스턴스가 충분한 시간 동안 요청을 처리할 수 있도록 지원
요약
연결 드레이닝은 서비스 중단 없이 인스턴스를 종료하는데 도와주는 중요한 기능입니다.
만약 이해가 안된다면 아래를 조금 더 읽어봐 주세요.
온프라미스 환경에서 애플리케이션을 이중화하기 위해 서버를 2대를 두고 이중화 환경을 예를 들어 설명하겠습니다.
애플리케이션에 연결되어 있는 커넥션들과 사용자들은 지속적으로 들어올 것입니다. 연결된 사용자들은 서버를 내릴 경우 정상적인 처리를 하지 못하고 에러가 발생하거나 로그인 세션이 끊어지는 증상이 발생합니다.
위 증상들이 나오지 않도록 완벽하게 서비스 중단 없이 인스턴스를 교체하거나 유지 보수할 수 있게 도와주는 중요한 기능들을 완화하기 위해서 생긴 기능입니다. 제 회사의 애플리케이션의 조건으로 설명해 보겠습니다.
- 개발된 애플리케이션은 60초 이내에 모든 처리가 완료되도록 개발
- 타임아웃 60초
그렇다면 저라면 드레이션의 설정을 60초로 줄 것입니다.
애플리케이션의 모든 요청이 60초 이내에 종료되어야 한다는 조건과 일치합니다.
60초 후에도 처리되지 않은 요청은 타임아웃에 의해 종료되므로, 드레이닝 파라미터를 60초로 설정하는 것이 적절하다 생각하기 때문입니다. 이로 인해 드레이닝 중인 인스턴스는 60초 동안 기존 요청을 처리하고, 새로운 요청은 다른 인스턴스로 분배되어 서비스의 일관성을 유지하고 더 이상 종료할 인스턴스로는 요청이 들어오지 않으니까요.
요약이지만 조금 이해하기 쉽게 적다 보니 길어졌네요....
'Cloud' 카테고리의 다른 글
[AWS] ASG(AutoscalingGroup) 조정 정책, 스케일링 정책 (0) | 2024.08.07 |
---|---|
[AWS] ASG(AutoscalingGroup) 간단 설명 및 실습 영상 (0) | 2024.08.05 |
[AWS] 크로스존 로드밸런싱(Cross Zone Load Balancing) (0) | 2024.08.05 |
[AWS] AWS의 로드 밸런서(ALB, NLB, GWLB) (0) | 2024.08.02 |
[AWS] 고가용성과 확장성의 개요 (0) | 2024.08.01 |