본문 바로가기
🌴 DevOps/Cloud

[ELB] 로드밸런서란? Health Check기능과 외부 vs 내부 ELB

by 카프리썬_ 2020. 4. 5.
728x90
728x90

1. ELB( Elastic Load Balancing)란? :

Amazon EC2 인스턴스, 컨테이너 및 IP 주소와 같은 여러 대상에 대해 받은 애플리케이션 또는 네트워크 트래픽을 '분산'

트래픽이 시간이 지남에 따라 변경되므로 ELB가 로드 밸런서를 확장하고, 대다수의 워크로드에 맞게 자동으로 조정

 

2. 왜 로드밸런서를 써야하는가? 쓰면 뭐가 좋은가?

애플리케이션의 '가용성'과 '내결함성'이 높아진다.

워크로드를 가상 서버와 같은 다수의 컴퓨팅 리소스로 '분산'하기 때문에

(유입되는 트래픽을 자동으로 분산처리 역할) 

 

3. 로드밸런서의 기능?

1) 워크로드를 가상 서버와 같은 다수의 컴퓨팅 리소스로 분산

2) 요청의 전체적인 흐름을 방해하지 않고 필요에 따라 로드 밸런서에서 컴퓨팅 리소스를 추가 및 제거

3) health check(상태확인)

로드밸런서가 트래픽을 보낼 대상(인스턴스)의 상태확인
로드 밸런서가 정상적인 대상에만 요청을 보내도록 컴퓨팅 리소스의 상태를 모니터링하는 상태 확인

비정상적인 인스턴스를 감지하고 정상적인 인스턴스에만 트래픽을 라우팅

 4) 컴퓨팅 리소스가 주요 작업에 집중할 수 있도록 암호화 및 복호화 작업을 로드밸런스로 오프로드

 

4. 로드밸런서 동작방식

1) 하나이상의 '리스너'를 지정해서 클라이언트로부터 들어오는 트래픽을 허용

* Listener(리스너)요청을 듣고 분배하는 역할 (연결 요청을 확인하는 프로세스)

클라이언트와 로드 밸런서 간의 연결을 위한 프로토콜포트 번호

사용자가 구성한 프로토콜 및 포트 번호에 매칭된 인스턴스에 요청을 전달하도록 함.

 

2) 들어온 요청을 하나이상의 가용영역에 있는 타겟대상(EC인스턴스)으로 보냄(라우팅함)

3) 로드밸런서에 등록된 대상의 health check

4) 타겟대상이 비정상(unhealthy)으로 감지되면, 해당 타겟대상으로 트래픽 보내는거 중단

5) 타겟대상이 정상(health)y으로 감지되면, 다시 타겟대상으로 트래픽 보냄

 

5. 로드밸런서와 노드

사실상, 로드밸런서도 EC2다!

Elastic Load Balancing가 해당 가용 영역에서 로드 밸런서 노드를 생성하기 때문에

자신의 트래픽을 보낼 각각의 노드를 가지고 있고, 그 노드가 가리키고 있는게 타겟대상이 되는 것!

 

  • External 로드밸런서는 어디에 있는건가? Pubic 서브넷
  • Internl 로드밸런서는 어디에 있는건가? Private 서브넷
  • 왜 노드의 개수가 2개일까? 부하분산을 할 가용영역이 현재 2개니까!

로드 밸런서의 노드는 클라이언트로부터 요청을 가져와서 등록된 대상에 분산

 

1) CROSS ZONE 로드밸런싱 활성화 (ALB 디폴트값)

각 로드 밸런서 노드가 활성화된 모든 가용 영역에 있는 등록된 대상 간에 트래픽을 분산

100개의 요청이 들어온다 하면 10개의 대상간에 10씩 분산가능

CROSS ZONE 로드밸런싱 활성화

2) CROSS ZONE 로드밸런싱 비활성화 (NLB 디폴트값)

클라이언트 트래픽 50%를 가용영역에 있는 대상에만 트래픽 분산

100개의 요청이 들어온다하면, 각 가용영역에 50씩 들어오고, 그 안에서 대상간에 분산
a존에 50개 들어온걸 25씩 분산하고, b존에 50들어온걸 6.25씩 분산

 

CLB일때는 로드밸런서 생성방법에 따라서 다름

API 또는 CLI로 생성할 경우, Cross zone 로드밸런싱비활성화가 디폴트값

AWS콘솔로 생성할 경우, Cross zone 로드밸런싱 활성화가 디폴트값

 

6. 외부 로드밸런서 vs 내부 로드밸런서

외부 로드밸런서 : 퍼블릭 ip주소

그래서 외부 로드밸런서의 DNS이름은 퍼블릭IP주소이기 때문에 공개적으로 확인가능

외부인터넷으로 들어온 클라이언트의 요청을 받아서 라우팅함

 

내부 로드밸런서 : 프라이빗 IP주소

그래서 VPC안에 클라이언트의 요청만 라우팅함

 

모두 프라이빗 IP주소를 가지고 받은 요청을 내부로 라우팅함.

그래서 퍼블릭IP주소가 없어도 요청을 받을 수 있음

 

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html

 

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html

Elastic Load Balancing 작동 방식

docs.aws.amazon.com

 

728x90
반응형