Cloud/AWS Certified Solutions Architect - Asso
Elastic Load Balancing(ELB)
Tony Lim
2023. 8. 4. 16:04
Elastic Load Balancing(ELB) 개요
Gateway LB는 단순히 라우팅만 해주는것이 아니라 보안적인 요소도 고려해서 패킷들을 처리하게 된다.
TargetGroup이 정상인지 주기적으로 헬스 체크하는 역할도 있다.
Application LB 는 HTTP 요청을 보냄으로서 확인을 하게 된다.
TargetGroup 들의 속성들
속성 (Attribute) -HTTP/HTTPS , 프로토콜에 따라 다 다르다 , Application LB (L7)
등록 취소 지연 (Deregistration delay / Connection Draining)
- Auto Scaling 축소 등으로 Deregistration 된 인스턴스에 더 이상의 요청을 보내지 않도록 하는 기능
- 해당 인스턴스에 진행중이 요청이 있을 경우 설정해 놓은 시간동안 연결이 available 상태가 되지 않으면 해당 인스턴스에 연결 요청을 하지 않음
느린 시작 기간 (slow start duration)
- 기본적으로 대상은 대상 그룹으로 등록되자 마자 전체 요청 공유를 받기 시작하고 초기 상태 확인을 전달
- 느린 시작모드에서는 로드 밸런서가 대상으로 보낼 수 있는 요청의 수가 선형적으로 증가
알고리즘
- 라운드로빈 , 최소 미해결 요청 (처리하고 있는 요청이 가장 적은 대상에게 라우팅)
고정 (Stickiness Sessions / Session Affinity)
- 클라이언트가 세션을 유지한 상태라면 모든 요청을 동일한 인스턴스로 유지하는 기능
- 세션 유지를 위해 쿠키를 사용하기에 클라이언트에서 쿠키를 지원해야함
- 세션 데이터를 잃지 않으려는 상태정보를 유지하는 서버에 적합
속성 (Attributes) - TCP/UDP/TLS (Network LB, L4)
등록 취소 지연은 동일함
등록 해제 시 연결종료 = 등록 취소 지연( 300초 기본값) 에 도달하면 NLB가 active connection을 종료함
클라이언트 IP 주소 보존 (Preserve client ip address)
- 들어오는 모든 트래픽의 클라이언트 IP를 앱으로 전달
stick session , affinity 동일함
이렇게 target group들을 생성하면 나중에 ALB, NLB 를 생성할 때 고르게 된다.
Application Load Balancer
- Http/https 요청을 LB 할 경우 사용
- 웹 앱 처리에 적합함
- 리스너 규칙을 기반으로 라우팅 설정이 가능함
- 데이터 전송 보안을 위한 HTTPS 프로토콜 사용시 SSL?TLS 인증서를 배포해야함
- 보통 ACM (AWS Certificate Manager) 사용 , 아니면 클라이언트 인증서를 사용함
리스너 규칙
- Host header = 각 요청의 호스트 이름을 기반으로 라우팅 ( aa.example.com , bb.example.com)
- path = 요청의 url 의 경로 패턴을 기반으로 라우팅 (ex.com/audio, ex.com/video)
- Http Haeder, Http Request Method, Query String , Source IP
Network Load Balancer
- TCP UDP TLS 요청을 LB하는 경우
- 빨라서 고성능 앱에서 적합함, 게임같은거
- 고정 IP 주소를 NLB에 할당 가능 , client ip 주소도 뒤에 target group에게 전달이 가능
- ALB 처럼 리스너 규칙설정이 없음
- secure connection은 SSL/TLS 인증서 배포해야 쓸 수 있음 , 똑같이 ACM 에서 생성 가능