Azure Load Balancer용 다중 프런트 엔드

Azure Load Balancer를 사용해 여러 포트, 여러 IP 주소 또는 둘 다에서 부하 분산 서비스를 할 수 있습니다. 공용 또는 내부 부하 분산 장치를 사용하여 가상 머신 확장 집합 또는 VM(가상 머신)과 같은 서비스 집합 간에 트래픽 부하를 분산할 수 있습니다.

이 문서에서는 동일한 포트 및 프로토콜을 사용하여 여러 IP 주소에서 부하 분산의 기본 사항을 설명합니다. 서비스를 하나의 IP 주소에 노출만 하려는 경우 공용 또는 내부 부하 분산 장치 구성에 대한 단순화된 지침을 찾을 수 있습니다. 여러 프런트 엔드를 추가하면 단일 프런트 엔드 구성이 증가합니다. 이 문서의 개념을 사용하여 단순화된 구성을 언제라도 확장할 수 있습니다.

Azure Load Balancer 정의하면 프런트 엔드 및 백 엔드 풀 구성이 부하 분산 규칙과 연결됩니다. 부하 분산 규칙에서 참조하는 상태 프로브는 특정 포트 및 프로토콜에서 VM의 상태를 확인하는 데 사용됩니다. 상태 프로브 결과에 따라 새 흐름이 백 엔드 풀의 VM으로 전송됩니다. 프런트 엔드는 IP 주소(공용 또는 내부), 전송 프로토콜(UDP 또는 TCP) 및 부하 분산 규칙의 포트 번호로 구성된 3개의 튜플로 정의됩니다. 백 엔드 풀은 Load Balancer 백 엔드 풀을 참조하는 가상 머신 IP 구성(NIC 리소스의 일부)의 컬렉션입니다.

다음 표에는 프런트 엔드 구성의 몇 가지 예가 들어 있습니다.

프런트 엔드 IP 주소 protocol 포트
1 65.52.0.1 TCP 80
2 65.52.0.1 TCP 8080
3 65.52.0.1 UDP 80
4 65.52.0.2 TCP 80

표에는 네 가지 프런트 엔드 구성이 표시됩니다. 프런트 엔드 #1, #2 및 #3은 동일한 IP 주소를 사용하지만 포트 또는 프로토콜은 각 프런트 엔드마다 다릅니다. 프런트 엔드 #1 및 #4는 여러 프런트 엔드 IP에서 동일한 프런트 엔드 프로토콜 및 포트를 다시 사용하는 여러 프런트 엔드의 예입니다.

Azure Load Balancer는 부하 분산 규칙을 정의하는 데 유연성을 제공합니다. 부하 분산 규칙은 프런트 엔드의 주소와 포트가 백 엔드의 대상 주소 및 포트에 매핑되는 방법을 선언합니다. 백 엔드 포트를 규칙 전반에 재사용할지 여부는 규칙 유형에 따라 달라집니다. 각 규칙 유형에는 호스트 구성 및 프로브 디자인에 영향을 줄 수 있는 특정 요구 사항이 있습니다. 다음과 같은 두 가지 규칙 유형이 있습니다.

  1. 백 엔드 포트를 다시 사용하지 않는 기본 규칙입니다.
  2. 백 엔드 포트가 다시 사용되는 부동 IP 규칙입니다.

Azure Load Balancer를 사용하면 동일한 부하 분산 장치 구성에서 두 규칙 유형을 혼합할 수 있습니다. 부하 분산 장치는 규칙의 제약 조건을 준수하는 경우 지정된 VM 또는 모든 조합에 동시에 사용할 수 있습니다. 선택하는 규칙 유형은 애플리케이션의 요구 사항 및 해당 구성을 지원하는 복잡성에 따라 달라집니다. 어떤 규칙 유형이 시나리오에 가장 적합한지 평가해야 합니다. 기본 동작부터 시작하여 이러한 시나리오를 자세히 살펴보겠습니다.

규칙 유형 #1: 백 엔드 포트 재사용하지 않음.

