AWS(Amazon Web Service)

[AWS] ELB의 교차 영역 밸런싱

yunseohhe 2024. 10. 2. 10:22

Cross-Zone Load Balancing(교차 영역 밸런싱)

  • 교차 영역 밸런싱을 사용하면, 모든 영역에 있는 EC2 인스턴스에 트래픽이 고르게 분배된다.
  • ALB(Application Load Balancer)
     : 교차 영역 로드 밸런싱이 기본으로 활성화되어 있다.
        (대상 그룹 설정에서 비활성화할 수 있다.)
     : 데이터를 다른 가용 영역으로 옮기는 데 비용이 들지 않는다.
        (교차 영역 로드 밸런싱이 기본으로 활성화 되어있기 때문이다.
          일반적으로 AWS에서는 데이터를 다른 가용 영역으로 옮길 때 비용을 지불해야 합니다.)
  • NLB(Network Load Balancer) & GLB(Gateway Load Balancer)
      : 기본으로 교차 영역 로드 밸런싱이 비활성화 되어 있다.
         (활성화 하려면 비용을 지불해야한다. 가용 영역 사이에서 데이터를 옮기려면 비용이 드니깐!)
  • CLB(Classic Load Balancer)
      : 기본적으로 교차 영역 로드 밸런싱이 비활성화 되어 있다.
         (그러나 활성화 시켜도 AZ간 데이터 이동에 비용이 들지 않는다.)

첫 번째 예시 

(출처 : 구글이미지)

  • 아주 불균형한 상태를 가정해보자.
  • 두 가용 영역이 있고, 한쪽에는 EC2 인스턴스 2개짜리 로드 밸런서가 있다.
    그리고 다른 쪽에는 인스턴스 8개짜리 로드 밸런서가 있다.
    클라이언트는 이 로드 밸런서에 접속을 한다. 그리고 교차 영역 로드 밸런싱을 쓰면,
    각각의 로드 밸런서 인스턴스가 모든 가용 영역에 등록된 모든 인스턴스에 부하를 고르게 분배한다.
    클라이언트가 트래픽의 절반을 첫 번째 ALB 인스턴스로 보내고, 나머지 절반을 다른 쪽으로 보내면, 
    ALB는 받은 트래픽을 10개의 EC2 인스턴스 모두에게 전달한다. (가용 영역에 상관없이!)
    이 부분이 그래서 "교차 영역" 로드 밸런싱인 것 이다.
    이미지에 나온 인스턴스의 개수가 10개니깐 각각이 트래픽의 10%를 할당받는다.

 

두 번째 예시

(출처 : 구글이미지)

  • 영역을 교차하지 않고 부하를 분산해 보자.
  • 같은 상황일 때 영역을 교차하지 않고 요청을 분산하면 탄력적(Elastic) 로드 밸런서 노드의 인스턴스로 분산된다.
    아까와 동일하게 클라이언트가 트래픽의 절반을 첫 번째 영역으로 보내고, 나머지 절반을 두 번째 영역으로 보냈다고 해보자.
    첫 번째 ALB 인스턴스는 자기 영역에 있는 두 개의 인스턴스에게만 트래픽을 보낼 것 이다. 그래서 AZ1에 있는 두 개의 인스턴스는 각각 트래픽의 25%씩 할당 받을 것이다.
    오른쪽에서도 받은 트래픽을 AZ2에 등록된 EC2 인스턴스 개수로 나눌 것이다. 교차 영역 밸런싱이 아니기 때문에
    각 가용 영역 안에서 부하가 분산된다.
    만약 가용 영역마다 EC2 인스턴스의 개수가 다르다면, 특정 영역에 있는 EC2 인스턴스에게 좀 더 많은 트래픽이 할당 될 것이다.