애플리케이션 로드 밸런서 정보

동일한 VPC 지역 내에 있는 복수의 서버 인스턴스에 트래픽을 분배하려면 IBM Cloud® Application Load Balancer for VPC(ALB)를 사용하십시오.

공용 및 사설 워크로드와 계층 7트래픽이 있는 경우 애플리케이션 로드 밸런서를 사용하십시오.

애플리케이션 로드 밸런서 유형

VPC용 로드 밸런서 개요 에 설명된 대로 공용 또는 사설 ALB를 작성할 수 있습니다.

이 표는 공공 기능과 민간 기능을 비교한 것입니다.

퍼블릭 및 프라이빗 로드밸런서 비교
기능 공용 로드 밸런서 개인용 로드 밸런서
인터넷에서 접근 가능한가요? 예(완전한 도메인 이름(FQDN) 사용) 아니오(동일한 지역 및 VPC의 내부 클라이언트만)
모든 트래픽을 허용합니까? 네,
( RFC-1918 주소 공간에서만 트래픽을 허용하도록 한 제한이 해제되었습니다.)
도메인 이름은 어떻게 등록되나요? 공인 IP 주소 사설 IP 주소

공용 애플리케이션 로드 밸런서

퍼블릭 애플리케이션 로드 밸런서 인스턴스에는 외부에서 액세스할 수 있는 완전 지정 도메인 이름(FQDN)이 할당되며, 로드 밸런서 뒤에 호스팅된 애플리케이션에 액세스하려면 이 이름을 사용해야 합니다. 이 도메인 이름은 하나 이상의 공인 IP 주소로 등록할 수 있습니다.

시간이 경과함에 따라 유지보수 및 스케일링 활동으로 인해 이러한 공인 IP 주소의 수 및 값이 변경될 수도 있습니다. 애플리케이션을 호스팅하는 백엔드 가상 서버 인스턴스는 동일한 리전 내에서, 동일한 VPC 하에서 실행되어야 합니다.

시스템 유지보수 또는 스케일링 다운 활동 중에 애플리케이션에 대한 연결 문제점을 방지하려면 지정된 FQDN을 사용하여 공용 애플리케이션 로드 밸런서로 트래픽을 전송하십시오.

개인용 애플리케이션 로드 밸런서

개인용 애플리케이션 로드 밸런서는 로드 밸런서를 작성하기 위해 구성한 사설 서브넷을 통해 액세스할 수 있습니다.

공용 애플리케이션 로드 밸런서와 유사하게, FDQN이 사설 애플리케이션 로드 밸런서 인스턴스에 할당됩니다. 하지만 이 도메인 이름은 하나 이상의 사설 IP 주소로 등록됩니다.

IBM Cloud 조작 시 시간이 경과함에 따라 유지보수 및 스케일링 활동으로 인해 지정된 사설 IP 주소의 수 및 값이 변경될 수도 있습니다. 애플리케이션을 호스팅하는 백엔드 가상 서버 인스턴스는 동일한 리전 내에서, 동일한 VPC 하에서 실행되어야 합니다.

시스템 유지보수 또는 스케일링 다운 활동 중에 애플리케이션에 대한 연결 문제점을 방지하려면 지정된 FQDN을 사용하여 개인용 애플리케이션 로드 밸런서로 트래픽을 전송하십시오.

로드 밸런싱 방법

백엔드 애플리케이션 서버 사이에서 트래픽을 분배하기 위해 세 가지 로드 밸런싱 방법을 사용할 수 있습니다.

라운드 로빈

라운드 로빈은 기본 로드 밸런싱 방법입니다. 이 방법을 사용하는 경우 애플리케이션 로드 밸런서에서 수신 클라이언트 연결을 라운드 로빈 방식으로 백엔드 서버로 전달합니다. 따라서 모든 백엔드 서버가 대략 동일한 수의 클라이언트 연결을 수신합니다.

가중치 라운드 로빈