백 엔드 포트를 다시 사용하지 않는 Load Balancer 트래픽 다이어그램

이 시나리오에서 프런트 엔드는 다음과 같이 구성됩니다.

프런트 엔드 IP 주소 protocol 포트
녹색 프런트 엔드 1 65.52.0.1 TCP 80
자주색 프런트 엔드 2 65.52.0.2 TCP 80

백 엔드 인스턴스 IP(BIP)는 백 엔드 풀에 있는 백 엔드 서비스의 IP 주소이며, 각 VM은 백 엔드 인스턴스 IP의 고유한 포트에 원하는 서비스를 노출합니다. 이 서비스는 규칙 정의를 통해 FIP(프런트 엔드 IP)와 연결됩니다.

두 가지 규칙을 정의합니다.

규칙 맵 프론트 엔드 백 엔드 풀에
1 녹색 프런트 엔드 FIP1:80 녹색 백 엔드 BIP1:80, 녹색 백 엔드 BIP2:80
2 Vip FIP2:80 자주색 백 엔드 BIP1:81, 자주색 백 엔드 BIP2:81

Azure Load Balancer에서 전체 매핑은 이제 다음과 같습니다.

규칙 프런트 엔드 IP 주소 protocol 포트 대상 포트
녹색 규칙 1 65.52.0.1 TCP 80 BIP IP 주소 80
자주색 규칙 2 65.52.0.2 TCP 80 BIP IP 주소 81

각 규칙은 대상 IP 주소 및 대상 포트의 고유한 조합으로 흐름을 생성해야 합니다. 여러 부하 분산 규칙은 흐름의 대상 포트를 변경하여 다른 포트의 동일한 백 엔드 인스턴스 IP에 흐름을 제공할 수 있습니다.

상태 프로브는 항상 VM의 백 엔드 인스턴스 IP로 전달됩니다. 프로브가 VM의 상태를 반영하는지 확인해야 합니다.

규칙 유형 #2: 부동 IP를 사용하여 백엔드 포트 재사용

Azure Load Balancer 여러 프런트 엔드 구성에서 프런트 엔드 포트를 다시 사용할 수 있는 유연성을 제공합니다. 또한 일부 애플리케이션 시나리오는 백 엔드 풀의 단일 VM에서 여러 애플리케이션 인스턴스가 동일한 포트를 사용하는 것을 선호하거나 필요로 합니다. 포트 재사용의 일반적인 예에는 고가용성을 위한 클러스터링, 네트워크 가상 어플라이언스 및 재암호화 없이 다중 TLS 엔드포인트 노출이 포함됩니다.

여러 규칙에서 백 엔드 포트를 다시 사용하려면 부하 분산 규칙 정의에서 부동 IP를 사용하도록 설정해야 합니다.

부동 IP는 DSR(Direct Server Return)로 알려진 부분에 대한 Azure의 용어입니다. DSR는 흐름 토폴로지와 IP 주소 매핑 구성표라는 두 부분으로 구성됩니다. 플랫폼 수준에서 Azure Load Balancer는 부동 IP 사용 여부에 관계 없이 DSR 흐름 토폴로지에서 항상 작동합니다. 이는 아웃바운드 부분의 흐름이 다시 원점으로 직접 흘러가도록 언제나 올바르게 다시 작성되는 것을 의미합니다.

기본 규칙 유형을 사용하여 Azure는 사용 편의성을 위해 기존의 부하 분산 IP 주소 매핑 체계를 노출 합니다. 부동 IP를 사용하도록 설정하면 아래 설명된 대로 더 많은 유연성을 허용하도록 IP 주소 매핑 체계가 변경됩니다.

부동 IP를 사용하는 여러 프런트 엔드 IP에 대한 부하 분산 장치 트래픽 다이어그램

