AWS LB 동작 방식
로드밸런서는 클라이언트에서 오는 트래픽을 허용하고, 하나 이상의 가용 영역에 등록된 target으로 요청을 라우팅 한다. 또한 주기적으로 target의 상태를 모니터링하고 healthy 상태인 target으로만 트래픽을 라우팅 한다. unhealthy 상태인 target을 확인하면 해당 target으로의 라우팅을 중지하고, 이후에 healthy 상태를 확인하면 라우팅을 재개한다.
가용 영역 및 로드 밸런서 노드
로드밸런서가 가용 영역을 활성화하면 활성화한 가용 영역에 로드밸런서 노드를 생성한다. 로드밸런서 노드로의 트래픽은 라운드 로빈 라우팅 알고리즘 기반으로 균일하게 분산되는 것으로 보인다.
LB는 활성화되어 있는 가용영역에 구성되어 있는 target에 트래픽을 라우팅한다. 즉, 비활성화된 가용 영역에 구성된 target으로는 트래픽을 라우팅 하지 않는다.
교차 영역 로드 밸런싱
교차 영역 로드 밸런싱을 활성화하면 각 로드밸런서 노드가 활성화된 모든 가용 영역에 있는 target으로 트래픽을 분산한다. 즉, 가용 영역 구분 없이 라우팅한다.
비활성화하면 각 로드밸런서 노드가 위치한 가용영역 내의 target으로 트래픽을 분산한다.
참고 : 2023.05.24 - [AWS] nslookup으로 NLB의 IP가 모두 확인되지 않는 경우
다음과 같이 구성된 인프라가 있다고 하자. LB는 2개의 가용영역을 활성화하고 있다. 그리고 하나의 가용영역에는 2개의 target이, 다른 가용영역에는 8개의 target이 등록되어 있다.
교차 영역 로드 밸런싱 활성화 시
라운드 로빈 라우팅 알고리즘에 따라 트래픽이 분산되므로 각 로드밸런서 노드는 클라이언트가 보낸 트래픽의 50%를 수신한다. 그리고 각 노드밸런서 노드는 10개의 target 모두에게 라우팅을 할 수 있으므로, 각 target는 10% 트래픽을 수신한다.
교차 영역 로드 밸런싱 비활성화 시
라운드 로빈 라우팅 알고리즘에 따라 트래픽이 분산되므로 각 로드밸런서 노드는 클라이언트가 보낸 트래픽의 50%를 수신한다. 그리고 각 노드밸런서 노드는 자신이 위치한 가용영역에 있는 target으로만 라우팅 할 수 있다. 따라서 AZ A에 위치한 target는 트래픽의 25%를 수신하고, AZ B에 위치한 target은 트래픽의 6.25%을 수신한다.
참고 문서