이 방법을 사용하면 애플리케이션 부하 분산기가 들어오는 클라이언트 연결을 각 백엔드 서버에 할당된 가중치에 비례하여 해당 서버들로 전달합니다. 각 서버에는 기본 가중치 가 50 할당됩니다. 무게는 - 0 범위 내의 임의의 값으로 100 맞춤 설정할 수 있습니다.

예를 들어 애플리케이션 서버 A, B 및 C의 가중치가 60, 6030인 경우 서버 A 및 B는 동일한 수의 연결을 수신하는 반면 서버 C는 그 절반의 연결을 수신합니다.

서버의 가중치가 0으로 설정되는 경우 해당 서버로 새 연결이 전달되지 않지만 기존 트래픽은 계속 플로우됨을 의미합니다. 가중치 0을 사용하여 특정 서버를 점진적으로 작동 중지시키면서 서비스 로테이션에서 제거할 수 있습니다.

서버 가중치 값은 가중치 라운드 로빈 방식에만 적용 가능합니다. 라운드 로빈 및 최소 연결 로드 밸런싱 방법에서는 이 값이 무시됩니다.

최소 연결

이 방법을 사용하면, 특정 시점에 처리 중인 연결 수가 가장 적은 백엔드 서버 인스턴스가 다음 클라이언트 연결을 수신합니다.

프론트 엔드 리스너 및 백엔드 풀

프론트 엔드 리스너는 수신 요청을 받기 위한 로드 밸런서 애플리케이션 포트이고, 백엔드 풀은 로드 밸런서 뒤에 있는 애플리케이션 서버입니다.

리스너 사용에 대한 지침

프론트 엔드 리스너에 대한 다음 가이드라인을 검토하십시오.

  • 최대 10개의 프런트엔드 리스너를 정의하고, 이를 백엔드 애플리케이션 서버의 백엔드 풀에 매핑할 수 있습니다.
  • 로드 밸런서 및 프론트 엔드 리스너 포트에 지정된 FQDN은 공용 인터넷에 노출됩니다. 수신 사용자 요청은 이러한 포트에서 수신됩니다.
  • 지원되는 프론트 엔드 리스너 및 백엔드 풀 프로토콜은 HTTP, HTTPS, TCP입니다.
  • HTTP/HTTPS 백엔드 풀을 사용하여 HTTP/HTTPS 프론트 엔드 리스너를 구성할 수 있습니다.
  • HTTP/2 리스너에 대해서만 지원됩니다.
  • HTTP 및 HTTPS 리스너와 풀은 상호 교환할 수 있습니다.
  • TCP 프론트엔드 리스너는 TCP 백엔드 풀과만 함께 구성할 수 있습니다.
  • 백엔드 풀에는 최대 50개의 가상 서버 인스턴스를 연결할 수 있습니다. 지정된 데이터 포트에서 각각의 인스턴스로 트래픽이 전송됩니다. 이 데이터 포트는 프론트 엔드 리스너 포트와 동일하지 않아도 됩니다.
  • Secrets Manager 의 “Private only” 엔드포인트는 HTTPS 리스너에서는 지원되지 않습니다. ALB 에서 HTTPS 리스너를 구성하려면 TLS 인증서를 "공용 및 개인용" 엔드포인트에 업로드해야 합니다.

HTTPS 경로 재지정 리스너

HTTPS 경로 재지정 리스너는 HTTP 리스너에서 HTTPS 리스너로 트래픽을 경로 재지정합니다. 이 작업은 리스너에 어떤 규칙도 적용할 필요가 없습니다.

예를 들어, 어떤 서비스가 HTTPS 을 통해 포트 443에서 연결을 수신 대기하고 있는데, 사용자가 HTTP 을 통해 포트 80으로 해당 서비스에 접속하려고 시도하면, 해당 요청은 자동으로 HTTPS 을 통해 포트 443으로 리디렉션됩니다.

