이 문서에서는 Google Cloud 외부 프록시 네트워크 부하 분산기를 구성하려면 알아야 할 개념을 소개합니다.
외부 프록시 네트워크 부하 분산기는 인터넷에서 들어오는 TCP 트래픽을 Google Cloud Virtual Private Cloud(VPC) 네트워크의 가상 머신(VM) 인스턴스로 분산하는 리버스 프록시 부하 분산기입니다. 외부 프록시 네트워크 부하 분산기를 사용할 때는 수신 TCP 또는 SSL 사용자 트래픽이 부하 분산기에서 종료됩니다. 그런 다음 새 연결에서 TCP 또는 SSL을 사용하여 트래픽을 가장 가까운 사용 가능한 백엔드로 전달합니다(권장). 더 많은 사용 사례는 프록시 네트워크 부하 분산기 개요를 참조하세요.
외부 프록시 네트워크 부하 분산기를 사용하면 전 세계 모든 사용자에게 단일 IP 주소를 제공할 수 있습니다. 이 부하 분산기는 자동으로 트래픽을 사용자와 가장 가까운 백엔드로 라우팅합니다.
이 예시에서는 도시 A와 도시 B의 사용자가 보내는 SSL 트래픽이 부하 분산 레이어에서 종료되고 선택된 백엔드에 대한 별도의 연결이 설정됩니다.
작업 모드
외부 프록시 네트워크 부하 분산기는 다음 모드로 구성할 수 있습니다.
- 기본 프록시 네트워크 부하 분산기는 전역으로 분산된 Google 프런트엔드(GFE)에서 구현됩니다. 이 부하 분산기는 각각 대상 TCP 프록시 또는 대상 SSL 프록시를 사용해서 TCP 또는 SSL 트래픽을 처리하도록 구성할 수 있습니다. 프리미엄 등급에서는 이 부하 분산기를 전역 부하 분산 서비스로 구성할 수 있습니다. 표준 등급에서 이 부하 분산기는 리전 부하 분산 서비스로 구성됩니다. 기본 프록시 네트워크 부하 분산기는 SSL을 사용하는 다른 프로토콜(예: WebSocket, IMAP over SSL)에도 사용될 수 있습니다.
- 전역 외부 프록시 네트워크 부하 분산기는 전역으로 분산된 GFE에서 구현되며 고급 트래픽 관리 기능을 지원합니다. 이 부하 분산기는 각각 대상 TCP 프록시 또는 대상 SSL 프록시를 사용해서 TCP 또는 SSL 트래픽을 처리하도록 구성할 수 있습니다. 이 부하 분산기는 프리미엄 등급의 전역 부하 분산 서비스로 구성됩니다. 전역 외부 프록시 네트워크 부하 분산기는 SSL을 사용하는 다른 프로토콜(예: WebSocket, IMAP over SSL)에도 사용될 수 있습니다.
- 리전 외부 프록시 네트워크 부하 분산기는 오픈소스 Envoy 프록시 소프트웨어 스택에서 구현됩니다. TCP 트래픽만 처리할 수 있습니다. 이 부하 분산기는 프리미엄 또는 표준 등급을 사용할 수 있는 리전 부하 분산 서비스로 구성됩니다.
모드 식별
부하 분산기 모드를 확인하려면 다음 단계를 완료합니다.
콘솔
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
부하 분산기 탭에 부하 분산기 유형, 프로토콜, 리전이 표시됩니다. 리전이 비어 있으면 부하 분산기는 전역입니다.
다음 표에는 부하 분산기의 모드를 식별하는 방법이 요약되어 있습니다.
부하 분산기 모드 부하 분산기 유형 액세스 유형 리전 기존 프록시 네트워크 부하 분산기 네트워크(프록시 기본) 외부 전역 외부 프록시 네트워크 부하 분산기 네트워크(프록시) 외부 리전 외부 프록시 네트워크 부하 분산기 네트워크(프록시) 외부 리전 지정
gcloud
gcloud compute forwarding-rules describe
명령어를 사용합니다.gcloud compute forwarding-rules describe FORWARDING_RULE_NAME
명령어 결과에서 부하 분산 스킴, 리전, 네트워크 등급을 확인합니다. 다음 표에는 부하 분산기의 모드를 식별하는 방법이 요약되어 있습니다.
부하 분산기 모드 부하 분산 스키마 전달 규칙 네트워크 계층 기존 프록시 네트워크 부하 분산기 외부 전역 표준 또는 프리미엄 전역 외부 프록시 네트워크 부하 분산기 EXTERNAL_MANAGED 전역 프리미엄 리전 외부 프록시 네트워크 부하 분산기 EXTERNAL_MANAGED 리전 표준 또는 프리미엄
아키텍처
다음 다이어그램에서는 전역 및 리전 외부 프록시 네트워크 부하 분산기의 구성요소를 보여줍니다.
전역
이 다이어그램에서는 전역 외부 프록시 네트워크 부하 분산기 배포 구성요소를 보여줍니다. 이 아키텍처는 프리미엄 등급의 전역 외부 프록시 네트워크 부하 분산기와 기본 프록시 네트워크 부하 분산기 모두에 적용됩니다.
리전
이 다이어그램에서는 리전 외부 프록시 네트워크 부하 분산기 배포 구성요소를 보여줍니다.
외부 프록시 네트워크 부하 분산기 구성요소는 다음과 같습니다.
프록시 전용 서브넷
프록시 전용 서브넷은 Google이 사용자를 대신하여 Envoy 프록시를 실행하는 데 사용하는 IP 주소 집합을 제공합니다. 부하 분산기를 사용하는 VPC 네트워크의 각 리전에 프록시 전용 서브넷 하나를 만들어야 합니다. 이 프록시 전용 서브넷의 --purpose
플래그는 REGIONAL_MANAGED_PROXY
로 설정됩니다. 동일한 리전 및 VPC 네트워크의 모든 리전별 Envoy 기반 부하 분산기는 동일한 프록시 전용 서브넷의 Envoy 프록시 풀을 공유합니다.
리전 및 VPC 네트워크에 있는 모든 부하 분산기의 백엔드 VM 또는 엔드포인트는 프록시 전용 서브넷에서 연결을 수신합니다.
기억해야 할 사항:
- 프록시 전용 서브넷은 백엔드가 아닌 오로지 Envoy 프록시에만 사용됩니다.
- 부하 분산기의 IP 주소는 프록시 전용 서브넷에 있지 않습니다. 부하 분산기의 IP 주소는 외부 관리형 전달 규칙으로 정의됩니다.
전달 규칙 및 IP 주소
전달 규칙은 IP 주소, 포트, 프로토콜별로 트래픽을 대상 프록시와 백엔드 서비스로 구성된 부하 분산 구성으로 라우팅합니다.
IP 주소 사양. 각 전달 규칙은 애플리케이션의 DNS 레코드에 사용할 수 있는 단일 IP 주소를 참조합니다. 사용할 수 있는 고정 IP 주소를 예약하거나 Cloud Load Balancing에서 IP 주소를 하나 할당하도록 할 수 있습니다. 고정 IP 주소를 예약하는 것이 좋습니다. 그렇지 않으면 전달 규칙을 삭제하고 새 전달 규칙을 만들 때마다 DNS 레코드를 새로 할당된 임시 IP 주소로 업데이트해야 합니다.
포트 사양. 이 부하 분산기의 정의에 사용되는 외부 전달 규칙은 1~65535 사이의 정확히 한 포트를 참조할 수 있습니다. 연속된 여러 포트를 지원하려면 여러 전달 규칙을 구성해야 합니다. 동일한 가상 IP 주소와 다른 포트로 여러 전달 규칙을 구성할 수 있습니다. 따라서 별도의 커스텀 포트를 사용하는 여러 애플리케이션을 동일한 TCP 프록시 가상 IP 주소로 프록시 처리할 수 있습니다. 자세한 내용은 전달 규칙에 대한 포트 사양을 참조하세요.
연속된 여러 포트를 지원하려면 여러 개의 전달 규칙을 구성해야 합니다. 같은 가상 IP 주소와 다른 포트로 전달 규칙 여러 개를 구성할 수 있습니다. 따라서 별도의 커스텀 포트를 사용하는 여러 애플리케이션을 동일한 TCP 프록시 가상 IP 주소로 프록시 처리할 수 있습니다.
다음 표에서는 다양한 유형의 부하 분산기를 비교합니다.
부하 분산기 모드 | 네트워크 서비스 등급 | 전달 규칙, IP 주소, 부하 분산 스키마 | 인터넷에서 부하 분산기 프런트엔드로 라우팅 |
---|---|---|---|
기존 프록시 네트워크 부하 분산기 | 프리미엄 등급 |
부하 분산 스키마: |
요청이 인터넷에서 클라이언트와 가장 가까운 GFE로 라우팅됩니다. |
표준 등급 |
부하 분산 스키마: |
요청이 부하 분산기의 리전에 있는 GFE로 라우팅됩니다. | |
전역 외부 프록시 네트워크 부하 분산기 | 프리미엄 등급 |
부하 분산 스키마: |
요청이 인터넷에서 클라이언트와 가장 가까운 GFE로 라우팅됩니다. |
리전 외부 프록시 네트워크 부하 분산기 | 프리미엄 및 표준 등급* |
부하 분산 스키마: |
요청이 부하 분산기와 동일한 리전의 Envoy 프록시로 라우팅됩니다. |
전달 규칙 및 VPC 네트워크
이 섹션에서는 외부 애플리케이션 부하 분산기에서 사용하는 전달 규칙이 VPC 네트워크와 연결되는 방법을 설명합니다.
부하 분산기 모드 | VPC 네트워크 연결 |
---|---|
전역 외부 프록시 네트워크 부하 분산기 기본 프록시 네트워크 부하 분산기 |
연결된 VPC 네트워크가 없습니다. 전달 규칙은 항상 VPC 네트워크 외부에 있는 IP 주소를 사용합니다. 따라서 전달 규칙에는 연결된 VPC 네트워크가 없습니다. |
리전 외부 프록시 네트워크 부하 분산기 | 전달 규칙의 VPC 네트워크는 프록시 전용 서브넷이 생성된 네트워크입니다. 전달 규칙을 만들 때 네트워크를 지정합니다. |
대상 프록시
외부 프록시 네트워크 부하 분산기는 클라이언트의 연결을 종료하고 백엔드에 대한 새 연결을 만듭니다. 대상 프록시는 이러한 새 연결을 백엔드 서비스로 라우팅합니다.
애플리케이션이 처리해야 하는 트래픽 유형에 따라 대상 TCP 프록시나 대상 SSL 프록시로 외부 프록시 네트워크 부하 분산기를 구성할 수 있습니다.
- 대상 TCP 프록시: TCP 트래픽이 예상되는 경우 대상 TCP 프록시로 부하 분산기를 구성합니다.
- 대상 SSL 프록시: 암호화된 클라이언트 트래픽이 예상되는 경우 대상 SSL 프록시로 부하 분산기를 구성합니다. 이 유형의 부하 분산기는 HTTP(S) 이외의 트래픽 전용입니다. HTTP(S) 트래픽의 경우 외부 애플리케이션 부하 분산기를 사용하는 것이 좋습니다.
기본적으로 대상 프록시는 원래 클라이언트 IP 주소와 포트 정보를 보존하지 않습니다. 이 정보를 유지하려면 대상 프록시에서 프록시 프로토콜을 사용 설정하면 됩니다.
부하 분산기 모드 | 네트워크 서비스 등급 | 대상 프록시 |
---|---|---|
기존 프록시 네트워크 부하 분산기 | 프리미엄 등급 | targetTcpProxies 또는 targetSslProxies |
표준 등급 | targetTcpProxies 또는 targetSslProxies |
|
전역 외부 프록시 네트워크 부하 분산기 | 프리미엄 등급 | targetTcpProxies 또는 targetSslProxies |
리전 외부 프록시 네트워크 부하 분산기 | 프리미엄 및 표준 등급 | regionTargetTcpProxies |
SSL 인증서
SSL 인증서는 대상 SSL 프록시를 사용하는 전역 외부 프록시 네트워크 부하 분산기와 기본 프록시 네트워크 부하 분산기를 배포하는 경우에만 필요합니다.
대상 SSL 프록시를 사용하는 외부 프록시 네트워크 부하 분산기에는 부하 분산기 구성의 일부로 비공개 키와 SSL 인증서가 필요합니다.
Google Cloud는 대상 SSL 프록시에 비공개 키와 SSL 인증서를 할당하는 두 가지 구성 방법인 Compute Engine SSL 인증서와 Certificate Manager를 제공합니다. 각 구성에 대한 설명은 SSL 인증서 개요의 인증서 구성 방법을 참조하세요.
Google Cloud는 자체 관리형과 Google 관리형이라는 두 가지 인증서 유형을 제공합니다. 각 유형에 대한 설명은 SSL 인증서 개요에서 인증서 유형을 참조하세요.
백엔드 서비스
백엔드 서비스는 들어오는 트래픽을 하나 이상의 연결된 백엔드에 전달합니다. 각 백엔드는 인스턴스 그룹 또는 네트워크 엔드포인트 그룹과 백엔드의 제공 용량에 대한 정보로 구성됩니다. 백엔드 제공 용량은 CPU 또는 초당 요청 수(RPS)를 기반으로 합니다.
각 부하 분산기에는 사용 가능한 백엔드에 수행할 상태 점검을 지정하는 단일 백엔드 서비스 리소스가 포함됩니다.
백엔드 서비스 변경사항은 즉시 적용되지 않습니다. 변경사항이 GFE로 전파되려면 몇 분 정도 걸릴 수 있습니다. 사용자에 대한 중단이 최소화되도록 백엔드 서비스에서 연결 드레이닝을 사용 설정할 수 있습니다. 이러한 중단은 백엔드가 종료되거나 수동으로 삭제되거나 자동 확장 처리 과정에서 삭제될 때 발생할 수 있습니다. 연결 드레이닝을 사용하여 서비스 중단을 최소화하기에 대해 자세히 알아보려면 연결 드레이닝 사용 설정을 참조하세요.
백엔드 서비스 리소스에 대한 자세한 내용은 백엔드 서비스 개요를 참조하세요.
다음 표에서는 지원되는 백엔드 기능을 명시합니다.
부하 분산기 모드 | 백엔드 서비스의 백엔드 지원 | ||||||
---|---|---|---|---|---|---|---|
인스턴스 그룹 | 영역별 NEG | 인터넷 NEG | 서버리스 NEG | 하이브리드 NEG | Private Service Connect NEG | GKE | |
기존 프록시 네트워크 부하 분산기 | 독립형 영역 NEG 사용 | ||||||
전역 외부 프록시 네트워크 부하 분산기 | * | GCE_VM_IP_PORT 유형 엔드포인트* |
|||||
리전 외부 프록시 네트워크 부하 분산기 | GCE_VM_IP_PORT 유형 엔드포인트 |
리전 NEG만 해당 | Private Service Connect NEG 추가 |
* 전역 외부 프록시 네트워크 부하 분산기는 IPv4 및 IPv6(이중 스택) 인스턴스 그룹과 영역별 NEG 백엔드를 지원합니다.
GCE_VM_IP_PORT
유형 엔드포인트만 영역별 NEG가 있는 이중 스택을 지원합니다.
백엔드 및 VPC 네트워크
백엔드를 배치할 수 있는 위치에 대한 제한사항은 부하 분산기 유형에 따라 다릅니다.
전역 외부 프록시 네트워크 부하 분산기 및 기본 프록시 네트워크 부하 분산기의 경우 인스턴스 그룹 백엔드의 모든 백엔드 인스턴스와 NEG 백엔드의 모든 백엔드 엔드포인트가 동일한 프로젝트에 있어야 합니다. 그러나 인스턴스 그룹 백엔드 또는 NEG는 해당 프로젝트에서 다른 VPC 네트워크를 사용할 수 있습니다. GFE가 해당 VPC 네트워크에서 백엔드와 직접 통신하므로 VPC 네트워크 피어링을 사용해서 다른 VPC 네트워크를 연결할 필요가 없습니다.
리전 외부 프록시 네트워크 부하 분산기의 경우 백엔드 유형에 따라 다릅니다.
인스턴스 그룹, 영역별 NEG, 하이브리드 연결 NEG의 경우 모든 백엔드는 백엔드 서비스와 동일한 프로젝트 및 리전에 있어야 합니다. 그러나 부하 분산기는 백엔드 서비스와 동일한 프로젝트에서 다른 VPC 네트워크를 사용하는 백엔드를 참조할 수 있습니다(이 기능은 미리보기에 있음). 부하 분산기의 VPC 네트워크와 백엔드 VPC 네트워크 간의 연결은 VPC 네트워크 피어링, Cloud VPN 터널, Cloud Interconnect VLAN 연결 또는 Network Connectivity Center 프레임워크를 사용하여 구성할 수 있습니다.
백엔드 네트워크 정의
- 영역별 NEG 및 하이브리드 NEG의 경우 NEG를 만들 때 VPC 네트워크를 명시적으로 지정합니다.
- 관리형 인스턴스 그룹의 경우 VPC 네트워크가 인스턴스 템플릿에 정의됩니다.
- 비관리형 인스턴스 그룹의 경우 인스턴스 그룹의 VPC 네트워크는 인스턴스 그룹에 추가된 첫 번째 VM에 대한
nic0
인터페이스의 VPC 네트워크와 일치하도록 설정됩니다.
백엔드 네트워크 요구사항
백엔드 네트워크는 다음 네트워크 요구사항 중 하나를 충족해야 합니다.
백엔드의 VPC 네트워크는 전달 규칙의 VPC 네트워크와 정확하게 일치해야 합니다.
백엔드의 VPC 네트워크는 VPC 네트워크 피어링을 사용하여 전달 규칙의 VPC 네트워크에 연결되어야 합니다. 전달 규칙의 VPC 네트워크에 있는 프록시 전용 서브넷과 백엔드 인스턴스 또는 엔드포인트에서 사용하는 서브넷 간의 통신을 허용하도록 서브넷 경로 교환을 구성해야 합니다.
백엔드의 VPC 네트워크와 전달 규칙의 VPC 네트워크는 모두 동일한 Network Connectivity Center 허브에 있는 VPC 스포크여야 합니다. 가져오기 및 내보내기 필터는 전달 규칙의 VPC 네트워크에 있는 프록시 전용 서브넷과 백엔드 인스턴스 또는 엔드포인트에서 사용하는 서브넷 간의 통신을 허용해야 합니다.
다른 모든 백엔드 유형의 경우 모든 백엔드가 동일한 VPC 네트워크와 리전에 있어야 합니다.
백엔드 및 네트워크 인터페이스
인스턴스 그룹 백엔드를 사용하는 경우 패킷이 항상 nic0
에 전달됩니다. 패킷을 다른 NIC로 전송하려면 NEG 백엔드를 대신 사용합니다.
영역별 NEG 백엔드를 사용하는 경우 패킷은 NEG의 엔드포인트가 나타내는 네트워크 인터페이스로 전송됩니다. NEG 엔드포인트는 NEG의 명시적으로 정의된 VPC 네트워크와 동일한 VPC 네트워크에 있어야 합니다.
백엔드와의 통신에 사용되는 프로토콜
외부 프록시 네트워크 부하 분산기에 백엔드 서비스를 구성할 때 백엔드 서비스가 백엔드와 통신하는 데 사용할 프로토콜을 설정합니다.
- 기본 프록시 네트워크 부하 분산기의 경우 TCP 또는 SSL을 선택할 수 있습니다.
- 전역 외부 프록시 네트워크 부하 분산기의 경우 TCP 또는 SSL을 선택할 수 있습니다.
- 리전 외부 프록시 네트워크 부하 분산기의 경우 TCP를 사용할 수 있습니다.
부하 분산기는 사용자가 지정한 프로토콜만 사용하고 다른 프로토콜과의 연결 협상을 시도하지 않습니다.
방화벽 규칙
다음 방화벽 규칙이 필요합니다.
- 기본 프록시 네트워크 부하 분산기의 경우 GFE의 트래픽이 백엔드에 도달하도록 허용하는 인그레스
allow
방화벽 규칙 - 전역 외부 프록시 네트워크 부하 분산기의 경우 GFE의 트래픽이 백엔드에 도달하도록 허용하는 인그레스
allow
방화벽 규칙 - 리전 외부 프록시 네트워크 부하 분산기의 경우 프록시 전용 서브넷의 트래픽이 백엔드에 도달하도록 허용하는 인그레스 방화벽 규칙
- 상태 점검 프로브 범위의 트래픽이 백엔드에 도달하도록 허용하는 인그레스
allow
방화벽 규칙. 상태 점검 프로브와 트래픽을 허용해야 하는 이유에 대한 자세한 내용은 프로브 IP 범위 및 방화벽 규칙을 참조하세요.
방화벽 규칙은 GFE 프록시 수준이 아닌 VM 인스턴스 수준에서 구현됩니다. 방화벽 규칙을 사용하여 트래픽이 부하 분산기에 도달하는 것을 막을 수 없습니다.
이러한 방화벽 규칙의 포트를 다음과 같이 구성해야 합니다.
- 각 백엔드 서비스 상태 점검의 대상 포트에 대한 트래픽을 허용합니다.
- 인스턴스 그룹 백엔드: 백엔드 서비스의 이름이 지정된 포트와 각 인스턴스 그룹의 이름이 지정된 포트에 연결된 포트 번호 간의 매핑에 따라 구성할 포트를 결정합니다. 동일한 백엔드 서비스에 할당된 인스턴스 그룹 간에 포트 번호가 다를 수 있습니다.
GCE_VM_IP_PORT NEG
영역별 NEG 백엔드: 엔드포인트의 포트 번호에 대한 트래픽을 허용합니다.
다음 표에는 방화벽 규칙에 필요한 소스 IP 주소 범위가 요약되어 있습니다.
부하 분산기 모드 | 상태 점검 소스 범위 | 요청 소스 범위 |
---|---|---|
전역 외부 프록시 네트워크 부하 분산기 |
백엔드로 들어오는 IPv6 트래픽:
|
GFE 트래픽의 소스는 백엔드 유형에 따라 달라집니다.
|
기존 프록시 네트워크 부하 분산기 |
|
이 범위는 GFE의 상태 점검 프로브 및 요청에 적용됩니다. |
리전 외부 프록시 네트워크 부하 분산기 1, 2 |
백엔드로 들어오는 IPv6 트래픽:
|
이 범위는 상태 점검 프로브에 적용됩니다. |
* Google의 상태 점검 프로브 범위를 하이브리드 NEG의 허용 목록에 추가할 필요가 없습니다. 하지만 단일 백엔드 서비스에서 하이브리드 및 영역 NEG 조합을 사용하는 경우에는 Google 상태 점검 프로브 범위를 영역 NEG의 허용 목록에 추가해야 합니다.
† 리전 인터넷 NEG의 경우 상태 점검은 선택사항입니다. 리전 인터넷 NEG를 사용하는 부하 분산기의 트래픽은 프록시 전용 서브넷에서 시작되며 수동 또는 자동 할당된 NAT IP 주소로 NAT 변환됩니다(Cloud NAT 사용). 이 트래픽에는 상태 점검 프로브와 부하 분산기에서 백엔드로의 사용자 요청이 포함됩니다. 자세한 내용은 리전 NEG: 이그레스 Cloud NAT 사용을 참조하세요.
소스 IP 주소
백엔드에서 인식하는 패킷의 소스 IP 주소는 부하 분산기의 Google Cloud 외부 IP 주소가 아닙니다. 다시 말해 TCP 연결이 두 개 있습니다.
기본 프록시 네트워크 부하 분산기와 전역 외부 프록시 네트워크 부하 분산기:원래 클라이언트에서 부하 분산기(GFE)로의 연결 1:
- 소스 IP 주소: 원래 클라이언트(또는 클라이언트가 NAT 또는 전달 프록시 뒤에 있는 경우 외부 IP 주소)입니다.
- 대상 IP 주소: 부하 분산기의 IP 주소입니다.
부하 분산기(GFE)에서 백엔드 VM 또는 엔드포인트로의 연결 2:
소스 IP 주소: IP 주소는 방화벽 규칙에 지정된 범위 중 하나입니다.
대상 IP 주소: VPC 네트워크의 백엔드 VM 또는 컨테이너의 내부 IP 주소입니다.
원래 클라이언트에서 부하 분산기(프록시 전용 서브넷)로의 연결 1:
- 소스 IP 주소: 원래 클라이언트(또는 클라이언트가 NAT 또는 전달 프록시 뒤에 있는 경우 외부 IP 주소)입니다.
- 대상 IP 주소: 부하 분산기의 IP 주소입니다.
부하 분산기(프록시 전용 서브넷)에서 백엔드 VM 또는 엔드포인트로의 연결 2:
소스 IP 주소: 동일한 리전 및 네트워크에 부하 분산기로 배포된 모든 Envoy 기반 부하 분산기에서 공유되는 프록시 전용 서브넷의 IP 주소입니다.
대상 IP 주소: VPC 네트워크의 백엔드 VM 또는 컨테이너의 내부 IP 주소입니다.
열린 포트
외부 프록시 네트워크 부하 분산기는 리버스 프록시 부하 분산기입니다. 부하 분산기는 수신 연결을 종료한 후 부하 분산기에서 백엔드로 새 연결을 엽니다. 이 부하 분산기는 전 세계의 Google 프런트엔드(GFE) 프록시를 사용하여 구현됩니다.
GFE에는 동일한 아키텍처에서 실행되는 다른 Google 서비스를 지원하는 열린 포트가 여러 개 있습니다. 포트 스캔을 실행하면 GFE에서 실행되는 다른 Google 서비스에 대한 다른 열린 포트가 표시될 수 있습니다.
다음과 같은 이유로 GFE 기반 부하 분산기의 IP 주소에 포트 스캔을 실행하는 것은 감사 측면에서 유용하지 않습니다.
포트 스캔(예:
nmap
사용)에서는 일반적으로 TCP SYN 프로브를 수행할 때 응답 패킷이나 TCP RST 패킷을 예상하지 않습니다. GFE는 전달 규칙을 구성한 포트에만 SYN 프로브에 대한 응답으로 SYN-ACK 패킷을 전송합니다. GFE는 부하 분산기의 IP 주소 및 이 전달 규칙에 구성된 목적지 포트로 전송된 패킷에 대한 응답으로만 패킷을 백엔드로 전송합니다. 다른 IP 주소나 포트로 전송되는 패킷은 백엔드로 전송되지 않습니다.GFE는 Google Cloud Armor와 같은 보안 기능을 구현합니다. GFE는 Google Cloud Armor 표준을 사용하여 볼륨 및 프로토콜 기반 DDoS 공격과 SYN 플러드로부터 상시 보호 기능을 제공합니다. Google Cloud Armor를 명시적으로 구성하지 않은 경우에도 이 보호 기능을 사용할 수 있습니다. 보안 정책을 구성하거나 Managed Protection 플러스에 등록한 경우에만 요금이 청구됩니다.
부하 분산기의 IP 주소로 전송되는 패킷은 Google Fleet의 모든 GFE가 응답할 수 있습니다. 하지만 부하 분산기 IP 주소와 목적지 포트 조합을 스캔하면 TCP 연결당 GFE 1개만 조사됩니다. 부하 분산기의 IP 주소는 단일 기기 또는 시스템에 할당되지 않습니다. 따라서 GFE 기반 부하 분산기의 IP 주소를 스캔해도 Google Fleet에 있는 모든 GFE가 스캔되지 않습니다.
이러한 점을 고려하여 백엔드 인스턴스의 보안을 감사하는 효과적인 방법을 몇 가지 소개합니다.
보안 감사자는 부하 분산기 구성의 전달 규칙 구성을 검사해야 합니다. 전달 규칙에서는 부하 분산기가 패킷을 수락하여 백엔드로 전달하는 대상 포트를 정의합니다. GFE 기반 부하 분산기의 경우 외부 전달 규칙마다 하나의 대상 TCP 포트만 참조할 수 있습니다.
보안 감사자는 백엔드 VM에 적용 가능한 방화벽 규칙 구성을 검사해야 합니다. 설정한 방화벽 규칙은 GFE에서 백엔드 VM으로 들어오는 트래픽을 차단하지만 GFE로 들어오는 트래픽은 차단하지 않습니다. 권장사항은 방화벽 규칙 섹션을 참조하세요.
공유 VPC 아키텍처
기본 프록시 네트워크 부하 분산기와 리전 외부 프록시 네트워크 부하 분산기는 공유 VPC 네트워크를 사용하는 배포를 지원합니다. 공유 VPC를 사용하면 네트워크 관리자와 서비스 개발자 간의 책임을 명확하게 구분할 수 있습니다. 개발팀은 서비스 프로젝트에 서비스를 빌드하는 데 집중할 수 있으며 네트워크 인프라팀은 부하 분산을 프로비저닝하고 관리할 수 있습니다. 공유 VPC에 대해 잘 모른다면 공유 VPC 개요 문서를 참조하세요.
IP 주소 | 전달 규칙 | 대상 프록시 | 백엔드 구성요소 |
---|---|---|---|
외부 IP 주소는 부하 분산기와 동일한 프로젝트에서 정의되어야 합니다. | 외부 전달 규칙은 백엔드 인스턴스와 동일한 프로젝트(서비스 프로젝트)에서 정의되어야 합니다. | 백엔드 인스턴스와 동일한 프로젝트에서 대상 TCP 또는 SSL 프록시를 정의해야 합니다. |
기본 프록시 네트워크 부하 분산기의 경우 전역 백엔드 서비스가 백엔드 인스턴스와 동일한 프로젝트에서 정의되어야 합니다. 이 인스턴스는 백엔드 서비스에 백엔드로 연결된 인스턴스 그룹에 있어야 합니다. 백엔드 서비스와 연결된 상태 점검은 백엔드 서비스와 동일한 프로젝트에서 정의되어야 합니다. 리전 외부 프록시 네트워크 부하 분산기의 경우 백엔드 VM이 일반적으로 서비스 프로젝트에 있습니다. 리전 백엔드 서비스와 상태 점검이 이 서비스 프로젝트에서 정의되어야 합니다. |
트래픽 분산
백엔드 인스턴스 그룹이나 NEG를 백엔드 서비스에 추가할 때 백엔드 부하와 대상 용량을 측정하는 메서드를 정의하는 부하 분산 모드를 지정합니다.
외부 프록시 네트워크 부하 분산기의 경우 분산 모드는 CONNECTION
또는 UTILIZATION
일 수 있습니다.
- 부하 분산 모드가
CONNECTION
이면 백엔드에서 처리할 수 있는 연결 총개수에 따라 부하가 분산됩니다. - 부하 분산 모드가
UTILIZATION
이면 인스턴스 그룹의 인스턴스 사용률에 따라 부하가 분산됩니다. 이 분산 모드는 VM 인스턴스 그룹 백엔드에만 적용됩니다.
백엔드 간에 트래픽이 분산되는 방식은 부하 분산기의 모드에 따라 다릅니다.
기존 프록시 네트워크 부하 분산기
기본 프록시 네트워크 부하 분산기의 경우 가장 선호하는 백엔드(인스턴스 그룹 또는 NEG)를 선택하기 위해 분산 모드가 사용됩니다. 그러면 트래픽은 백엔드 내에서 인스턴스 또는 엔드포인트 간에 라운드 로빈 방식으로 분산됩니다.
연결 분산 방법
기본 프록시 네트워크 부하 분산기를 프리미엄 등급의 전역 부하 분산 서비스와 표준 등급의 리전 서비스로 구성할 수 있습니다.
분산 모드와 선택한 대상에 따라 각 영역별 GCE_VM_IP_PORT
NEG, 영역 인스턴스 그룹 또는 리전 인스턴스 그룹 영역의 관점에서 백엔드의 가득 찬 상태가 결정됩니다. 그런 다음 일관된 해싱을 통해 영역 내에서 트래픽이 분산됩니다.
프리미엄 등급:
백엔드 서비스 하나만 가질 수 있으며 백엔드 서비스는 여러 리전에서 백엔드를 가질 수 있습니다. 전역 부하 분산의 경우 백엔드를 여러 리전에 배포하면 부하 분산기에서 자동으로 트래픽을 사용자와 가장 가까운 리전에 전달합니다. 트래픽 집중 리전의 경우 부하 분산기가 자동으로 새 연결을 사용 가능한 용량이 있는 다른 리전에 전달합니다. 기존 사용자 연결은 현재 리전에 계속 유지됩니다.
Google에서는 전 세계 모든 접속 지점에서 부하 분산기의 IP 주소를 공지합니다. 각 부하 분산기 IP 주소는 전역 애니캐스트입니다.
여러 리전에서 백엔드로 백엔드 서비스를 구성하면 Google 프런트엔드(GFE)는 사용자와 가장 가까운 리전의 정상 백엔드 인스턴스 그룹이나 NEG로 요청을 전달하려고 시도합니다.
표준 등급:
Google이 전달 규칙의 리전과 연결된 접속 지점에서 부하 분산기 IP 주소를 공지합니다. 부하 분산기에서 리전 외부 IP 주소를 사용합니다.
전달 규칙과 동일한 리전에서만 백엔드를 구성할 수 있습니다. 부하 분산기는 한 리전의 정상 백엔드로만 요청을 전달합니다.
전역 외부 프록시 네트워크 부하 분산기
전역 외부 프록시 네트워크 부하 분산기의 경우 트래픽 분산은 부하 분산 모드와 부하 분산 지역 정책을 기반으로 합니다.
분산 모드에 따라 각 그룹(인스턴스 그룹 또는 NEG)으로 전송되는 트래픽의 가중치 및 비율이 결정됩니다. 부하 분산 지역 정책(LocalityLbPolicy
)에 따라 그룹 내 백엔드의 부하 분산 방식이 결정됩니다.
백엔드 서비스가 트래픽을 수신하면 백엔드의 분산 모드에 따라 백엔드(인스턴스 그룹 또는 NEG)로 트래픽을 전달합니다. 백엔드가 선택되면 부하 분산 지역 정책에 따라 해당 백엔드 그룹의 인스턴스 또는 엔드포인트 간에 트래픽이 분산됩니다.
자세한 내용은 다음을 참조하세요.
연결 분산 방법
전역 외부 프록시 네트워크 부하 분산기를 프리미엄 등급의 전역 부하 분산 서비스로 구성할 수 있습니다.
분산 모드와 선택한 대상에 따라 각 영역별 GCE_VM_IP_PORT
NEG 또는 영역 인스턴스 그룹의 관점에서 백엔드의 가득 찬 상태가 결정됩니다.
그런 다음 일관된 해싱을 통해 영역 내에서 트래픽이 분산됩니다.
백엔드 서비스 하나만 가질 수 있으며 백엔드 서비스는 여러 리전에서 백엔드를 가질 수 있습니다. 전역 부하 분산의 경우 백엔드를 여러 리전에 배포하면 부하 분산기에서 자동으로 트래픽을 사용자와 가장 가까운 리전에 전달합니다. 트래픽 집중 리전의 경우 부하 분산기가 자동으로 새 연결을 사용 가능한 용량이 있는 다른 리전에 전달합니다. 기존 사용자 연결은 현재 리전에 계속 유지됩니다.
Google에서는 전 세계 모든 접속 지점에서 부하 분산기의 IP 주소를 공지합니다. 각 부하 분산기 IP 주소는 전역 애니캐스트입니다.
여러 리전에서 백엔드로 백엔드 서비스를 구성하면 Google 프런트엔드(GFE)는 사용자와 가장 가까운 리전의 정상 백엔드 인스턴스 그룹이나 NEG로 요청을 전달하려고 시도합니다.
리전 외부 프록시 네트워크 부하 분산기
리전 외부 프록시 네트워크 부하 분산기의 경우 트래픽 분산은 부하 분산 모드 및 부하 분산 지역 정책을 기반으로 합니다.
분산 모드에 따라 각 그룹(인스턴스 그룹 또는 NEG)으로 전송되어야 할 트래픽의 가중치 및 비율이 결정됩니다. 부하 분산 지역 정책(LocalityLbPolicy
)에 따라 그룹 내 백엔드의 부하 분산 방식이 결정됩니다.
백엔드 서비스가 트래픽을 수신하면 백엔드의 분산 모드에 따라 백엔드(인스턴스 그룹 또는 NEG)로 트래픽을 전달합니다. 백엔드가 선택되면 부하 분산 지역 정책에 따라 해당 백엔드 그룹의 인스턴스 또는 엔드포인트 간에 트래픽이 분산됩니다.
자세한 내용은 다음을 참조하세요.
세션 어피니티
세션 어피니티는 백엔드가 정상이고 용량이 있는 한 동일한 클라이언트의 모든 요청을 동일한 백엔드로 전송합니다.
외부 프록시 네트워크 부하 분산기(전역 및 리전)는 다음 유형의 세션 어피니티를 제공합니다.
NONE
. 부하 분산기에 세션 어피니티가 설정되지 않습니다.- 클라이언트 IP 어피니티. 동일한 클라이언트 IP 주소의 모든 요청을 동일한 백엔드에 전달합니다.
장애 조치
백엔드가 비정상이 되면 트래픽은 자동으로 동일한 리전에 있는 정상 백엔드로 리디렉션됩니다. 한 리전 내 모든 백엔드가 비정상이면 트래픽이 다른 리전의 정상 백엔드로 분산됩니다(전역 및 기존 모드만 해당). 모든 백엔드가 비정상이면 부하 분산기가 트래픽을 삭제합니다.
GKE 애플리케이션을 위한 부하 분산
Google Kubernetes Engine에서 애플리케이션을 빌드하는 경우 독립형 NEG를 사용하여 트래픽을 컨테이너로 직접 부하 분산할 수 있습니다. 독립형 NEG에서는 사용자가 직접 NEG가 생성되는 서비스 객체를 만든 후 NEG를 백엔드 서비스와 연결하여 부하 분산기를 포드에 연결해야 합니다.
관련 문서는 독립형 영역별 NEG를 통한 컨테이너 기반 부하 분산을 참조하세요.
제한사항
Google Cloud 콘솔을 사용하여 프리미엄 등급에서 리전 외부 프록시 네트워크 부하 분산기를 만들 수 없습니다. 또한 Google Cloud 콘솔에서는 이러한 부하 분산기에 표준 등급을 지원하는 리전만 사용할 수 있습니다. 대신 gcloud CLI 또는 API를 사용합니다.
다음 제한사항은 SSL 대상 프록시로 배포되는 기존 프록시 네트워크 부하 분산기 및 전역 외부 프록시 네트워크 부하 분산기에만 적용됩니다.
기본 프록시 네트워크 부하 분산기와 전역 외부 프록시 네트워크 부하 분산기는 클라이언트 인증서 기반 인증(상호 TLS 인증이라고도 함)을 지원하지 않습니다.
기본 프록시 네트워크 부하 분산기와 전역 외부 프록시 네트워크 부하 분산기는 인증서의 일반 이름(
CN
) 속성 또는 주체 대체 이름(SAN
) 속성에서 소문자만 지원합니다. 도메인에 대문자가 포함된 인증서는 대상 프록시에서 기본 인증서로 설정된 경우에만 반환됩니다.
다음 단계
- 기본 프록시 네트워크 부하 분산기(TCP 프록시) 설정
- 기본 프록시 네트워크 부하 분산기(SSL 프록시) 설정
- 전역 외부 프록시 네트워크 부하 분산기(TCP 프록시) 설정
- 전역 외부 프록시 네트워크 부하 분산기(SSL 프록시) 설정
- 리전 외부 프록시 네트워크 부하 분산기(TCP 프록시) 설정
- SSL 정책 사용
- 프록시 네트워크 부하 분산기 로깅 및 모니터링
- GFE 위치