이 시나리오의 경우 백 엔드 풀의 모든 VM에 네트워크 인터페이스가 3개 있습니다.

  • 백 엔드 IP: VM과 연결된 가상 NIC(Azure NIC 리소스의 IP 구성).
  • FIP1(프런트 엔드 1): FIP1의 IP 주소로 구성된 게스트 OS 내의 루프백 인터페이스입니다.
  • FIP2(프런트 엔드 2): FIP2의 IP 주소로 구성된 게스트 OS 내의 루프백 인터페이스입니다.

이전 시나리오에서와 동일한 프런트 엔드 구성을 가정해 보겠습니다.

프런트 엔드 IP 주소 protocol 포트
녹색 프런트 엔드 1 65.52.0.1 TCP 80
자주색 프런트 엔드 2 65.52.0.2 TCP 80

두 개의 부동 IP 규칙을 정의합니다.

규칙 프런트 엔드 백 엔드 풀에 매핑
1 녹색 규칙 FIP1:80 녹색 백 엔드 FIP1:80(VM1 및 VM2)
2 자주색 규칙 FIP2:80 자주색 백 엔드 FIP2:80(VM1 및 VM2)

다음 표는 Load Balancer에서의 전체 매핑을 보여 줍니다.

규칙 프런트 엔드 IP 주소 protocol 포트 대상 포트
녹색 규칙 1 65.52.0.1 TCP 80 프런트 엔드와 동일(65.52.0.1) 프런트 엔드와 동일(80)
자주색 규칙 2 65.52.0.2 TCP 80 프런트 엔드와 동일(65.52.0.2) 프런트 엔드와 동일(80)

인바운드 흐름의 대상은 이제 VM의 루프백 인터페이스에 있는 프런트 엔드 IP 주소입니다. 각 규칙은 대상 IP 주소 및 대상 포트의 고유한 조합으로 흐름을 생성해야 합니다. 포트 재사용은 흐름의 프런트 엔드 IP 주소에 따라 대상 IP 주소를 변경하여 동일한 VM에서 가능합니다. 프런트 엔드의 IP 주소 및 해당 루프백 인터페이스의 포트에 바인딩하면 서비스가 Load Balancer에 노출됩니다.

이 예제에서는 대상 포트가 변경되지 않는다는 것을 알 수 있습니다. 부동 IP 시나리오에서 Azure Load Balancer 백 엔드 대상 포트를 변경하고 프런트 엔드 대상 포트와 다르게 만드는 부하 분산 규칙 정의도 지원합니다.

부동 IP 규칙 유형은 여러 부하 분산 장치 구성 패턴의 기초입니다. 현재 사용할 수 있는 한 가지 예는 하나 이상의 Always On 가용성 그룹 수신기 구성입니다. 시간이 지남에 따라 이러한 시나리오를 더 자세히 문서화할 것입니다.

참고

부동 IP를 사용하도록 설정하는 데 필요한 특정 게스트 OS 구성에 대한 자세한 내용은 Azure Load Balancer 부동 IP 구성을 참조하세요.

제한 사항

  • 다중 프런트 엔드 구성은 IaaS VM 및 가상 머신 확장 집합에서만 지원됩니다.
  • 부동 IP 규칙을 사용하면 애플리케이션은 아웃바운드 SNAT 흐름에 대해 기본 IP 구성을 사용해야 합니다. 애플리케이션이 게스트 OS의 루프백 인터페이스에 구성된 프런트 엔드 IP 주소에 바인딩하는 경우 Azure의 아웃바운드 SNAT는 아웃바운드 흐름을 다시 작성하지 않으며 흐름이 실패합니다. 아웃바운드 시나리오를 검토합니다.
  • 부동 IP는 현재 보조 IP 구성에서 지원되지 않습니다.
  • 공용 IP 주소는 대금 청구에 영향을 미칩니다. 자세한 내용은 IP 주소 가격 책정
  • 구독 제한이 적용됩니다. 자세한 내용은 서비스 제한 을 참조하세요.

다음 단계

  • 아웃바운드 연결을 검토하여 아웃바운드 연결 동작에 대한 여러 프런트 엔드의 영향을 이해합니다.