정책이 HTTPS 경로 재지정 리스너에 있는 경우 정책이 먼저 평가됩니다. 일치하는 정책이 없는 경우, 요청은 구성된 ‘ HTTPS ’ 리스너로 리디렉션됩니다.

HTTPS 경로 재지정 리스너 특성

HTTPS 경로 재지정 리스너 특성
특성 설명
리스너 요청이 경로 재지정되는 HTTPS 리스너입니다.
HTTP 상태 코드 애플리케이션 로드 밸런서가 반환한 응답의 상태 코드. 허용 가능한 값은 301, 302, 303, 307 또는 308입니다.
URI 요청이 경로 재지정되는 상대 URI입니다. 이 특성은 선택적입니다.

백엔드 풀 장애 조치 정책

로드 밸런서에서 백엔드 풀을 편집할 때 다음 장애 안전 정책 작업 중 하나를 지정할 수 있습니다:

  • 포워드: 로드 밸런서가 요청을 지정된 백업 풀로 라우팅합니다. 이렇게 하면 다른 애플리케이션 서버 집합에 대한 깨끗한 장애 조치 경로가 제공됩니다. 기존 백업 풀이 구성되어 있고 트래픽을 수신할 준비가 되어 있어야 합니다.
  • 드롭: 로드 밸런서가 들어오는 모든 요청을 삭제하고 클라이언트가 응답을 받지 않습니다.
  • Fail: 로드 밸런서가 HTTP 503("서비스 사용 불가") 상태 코드와 함께 요청을 거부하여 서비스가 일시적으로 다운되었음을 클라이언트에 알립니다.

적용 가능한 백업 풀 목록에서 장애 조치 대상을 선택할 수 있습니다.

장애 안전 대상 풀 요구 사항(동작이 전달인 경우):

  • 동일한 로드밸런서에 속해야 합니다
  • 프로토콜이 동일하거나 호환 가능해야 합니다( TCP 는 TCP 와만 호환되지만 HTTP 와 HTTPS 의 모든 조합은 호환 가능)

애플리케이션 로드 밸런서만 둘 이상의 풀을 단일 리스너에 연결할 수 있습니다. 로드 밸런서에 이미 존재하는 풀이 하나 이상 있는지 확인합니다.

로드 밸런서 구성에서 리스너는 상위 리소스로 간주됩니다. 풀을 직접 또는 간접적으로 참조하는 두 가지 방법으로 해당 리스너와 연결할 수 있습니다. 직접 연결하려면 풀을 리스너의 default_pool 로 구성합니다. 간접 연결의 경우 failsafe_policy.target 관계를 통해 다른 풀에서 풀을 참조하여 다른 풀이 이미 리스너에 연결되어 있는지 확인합니다.

탄력성

애플리케이션 로드 밸런서는 로드가 증가할 때 컴퓨팅 리소스를 추가하여 확장됩니다.

SSL 오프로딩 및 필수 권한

SSL( SSL ) 오프로딩을 사용하면 애플리케이션 로드 밸런서가 모든 수신 HTTPS 연결을 종료할 수 있습니다.

HTTPS 리스너가 HTTP 풀을 사용하여 구성되는 경우 HTTPS 요청은 프론트 엔드에서 종료되고 로드 밸런서는 백엔드 서버 인스턴스와의 일반 텍스트 HTTP 통신을 설정합니다. 이 기술을 사용하는 경우 CPU 집약적 SSL 핸드쉐이크 및 암호화 또는 복호화 태스크가 백엔드 서버 인스턴스에서 이동하여 애플리케이션 트래픽을 처리하기 위해 모든 CPU 사이클을 사용할 수 있게 됩니다.

SSL 오프로딩을 사용하려면 애플리케이션 로드 밸런서에 대한 SSL 인증서를 제공하여 SSL 오프로딩 태스크를 수행해야 합니다. IBM Cloud Secrets Manager을(를) 통해 SSL 인증서를 관리할 수 있습니다.

