리전별 내부 프록시 네트워크 부하 분산기는 같은 Virtual Private Cloud(VPC) 네트워크의 클라이언트나 VPC 네트워크에 연결된 클라이언트에만 액세스할 수 있는 내부 IP 주소 뒤에서 TCP 서비스 트래픽을 실행하고 확장할 수 있게 해주는 프록시 기반 리전별 Layer 4 부하 분산기입니다. 다른 VPC 네트워크의 클라이언트에서 서비스를 사용할 수 있게 하려면 Private Service Connect를 사용하여 서비스를 게시하면 됩니다.
이 페이지에서는 하이브리드 연결을 사용하여 연결된 온프레미스 또는 다른 클라우드 환경의 백엔드로 트래픽을 부하 분산하도록 리전 내부 프록시 네트워크 부하 분산기를 구성하는 방법을 설명합니다. 네트워크를 Google Cloud에 연결하도록 하이브리드 연결을 구성하는 내용은 이 페이지에서 다루지 않습니다.
개요
이 예시에서는 부하 분산기를 사용하여 온프레미스 또는 다른 클라우드 환경에 있는 백엔드 VM에 TCP 트래픽을 분산합니다.
이 예시에서는 다음 배포를 구성합니다.
리전별 내부 프록시 네트워크 부하 분산기는 리전별 부하 분산기입니다. 모든 부하 분산기 구성요소(백엔드 인스턴스 그룹, 백엔드 서비스, 대상 프록시, 전달 규칙)는 같은 리전에 있어야 합니다.
권한
하이브리드 부하 분산을 설정하려면 다음 권한이 있어야 합니다.
Google Cloud 환경
- Google Cloud와 온프레미스 환경 또는 기타 클라우드 환경 간에 하이브리드 연결을 설정할 수 있는 권한이 필요합니다. 필요한 권한 목록은 관련 네트워크 연결 제품 문서를 참조하세요.
- 하이브리드 연결 NEG 및 부하 분산기를 만들 수 있는 권한이 필요합니다.
Compute 부하 분산기 관리자 역할(
roles/compute.loadBalancerAdmin
)에는 이 가이드에서 설명하는 태스크를 수행하는 데 필요한 권한이 포함되어 있습니다.
온프레미스 환경 또는 Google Cloud 이외의 기타 클라우드 환경
IP:Port
조합을 사용하여 온프레미스 환경 또는 기타 클라우드 환경의 서비스를 Google Cloud에서 연결할 수 있도록 허용하는 네트워크 엔드포인트를 구성할 수 있는 권한입니다. 자세한 내용은 환경 네트워크 관리자에게 문의하세요.- Google의 상태 점검 프로브가 엔드포인트에 도달할 수 있도록 온프레미스 환경 또는 기타 클라우드 환경에서 방화벽 규칙을 만들 수 있는 권한이 필요합니다.
또한 이 페이지의 안내를 완료하려면 부하 분산기의 Google Cloud 기반 백엔드로 제공할 하이브리드 연결 NEG, 부하 분산기, 영역별 NEG(및 해당 엔드포인트)를 만들어야 합니다.
이렇게 하려면 프로젝트 소유자 또는 편집자이거나 다음 Compute Engine IAM 역할을 보유해야 합니다.
작업 | 필요한 역할 |
---|---|
네트워크, 서브넷, 부하 분산기 구성요소 만들기 | Compute 네트워크 관리자
(roles/compute.networkAdmin ) |
방화벽 규칙 추가 및 삭제 | Compute 보안 관리자
(roles/compute.securityAdmin ) |
인스턴스 만들기 | Compute 인스턴스 관리자
(roles/compute.instanceAdmin ) |
하이브리드 연결 설정
Google Cloud와 온프레미스 환경 또는 기타 클라우드 환경은 Cloud Router와 함께 Cloud Interconnect VLAN 연결 또는 Cloud VPN 터널을 사용하는 하이브리드 연결을 통해 연결되어야 합니다. 고가용성 연결을 사용하는 것을 권장합니다.
전역 동적 라우팅으로 사용 설정된 Cloud Router는 경계 게이트웨이 프로토콜(BGP)을 통해 특정 엔드포인트를 학습하고 Google Cloud VPC 네트워크에 프로그래밍합니다. 리전별 동적 라우팅은 지원되지 않습니다. 정적 경로도 지원되지 않습니다.
Cloud Interconnect 또는 Cloud VPN을 구성하는 데 사용하는 VPC 네트워크는 하이브리드 부하 분산 배포를 구성하는 데 사용하는 네트워크와 동일합니다. VPC 네트워크의 서브넷 CIDR 범위가 원격 CIDR 범위와 충돌하지 않는지 확인합니다. 서브넷 경로는 IP 주소가 겹칠 때 원격 연결보다 우선 적용됩니다.
자세한 내용은 다음 문서를 참조하세요.
Google Cloud 외부에 있는 환경 설정
다음 단계를 수행하여 하이브리드 부하 분산을 위한 온프레미스 환경 또는 기타 클라우드 환경을 설정하세요.
- Google Cloud에 온프레미스 서비스를 노출하도록 네트워크 엔드포인트 구성(
IP:Port
) - 온프레미스 환경 또는 기타 클라우드 환경에서 방화벽 규칙 구성
- Cloud Router가 특정 필수 경로를 비공개 환경에 공지하도록 구성
네트워크 엔드포인트 설정
하이브리드 연결을 설정한 후에는 IP:port
조합을 사용하여 Cloud Interconnect 또는 Cloud VPN을 통해 연결할 수 있는 온프레미스 환경 또는 다른 클라우드 환경 내에서 네트워크 엔드포인트를 하나 이상 구성합니다. 이 IP:port
조합은 이 프로세스의 후반부에 Google Cloud에서 생성될 하이브리드 연결 NEG의 엔드포인트 한 개 이상으로 구성됩니다.
IP 엔드포인트에 대한 경로가 여러 개 있으면 라우팅은 Cloud Router 개요에 설명된 동작을 따릅니다.
방화벽 규칙 설정
온프레미스 환경 또는 다른 클라우드 환경에서 다음 방화벽 규칙을 만들어야 합니다.
- 온프레미스 또는 다른 클라우드 환경에서 인그레스 허용 방화벽 규칙을 만들어 리전의 프록시 전용 서브넷에서 엔드포인트에 도달하도록 트래픽을 허용합니다.
하이브리드 NEG에는 Google의 상태 점검 프로브 범위를 허용 목록에 추가할 필요가 없습니다. 하지만 단일 백엔드 서비스에서 하이브리드 및 영역 NEG 조합을 사용하는 경우 영역 NEG에 대한 Google 상태 점검 프로브 범위를 허용 목록에 추가해야 합니다.
경로 공지
온프레미스 환경 또는 기타 클라우드 환경에 다음 커스텀 IP 범위를 공지하도록 Cloud Router를 구성하세요.
- 리전의 프록시 전용 서브넷의 범위입니다.
Google Cloud 환경 설정
다음 단계에서는 환경 간 하이브리드 연결을 구성하는 데 사용된 것과 동일한 VPC 네트워크(이 절차에서는 NETWORK라고 함)를 사용해야 합니다. 이 네트워크에서 서브넷을 선택하여 부하 분산기의 IP 주소를 예약하고 부하 분산기를 만들 수 있습니다. 이 절차에서는 이 서브넷을 LB_SUBNET이라고 합니다.
또한 사용된 리전(이 절차에서는 REGION이라고 함)이 Cloud VPN 터널 또는 Cloud Interconnect VLAN 연결을 만들 때 사용한 리전과 동일한지 확인합니다.
프록시 전용 서브넷 구성
프록시 전용 서브넷은 Google이 사용자를 대신하여 Envoy 프록시를 실행하는 데 사용하는 IP 주소 집합을 제공합니다. 프록시는 클라이언트의 연결을 종료하고 백엔드에 새 연결을 만듭니다.
프록시 전용 서브넷은 NETWORK VPC 네트워크의 REGION 리전에 있는 모든 Envoy 기반 리전 부하 분산기에서 사용됩니다.
VPC 네트워크당 리전별 활성 프록시 전용 서브넷은 하나만 있을 수 있습니다. 이 리전에 프록시 전용 서브넷이 이미 있으면 이 단계를 건너뛰어도 됩니다.
콘솔
Google Cloud 콘솔을 사용하는 경우에는 기다렸다가 나중에 부하 분산 페이지에서 프록시 전용 서브넷을 만들 수 있습니다.
지금 프록시 전용 서브넷을 만들려면 다음 단계를 사용합니다.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
환경 간 하이브리드 연결을 구성하는 데 사용된 네트워크로 이동합니다.
서브넷 추가를 클릭합니다.
이름에 PROXY_ONLY_SUBNET_NAME을 입력합니다.
리전으로 REGION을 선택합니다.
용도를 리전별 관리형 프록시로 설정합니다.
IP 주소 범위에 PROXY_ONLY_SUBNET_RANGE를 입력합니다.
추가를 클릭합니다.
gcloud
gcloud compute networks subnets
create
명령어로 프록시 전용 서브넷을 만듭니다.
gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
부하 분산기의 IP 주소 예약
기본적으로 전달 규칙마다 하나의 IP 주소가 사용됩니다. 공유 IPv4 주소를 예약할 수 있으므로 여러 전달 규칙과 동일한 IPv4 주소를 사용할 수 있습니다. 하지만 Private Service Connect를 사용하여 부하 분산기를 게시하려면 전달 규칙에 공유 IPv4 주소를 사용하지 마세요.
부하 분산기에 고정 내부 IPv4 주소를 예약하려면 새 고정 내부 IPv4 또는 IPv6 주소 예약을 참조하세요.
하이브리드 연결 NEG 설정
NEG를 만들 때 Google Cloud와 온프레미스 또는 기타 클라우드 환경 간의 지리적 거리를 최소화하는 ZONE을 사용합니다. 예를 들어 독일 프랑크푸르트의 온프레미스 환경에서 서비스를 호스팅하는 경우 NEG를 만들 때 europe-west3-a
Google Cloud 영역을 지정할 수 있습니다.
또한 NEG를 만드는 데 사용된 ZONE은 하이브리드 연결을 위해 Cloud VPN 터널 또는 Cloud Interconnect VLAN 연결이 구성된 리전과 동일해야 합니다.
사용 가능한 리전 및 영역은 Compute Engine 문서: 사용 가능한 리전 및 영역을 참조하세요.
콘솔
하이브리드 연결 NEG를 만들려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 만들기를 클릭합니다.
하이브리드 NEG의 이름을 입력합니다. 이 절차에서는 HYBRID_NEG_NAME이라고 합니다.
네트워크 엔드포인트 그룹 유형에 하이브리드 연결 네트워크 엔드포인트 그룹(영역)을 선택합니다.
네트워크에 NETWORK를 선택합니다.
서브넷에 LB_SUBNET을 선택합니다.
영역에 HYBRID_NEG_ZONE을 선택합니다.
기본 포트를 입력합니다.
만들기를 클릭합니다.
엔드포인트를 하이브리드 연결 NEG에 추가합니다.
Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.
이전 단계에서 만든 네트워크 엔드포인트 그룹의 이름을 클릭합니다(HYBRID_NEG_NAME). 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
이 그룹의 네트워크 엔드포인트 섹션에서 네트워크 엔드포인트 추가를 클릭합니다. 네트워크 엔드포인트 추가 페이지가 표시됩니다.
새 네트워크 엔드포인트의 IP 주소를 입력합니다.
포트 유형을 선택합니다.
- 기본값을 선택하면 엔드포인트에서 네트워크 엔드포인트 그룹의 모든 엔드포인트에 기본 포트를 사용합니다.
- 커스텀을 선택하면 사용할 엔드포인트에 다른 포트 번호를 입력할 수 있습니다.
엔드포인트를 추가하려면 네트워크 엔드포인트 추가를 클릭하고 이전 단계를 반복합니다.
Google Cloud 이외의 엔드포인트를 모두 추가한 후 만들기를 클릭합니다.
gcloud
gcloud compute network-endpoint-groups create
명령어를 사용하여 하이브리드 연결 NEG를 만듭니다.gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=HYBRID_NEG_ZONE \ --network=NETWORK
온프레미스 IP:포트 엔드포인트를 하이브리드 NEG에 추가합니다.
gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \ --zone=HYBRID_NEG_ZONE \ --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
이 명령어를 사용하여 이전에 온프레미스 또는 클라우드 환경에서 구성한 네트워크 엔드포인트를 추가할 수 있습니다.
--add-endpoint
를 필요한 만큼 반복합니다.
필요한 경우 이 단계를 반복하여 하이브리드 NEG를 여러 개 만들 수 있습니다.
부하 분산기 구성
콘솔
구성 시작
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
- 부하 분산기 만들기를 클릭합니다.
- 부하 분산기 유형에 네트워크 부하 분산기(TCP/UDP/SSL)를 선택하고 다음을 클릭합니다.
- 프록시 또는 패스 스루에 프록시 부하 분산기를 선택하고 다음을 클릭합니다.
- 공개 또는 내부에 내부를 선택하고 다음을 클릭합니다.
- 리전 간 또는 단일 리전 배포에 리전 워크로드에 적합을 선택하고 다음을 클릭합니다.
- 구성을 클릭합니다.
기본 구성
- 부하 분산기의 이름을 입력합니다.
- 지역에 REGION을 선택합니다.
- 네트워크에 NETWORK를 선택합니다.
프록시 전용 서브넷 예약
프록시 전용 서브넷을 예약하려면 다음 안내를 따르세요.
- 서브넷 예약을 클릭합니다.
- 이름에 PROXY_ONLY_SUBNET_NAME을 입력합니다.
- IP 주소 범위에 PROXY_ONLY_SUBNET_RANGE를 입력합니다.
- 추가를 클릭합니다.
백엔드 구성
- 백엔드 구성을 클릭합니다.
- 백엔드 유형에서 하이브리드 연결 네트워크 엔드포인트 그룹(영역)을 선택합니다.
- 프로토콜에서 TCP를 선택합니다.
- 새 백엔드에서 이전에 만든 하이브리드 NEG를 선택합니다. HYBRID_NEG_NAME. 또는 네트워크 엔드포인트 그룹 만들기를 클릭하여 하이브리드 NEG를 지금 만들 수 있습니다. NEG 구성에 대한 안내는 하이브리드 NEG 설정을 참조하세요.
- 남은 기본값은 그대로 두고 완료를 클릭합니다.
- 상태 점검을 구성합니다.
- 상태 점검에서 상태 점검 만들기를 선택합니다.
- 상태 점검의 이름을 입력합니다.
- 프로토콜에서 TCP를 선택합니다.
- 포트에
80
을 입력합니다.
- 남은 기본값은 그대로 두고 저장을 클릭합니다.
- Google Cloud 콘솔에서 백엔드 구성 옆에 체크표시가 있는지 확인합니다. 없으면 모든 단계를 완료했는지 다시 확인합니다.
프런트엔드 구성
- 프런트엔드 구성을 클릭합니다.
- 전달 규칙의 이름을 입력합니다.
- 서브네트워크에서 LB_SUBNET을 선택합니다.
- IP 주소에서 LB_IP_ADDRESS를 선택합니다.
- 포트 번호에 1~65535 사이의 포트 번호를 입력합니다. 전달 규칙은 대상 포트가 일치하는 패킷만 전달합니다.
- 온프레미스 또는 기타 클라우드 엔드포인트에서 실행되는 서비스로 작동하는 경우에만 프록시 프로토콜을 사용 설정합니다. 예를 들어 PROXY 프로토콜은 Apache HTTP 서버 소프트웨어에서 작동하지 않습니다. 자세한 내용은 프록시 프로토콜을 참조하세요.
- 완료를 클릭합니다.
- Google Cloud 콘솔에서 프런트엔드 구성 옆에 체크표시가 있는지 확인합니다. 없으면 이전 단계를 모두 완료했는지 다시 확인합니다.
검토 및 완료
- 검토 및 완료를 클릭합니다.
- 설정한 내용을 다시 한 번 확인합니다.
- 만들기를 클릭합니다.
gcloud
백엔드의 리전별 상태 점검을 만듭니다.
gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
하이브리드 NEG 백엔드의 상태 점검 프로브는 프록시 전용 서브넷의 Envoy 프록시에서 시작됩니다.
백엔드 서비스를 만듭니다.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION \ --health-checks=TCP_HEALTH_CHECK_NAME \ --health-checks-region=REGION
하이브리드 NEG 백엔드를 백엔드 서비스에 추가합니다.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=HYBRID_NEG_NAME \ --network-endpoint-group-zone=HYBRID_NEG_ZONE \ --region=REGION \ --balancing-mode=CONNECTION \ --max-connections=MAX_CONNECTIONS
MAX_CONNECTIONS
의 경우, 백엔드가 처리해야 하는 최대 동시 연결 수를 입력합니다.대상 TCP 프록시를 만듭니다.
gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \ --backend-service=BACKEND_SERVICE_NAME \ --region=REGION
전달 규칙을 만듭니다.
gcloud compute forwarding-rules create
명령어를 사용하여 전달 규칙을 만듭니다.FWD_RULE_PORT를 1~65535 사이의 단일 포트 번호로 바꿉니다. 전달 규칙은 대상 포트가 일치하는 패킷만 전달합니다.
gcloud compute forwarding-rules create FORWARDING_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET \ --address=LB_IP_ADDRESS \ --ports=FWD_RULE_PORT \ --region=REGION \ --target-tcp-proxy=TARGET_TCP_PROXY_NAME \ --target-tcp-proxy-region=REGION
부하 분산기 테스트
부하 분산기를 테스트하려면 부하 분산기와 동일한 리전에 클라이언트 VM을 만듭니다. 그런 다음 클라이언트에서 부하 분산기로 트래픽을 전송합니다.
클라이언트 VM 만들기
부하 분산기와 동일한 리전에서 클라이언트 VM(client-vm
)을 만듭니다.
콘솔
Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
인스턴스 만들기를 클릭합니다.
이름을
client-vm
으로 설정합니다.영역을 CLIENT_VM_ZONE로 설정합니다.
고급 옵션을 클릭합니다.
네트워킹을 클릭하고 다음 필드를 구성합니다.
- 네트워크 태그에
allow-ssh
를 입력합니다. - 네트워크 인터페이스에 다음을 선택합니다.
- 네트워크: NETWORK
- 서브넷: LB_SUBNET
- 네트워크 태그에
만들기를 클릭합니다.
gcloud
클라이언트 VM은 부하 분산기와 동일한 VPC 네트워크 및 리전에 있어야 합니다. 동일한 서브넷 또는 영역에는 있지 않아도 됩니다. 클라이언트는 백엔드 VM과 동일한 서브넷을 사용합니다.
gcloud compute instances create client-vm \ --zone=CLIENT_VM_ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=LB_SUBNET
테스트 VM에 대한 SSH 트래픽 허용
이 예시에서는 다음과 같은 방화벽 규칙을 만듭니다.
fw-allow-ssh
: TCP 포트 22에서 임의의 주소로부터 수신되는 SSH 연결을 허용하는 인그레스 규칙입니다. 이 규칙에 더 제한적인 소스 IP 범위를 선택할 수 있습니다. 예를 들어 SSH 세션을 시작할 시스템의 IP 범위만 지정할 수도 있습니다. 이 예시에서는allow-ssh
대상 태그를 사용하여 적용해야 하는 테스트 클라이언트 VM을 식별합니다.
콘솔
- Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다. 방화벽 정책으로 이동
- 방화벽 규칙 만들기를 클릭하여 수신 SSH 연결을 허용하는 규칙을 만듭니다.
- 이름:
fw-allow-ssh
- 네트워크: NETWORK
- 우선순위:
1000
- 트래픽 방향: 인그레스
- 일치 시 작업: 허용
- 대상: 지정된 대상 태그
- 대상 태그:
allow-ssh
- 소스 필터: IPv4 범위
- 소스 IPv4 범위:
0.0.0.0/0
- 프로토콜 및 포트: 지정된 프로토콜 및 포트를 선택한 다음
tcp:22
를 입력합니다. - 만들기를 클릭합니다.
- 이름:
gcloud
allow-ssh
네트워크 태그를 사용해 VM으로 가는 SSH 연결을 허용하는fw-allow-ssh
방화벽 규칙을 만듭니다.gcloud compute firewall-rules create fw-allow-ssh \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
부하 분산기로 트래픽 전송
부하 분산기를 구성했으므로 부하 분산기의 IP 주소로 트래픽 전송을 테스트할 수 있습니다.
SSH를 통해 클라이언트 인스턴스에 연결합니다.
gcloud compute ssh client-vm \ --zone=CLIENT_VM_ZONE
부하 분산기가 백엔드 호스트 이름을 정상적으로 제공하고 있는지 확인합니다.
compute addresses describe
명령어를 사용하여 부하 분산기의 IP 주소를 확인합니다.gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
IP 주소를 기록해 둡니다.
부하 분산기 전달 규칙을 만들 때 지정한 IP 주소 및 포트의 부하 분산기로 트래픽을 전송합니다. 하이브리드 NEG 백엔드가 요청에 응답하는지 테스트하는 방법은 Google Cloud 이외의 엔드포인트에서 실행되는 서비스에 따라 다릅니다.
선택사항: Private Service Connect를 사용하여 서비스 게시
하이브리드 연결을 사용하는 리전 내부 프록시 네트워크 부하 분산기를 사용하면 온프레미스 또는 기타 클라우드 환경에서 호스팅되는 서비스를 VPC 네트워크의 클라이언트에서 사용할 수 있습니다.
다른 VPC 네트워크에서 하이브리드 서비스를 사용할 수 있게 하려면 Private Service Connect를 사용하여 서비스를 게시하면 됩니다. 리전 내부 프록시 네트워크 부하 분산기 앞에 서비스 연결을 배치하면 다른 VPC 네트워크의 클라이언트가 온프레미스 또는 기타 클라우드 환경에서 실행되는 하이브리드 서비스에 도달할 수 있습니다.
다음 단계
- 리전 내부 프록시 네트워크 부하 분산기의 모니터링을 설정하려면 모니터링 사용 참조하기
- 리전 내부 프록시 네트워크 부하 분산기의 작동 방식은 리전 내부 프록시 네트워크 부하 분산기 개요 참조하기
- 부하 분산기 설정 삭제하기