IAM 권한을 통해 권한을 생성할 수 있습니다. 꼭 선택하세요 VPC 인프라 서비스 소스 서비스로 선택한 다음 특정 자원. 딸깍 하는 소리 속성을 선택하세요 그리고 선택 리소스 유형 목록에서. 리소스 유형으로 ‘VPC용 로드 밸런서’를 선택하고 ‘다음’을 클릭합니다. Target 서비스의 경우 다음을 선택하십시오 Secrets Manager 를 선택하십시오. 대상 서비스 인스턴스 액세스 설정을 ‘모든 인스턴스’ 또는 특정 ‘ IBM Cloud Secrets Manager ’ 인스턴스로 설정하십시오. 작성자 서비스 액세스 역할을 지정하십시오. 자세한 정보는 서비스 간의 액세스 부여를 참조하십시오.

오류를 방지하려면 로드 밸런서와 IBM Cloud Secrets Manager 사이에 필수 권한을 부여해야 합니다. 또한, Secrets Manager 에서 인증서를 업데이트해도 ALB가 자동으로 업데이트되지는 않습니다. 로드 밸런서가 인증서의 변경사항을 반영하도록 하려면 새로 고치기를 유발하도록 작은 업데이트 (예: 상태 검사 간격 또는 제한시간 값 변경) 를 수행하십시오. 이 작업은 로드 밸런서의 인증서를 Secrets Manager 에 있는 인증서와 일치하도록 업데이트합니다. 그런 다음 작성한 변경사항을 원래 값으로 되돌릴 수 있습니다.

TLS(Transport Layer Security) 1.2 및 1.3이 지원됩니다. 단, 클라이언트 측에서 1.2 을 사용하도록 별도로 설정하지 않는 한, 기본적으로 TLS 1.3 이 사용됩니다. 애플리케이션 로드 밸런서는 클라이언트 측 요청에 의해 전송되는 모든 지원되는 TLS 1.3 암호를 허용합니다.

다음 목록은 지원되는 암호를 나열합니다(우선순위 순으로).

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

인증서 CRN 찾기

콘솔에서 프로비저닝 중에 애플리케이션 로드 밸런서의 인증을 구성할 때, Secrets ManagerSSL 인증서나 해당 인증서의 CRN을 지정하도록 선택할 수 있습니다. 드롭다운 메뉴에서 ‘ Secrets Manager ’가 표시되지 않는 경우, 즉 ‘ Secrets Manager ’ 인스턴스에 액세스할 수 없는 경우 이 작업을 수행해야 할 수 있습니다. API를 사용하여 ALB를 생성할 때는 반드시 CRN을 입력해야 한다는 점을 명심하십시오.

CRN을 얻으려면 Secrets Manager 인스턴스에 대한 액세스 권한이 있어야 합니다.

인증서의 CRN을 찾으려면 다음 단계를 수행하십시오.

  1. IBM Cloud 콘솔 에서 탐색 메뉴 아이콘 탐색 메뉴 아이콘 > 리소스 목록 으로 이동합니다.
  2. ‘보안(Security)’을 클릭하여 펼친 다음, CRN을 확인하려는 ‘보안 정책( Secrets Manager )’을 선택하십시오.
  3. 인증서의 테이블 행에서 임의의 위치를 선택하여 인증서 세부사항 측면 패널을 여십시오. 인증서의 CRN이 기재되어 있습니다.

엔드 투 엔드 SSL 암호화

HTTPS 풀을 사용하여 HTTPS 리스너를 구성하면 엔드 투 엔드 암호화가 사용 가능합니다. ALB는 프런트엔드 리스너에서 수신된 HTTPS 요청을 종료하고, 백엔드 인스턴스와 HTTPS 연결을 설정합니다. 종단 간 암호화를 통해 로드 밸런서를 거쳐 백엔드 노드로 전송되는 모든 트래픽이 HTTPS 를 통해 암호화됩니다.

엔드 투 엔드 SSL 암호화를 구성하려면 다음 작업을 수행하십시오.

  1. SSL 오프로딩을 구성할 때와 마찬가지로, SSL 인증서를 사용하여 HTTPS 프론트엔드 리스너를 구성하십시오.
  2. HTTPS 백엔드 풀을 구성하십시오.
  3. 백엔드 멤버 인스턴스를 HTTPS 백엔드 풀에 추가하십시오. 백엔드 멤버 인스턴스가 HTTPS 트래픽을 처리하도록 구성되어 있는지 확인하십시오.
  4. 백엔드 멤버를 사용하여 암호화된 상태 검사를 수행하도록 HTTPS 유형으로 상태 검사를 구성하십시오.

애플리케이션 로드 밸런서는 백엔드 멤버 인스턴스의 SSL 인증서를 확인하지 않습니다.

수평 스케일링

애플리케이션 로드 밸런서는 로드에 따라 자동으로 해당 용량을 조정합니다. 이 조정이 발생할 때 로드 밸런서의 DNS 이름과 연관된 IP 주소의 수가 변경될 수도 있습니다.

MZR 지원

IBM Cloud Application Load Balancer for VPC는 다중 구역 지역(MZR)을 지원합니다. 다른 구역의 서브넷과 함께 애플리케이션 로드 밸런서를 배치하여 고가용성 및 중복성을 구현할 수 있습니다. 다중 구역의 서브넷이 애플리케이션 로드 밸런서를 프로비저닝하는 데 사용되는 경우 로드 밸런서 어플라이언스가 다중 구역에 배치됩니다.

인스턴스 그룹과의 통합

IBM Cloud Application Load Balancer for VPC는 인스턴스 그룹과 통합되며, 백엔드 멤버의 auto scale을 수행할 수 있습니다. 풀 멤버는 사용량 및 요구사항에 따라 동적으로 추가되고 삭제됩니다.

데이터 경로 로그 전달

데이터 경로 로깅이 활성화되면, 로드 밸런서 로그가 IBM Cloud Logs 서비스로 전달되며, 해당 서비스에서 데이터 경로 로그를 확인할 수 있습니다.

HTTP2 지원

애플리케이션 부하 분산 장치는 엔드투엔드 HTTP2 트래픽을 지원하며 HTTPS 또는 TCP 로 설정된 리스너 프로토콜과 함께 작동합니다.

WebSocket 지원

WebSocket 는 단일 TCP 연결을 통해 전이중 통신 채널을 제공합니다. 애플리케이션 로드 밸런서는 모든 유형의 리스너 프로토콜( HTTP / HTTPS / TCP )과 함께 WebSocket 을 지원합니다.

높은 가용성과 애플리케이션 로드 밸런서

고가용성(HA)이 ALB와 함께 작동하도록 하려면 서로 다른 영역의 세 개의 서브넷을 ALB에 연결하고, 이 영역들에 걸쳐 어플라이언스를 배포하십시오. 이를 위해 먼저 ALB 생성 과정에서 서브넷을 선택합니다. 서로 다른 영역(예: us-south-1us-south-2)에 속한 두 개의 서브넷을 선택할 수 있습니다. 이렇게 하면 ALB의 IP 주소(예: 어플라이언스 IP)가 두 개의 서로 다른 서브넷에 생성됩니다.

이미 존재하는 ALB를 사용하여 이 작업을 수행할 수도 있습니다. 로드 밸런서 세부 정보 페이지의 첨부된 리소스 섹션으로 이동합니다. 서브넷 섹션에서 서브넷 편집을 클릭합니다. 그런 다음, 더 많은 서브넷을 연결하십시오. ALB는 "마이그레이션" 상태로 들어갑니다. 마이그레이션이 완료되면, 방금 연결한 서브넷에서 어플라이언스에 대한 새로운 IP를 얻게 됩니다. 이제 서로 다른 영역에 속한 서로 다른 서브넷의 IP 주소 두 개를 보유하고 있습니다.