이 가이드에서는 리전 백엔드 서비스를 사용하여 외부 패스 스루 네트워크 부하 분산기 배포를 만드는 방법을 설명합니다. 이 예시에서는 TCP 또는 UDP 트래픽을 지원하는 외부 패스 스루 네트워크 부하 분산기를 만듭니다. TCP 또는 UDP 뿐만 아니라 TCP, UDP, ESP, GRE, ICMP, ICMPv6 트래픽을 부하 분산하는 외부 패스 스루 네트워크 부하 분산기를 만들려면 여러 IP 프로토콜에 대해 외부 패스 스루 네트워크 부하 분산기 설정을 참조하세요.
이 예시에서는 부하 분산기를 사용하여 us-central1
리전의 두 영역 관리형 인스턴스 그룹에 있는 백엔드 VM에 TCP 트래픽을 분산합니다. us-central1
리전에 단일 리전 관리형 인스턴스 그룹을 사용하는 것도 마찬가지로 유효한 방법입니다.
이 시나리오에서는 정상 인스턴스에 TCP 트래픽을 분산합니다. 이 예시를 지원하기 위해 TCP 상태 점검은 트래픽이 정상 인스턴스로만 전송되도록 구성됩니다. TCP 상태 점검은 백엔드 서비스 기반 부하 분산기에서만 지원됩니다. 대상 풀 기반 부하 분산기는 기존 HTTP 상태 점검만 사용할 수 있습니다.
이 예시에서는 TCP 트래픽을 부하 분산하지만 백엔드 서비스 기반의 외부 패스 스루 네트워크 부하 분산기를 사용하여 TCP, UDP, ESP, GRE, ICMP, ICMPv6 트래픽을 부하 분산할 수 있습니다.
외부 패스 스루 네트워크 부하 분산기는 리전별 부하 분산기입니다. 모든 부하 분산기 구성요소(백엔드 VM, 백엔드 서비스, 전달 규칙)가 동일한 리전에 있어야 합니다.
시작하기 전에
Google Cloud CLI 설치 이 도구에 대한 전체 개요는 gcloud CLI 개요를 참조하세요. API 및 gcloud 참조에서 부하 분산과 관련된 명령어를 확인할 수 있습니다.
이전에 Google Cloud CLI를 실행한 적이 없다면 먼저 gcloud init
를 실행하여 인증하세요.
이 가이드는 bash에 익숙한 개발자를 대상으로 합니다.
네트워크 및 서브넷 설정
이 페이지의 예시에서는 lb-network
라는 커스텀 모드 VPC 네트워크를 사용합니다. IPv4 트래픽만 처리하려면 자동 모드 VPC 네트워크를 사용하면 됩니다.
하지만 IPv6 트래픽에는 커스텀 모드 서브넷이 필요합니다.
IPv6 트래픽에는 이중 스택 서브넷(stack-type
이 IPv4_IPv6
로 설정됨)도 필요합니다. 커스텀 모드 VPC 네트워크에서 이중 스택 서브넷을 만들 때 서브넷에 IPv6 액세스 유형을 선택합니다. 이 예시에서는 서브넷의 ipv6-access-type
매개변수를 EXTERNAL
로 설정합니다. 즉, 이 서브넷의 새 VM에 외부 IPv4 주소와 외부 IPv6 주소를 모두 할당할 수 있습니다. 전달 규칙을 외부 IPv4 주소 및 외부 IPv6 주소에 할당할 수도 있습니다.
이 예시에서 사용되는 백엔드 및 부하 분산기 구성요소는 다음 리전 및 서브넷에 있습니다.
- 리전:
us-central1
- 서브넷:
lb-subnet
, 기본 IPv4 주소 범위10.1.2.0/24
. 서브넷에 구성할 IPv4 주소 범위를 선택하더라도 IPv6 주소 범위가 자동으로 할당됩니다. Google은 고정된 크기(/64)의 IPv6 CIDR 블록을 제공합니다.
예시 네트워크 및 서브넷을 만들려면 다음 단계를 따르세요.
콘솔
IPv4 및 IPv6 트래픽을 모두 지원하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
VPC 네트워크 만들기를 클릭합니다.
lb-network
의 이름을 입력합니다.서브넷 섹션에서 다음을 수행합니다.
- 서브넷 생성 모드를 커스텀으로 설정합니다.
- 새 서브넷 섹션에서 다음 필드를 구성하고 완료를 클릭합니다.
- 이름:
lb-subnet
- 리전:
us-central1
- IP 스택 유형: IPv4 및 IPv6(이중 스택)
- IPv4 범위:
10.1.2.0/24
서브넷의 IPv4 주소 범위를 구성할 수 있지만 서브넷의 IPv6 주소 범위를 선택할 수는 없습니다. Google은 고정된 크기(/64)의 IPv6 CIDR 블록을 제공합니다. - IPv6 액세스 유형: 외부
- 이름:
만들기를 클릭합니다.
IPv4 트래픽만 지원하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
VPC 네트워크 만들기를 클릭합니다.
lb-network
의 이름을 입력합니다.서브넷 섹션에서 다음을 수행합니다.
- 서브넷 생성 모드를 커스텀으로 설정합니다.
- 새 서브넷 섹션에서 다음 필드를 구성하고 완료를 클릭합니다.
- 이름:
lb-subnet
- 리전:
us-central1
- IP 스택 유형: IPv4(단일 스택)
- IPv4 범위:
10.1.2.0/24
- 이름:
만들기를 클릭합니다.
gcloud
커스텀 모드 VPC 네트워크를 만듭니다.
gcloud compute networks create lb-network \ --subnet-mode=custom
lb-network
네트워크 내에서us-central1
리전의 백엔드에 대한 서브넷을 만듭니다.IPv4 및 IPv6 트래픽 모두의 경우 다음 명령어를 사용하여 이중 스택 서브넷을 만듭니다.
gcloud compute networks subnets create lb-subnet \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
IPv4 트래픽 전용의 경우 다음 명령어를 사용합니다.
gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
영역별 관리형 인스턴스 그룹 만들기
이 부하 분산 시나리오에서는 Compute Engine 영역별 관리형 인스턴스 그룹 2개를 만들고 각 인스턴스에 Apache 웹 서버를 설치합니다.
IPv4 및 IPv6 트래픽을 모두 처리하려면 백엔드 VM을 이중 스택으로 구성합니다. VM의 stack-type
을 IPv4_IPv6
로 설정합니다. VM은 서브넷에서 ipv6-access-type
설정(이 예시에서는 EXTERNAL
)도 상속합니다. IPv6 요구사항에 대한 자세한 내용은 외부 패스 스루 네트워크 부하 분산기 개요: 전달 규칙을 참조하세요.
기존 VM을 백엔드로 사용하려면 gcloud compute instances network-interfaces
update
명령어를 사용하여 VM을 이중 스택으로 업데이트합니다.
외부 패스 스루 네트워크 부하 분산기에 백엔드 VM으로 참여하는 인스턴스에서 적절한 Linux 게스트 환경, Windows 게스트 환경 또는 기타 동일한 기능을 제공하는 프로세스가 실행되어야 합니다.
인스턴스 설정
콘솔
인스턴스 템플릿을 만듭니다. Google Cloud 콘솔에서 인스턴스 템플릿 페이지로 이동합니다.
- 인스턴스 템플릿 만들기를 클릭합니다.
- 이름에
ig-us-template
를 입력합니다. - 부팅 디스크 섹션에서 이미지가 Debian 이미지로 설정되었는지 확인합니다(예: Debian GNU/Linux 12 (bookworm)). 이 안내에서는 Debian에서만 사용할 수 있는 명령어(예:
apt-get
)를 사용합니다. - 고급 옵션을 클릭합니다.
- 네트워킹을 클릭합니다.
- 네트워크 태그에
lb-tag
를 입력합니다. - 네트워크 인터페이스에서 기본 인터페이스를 클릭하고 다음 필드를 구성합니다.
- 네트워크:
lb-network
- 서브네트워크:
lb-subnet
- 네트워크:
- 완료를 클릭합니다.
- 네트워크 태그에
관리를 클릭하고 시작 스크립트 필드에 다음 스크립트를 복사합니다.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
만들기를 클릭합니다.
관리형 인스턴스 그룹을 만듭니다. Google Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
- 인스턴스 그룹 만들기를 클릭합니다.
- 새 관리형 인스턴스 그룹(스테이트리스(Stateless))을 선택합니다. 자세한 내용은 스테이트리스(Stateless) 또는 스테이트풀(Stateful) MIG를 참조하세요.
- 이름에
ig-us-1
을 입력합니다. - 인스턴스 템플릿에서
ig-us-template
을 선택합니다. - 위치에서 단일 영역을 선택합니다.
- 리전에서
us-central1
을 선택합니다. - 영역에서
us-central1-a
를 선택합니다. 그룹에 만들 인스턴스의 수를 지정합니다.
이 예시의 경우 자동 확장 섹션에서 다음 옵션을 지정합니다.
- 자동 확장 모드에서
Off:do not autoscale
을 선택합니다. - 최대 인스턴스 수에
2
를 입력합니다.
- 자동 확장 모드에서
만들기를 클릭합니다.
이전 단계를 반복하여
us-central1-c
영역에 다음 사양으로 두 번째 관리형 인스턴스 그룹을 만듭니다.- 이름:
ig-us-2
- 영역:
us-central1-c
- 인스턴스 템플릿: 이전 섹션에서 만든 동일한
ig-us-template
템플릿을 사용합니다.
- 이름:
gcloud
이 가이드의 gcloud
안내에서는 Cloud Shell 또는 bash가 설치된 다른 환경을 사용한다고 가정합니다.
gcloud compute instance-templates create
명령어로 HTTP 서버가 포함된 VM 인스턴스 템플릿을 만듭니다.IPv4 및 IPv6 트래픽을 모두 처리하려면 다음 명령어를 사용하세요.
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPv4_IPv6 \ --tags=lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
IPv4 트래픽 전용 트래픽을 처리하려면 다음 명령어를 사용합니다.
gcloud compute instance-templates create ig-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=lb-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
gcloud compute instance-groups managed create
명령어로 영역에 관리형 인스턴스 그룹을 만듭니다.gcloud compute instance-groups managed create ig-us-1 \ --zone us-central1-a \ --size 2 \ --template ig-us-template
us-central1-c
영역에서 두 번째 관리형 인스턴스 그룹을 만듭니다.gcloud compute instance-groups managed create ig-us-2 \ --zone us-central1-c \ --size 2 \ --template ig-us-template
방화벽 규칙 구성
외부 트래픽(상태 점검 프로브 포함)이 백엔드 인스턴스에 도달하도록 허용하는 방화벽 규칙을 만듭니다.
이 예시에서는 모든 소스 범위의 TCP 트래픽이 포트 80의 백엔드 인스턴스에 도달하도록 허용하는 방화벽 규칙을 만듭니다. 특히 상태 점검 프로브에 대해 별도의 방화벽 규칙을 만들려면 상태 점검 개요: 프로브 IP 범위 및 방화벽 규칙에 설명된 소스 IP 주소 범위를 사용합니다.
콘솔
Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.
IPv4 트래픽을 허용하려면 다음 단계를 수행합니다.
- 방화벽 규칙 만들기를 클릭합니다.
- 이름에
allow-network-lb-ipv4
을 입력합니다. - 네트워크 목록에서
lb-network
를 선택합니다. - 대상으로 지정된 대상 태그를 선택합니다.
- 대상 태그 필드에
lb-tag
를 입력합니다. - 소스 필터에 대해 IPv4 범위를 선택합니다.
- 소스 IPv4 범위를
0.0.0.0/0
으로 설정합니다. 이렇게 하면 모든 소스의 IPv4 트래픽이 허용됩니다. 이렇게 하면 Google의 상태 점검 프로브가 백엔드 인스턴스에 도달할 수도 있습니다. - 지정된 프로토콜 및 포트에서 TCP 체크박스를 선택하고
80
을 입력합니다. - 만들기를 클릭합니다. Google Cloud 콘솔에 새 방화벽 규칙이 표시되는 데 시간이 걸릴 수 있습니다. 또는 새로고침을 클릭해야 규칙을 볼 수 있는 경우도 있습니다.
IPv6 트래픽을 허용하려면 다음 단계를 수행합니다.
- 방화벽 규칙 만들기를 다시 클릭합니다.
- 이름에
allow-network-lb-ipv6
을 입력합니다. - 네트워크 목록에서
lb-network
를 선택합니다. - 대상으로 지정된 대상 태그를 선택합니다.
- 대상 태그 필드에
lb-tag
를 입력합니다. - 소스 필터에 대해 IPv6 범위를 선택합니다.
- 소스 IPv6 범위를
::/0
으로 설정합니다. 이렇게 하면 모든 소스의 IPv6 트래픽이 허용됩니다. 이렇게 하면 Google의 상태 점검 프로브가 백엔드 인스턴스에 도달할 수도 있습니다. - 지정된 프로토콜 및 포트에서 TCP 체크박스를 선택하고
80
을 입력합니다. - 만들기를 클릭합니다. 콘솔에 새 방화벽 규칙이 표시되는 데 시간이 걸릴 수 있습니다. 또는 새로고침을 클릭해야 규칙을 볼 수 있는 경우도 있습니다.
gcloud
IPv4 트래픽을 허용하려면 다음 명령어를 실행합니다.
gcloud compute firewall-rules create allow-network-lb-ipv4 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
IPv6 트래픽을 허용하려면 다음 명령어를 실행합니다.
gcloud compute firewall-rules create allow-network-lb-ipv6 \ --network=lb-network \ --target-tags=lb-tag \ --allow=tcp:80 \ --source-ranges=::/0
부하 분산기 구성
다음으로 부하 분산기를 설정합니다.
부하 분산기를 구성하면 가상 머신(VM) 인스턴스는 사용자가 구성한 고정 외부 IP 주소로 전송되는 패킷을 수신합니다. Compute Engine에서 제공하는 이미지를 사용하는 경우 IP 주소를 처리하도록 인스턴스가 자동으로 구성됩니다. 다른 이미지를 사용하는 경우 이 주소를 eth0
의 별칭 또는 각 인스턴스의 루프백으로 구성해야 합니다.
부하 분산기를 설정하려면 다음 안내를 따르세요.
콘솔
구성 시작
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
- 부하 분산기 만들기를 클릭합니다.
- 부하 분산기 유형에 네트워크 부하 분산기(TCP/UDP/SSL)를 선택하고 다음을 클릭합니다.
- 프록시 또는 패스 스루에 패스 스루 부하 분산기를 선택하고 다음을 클릭합니다.
- 공개 또는 내부에 공개(외부)를 선택하고 다음을 클릭합니다.
- 구성을 클릭합니다.
백엔드 구성
- 외부 패스 스루 네트워크 부하 분산기 만들기 페이지에서 새 부하 분산기에 대해
tcp-network-lb
이름을 입력합니다. - 리전에서
us-central1
을 선택합니다. - 백엔드 구성을 클릭합니다.
- 백엔드 구성 페이지에서 다음과 같이 변경하세요.
- 새 백엔드에서 IP 스택 유형을 선택합니다. IPv4 및 IPv6 트래픽을 모두 처리하기 위해 이중 스택 백엔드를 만든 경우 IPv4 및 IPv6(이중 스택)을 선택합니다. IPv4 트래픽만 처리하려면 IPv4(단일 스택)를 선택합니다.
- 인스턴스 그룹 목록에서
ig-us-1
을 선택한 후 완료를 클릭합니다. - 백엔드 추가를 클릭하고 이 단계를 반복하여
ig-us-2
를 추가합니다. - 상태 점검에서 상태 점검 만들기 또는 다른 상태 점검 만들기를 클릭한 후 다음 정보를 입력합니다.
- 이름:
tcp-health-check
- 프로토콜:
TCP
- 포트:
80
- 이름:
- 저장을 클릭합니다.
- 계속하기 전에 백엔드 구성 옆에 파란색 체크표시가 있는지 확인합니다.
프런트엔드 구성
- 프런트엔드 구성을 클릭합니다.
- 이름에
network-lb-forwarding-rule
를 입력합니다. - IPv4 트래픽을 처리하려면 다음 단계를 따르세요.
- IP 버전에서 IPv4를 선택합니다.
- 내부 IP 용도 섹션의 IP 주소 목록에서 IP 주소 만들기를 선택합니다.
- 새 고정 IP 주소 예약 페이지에서 이름에
network-lb-ipv4
을 입력합니다. - 예약을 클릭합니다.
- 새 고정 IP 주소 예약 페이지에서 이름에
- 포트에 대해 단일을 선택합니다. 포트 번호에
80
을 입력합니다. - 완료를 클릭합니다.
IPv6 트래픽을 처리하려면 다음 단계를 따르세요.
- IP 버전에서 IPv6을 선택합니다.
- 서브네트워크에 lb-subnet을 선택합니다.
- IPv6 범위 목록에서 IP 주소 만들기를 선택합니다.
- 새 고정 IP 주소 예약 페이지에서 이름에
network-lb-ipv6
을 입력합니다. - 예약을 클릭합니다.
- 새 고정 IP 주소 예약 페이지에서 이름에
- 포트에 단일을 선택합니다. 포트 번호에
80
을 입력합니다. - 완료를 클릭합니다.
프런트엔드 구성 왼쪽의 체크 표시가 있는 파란색 원은 설정이 완료되었음을 나타냅니다.
구성 검토
- 검토 및 완료를 클릭합니다.
- 부하 분산기 구성 설정을 검토합니다.
- 선택사항: 부하 분산기를 만드는 데 사용되는 REST API 요청을 보려면 상응하는 코드를 클릭합니다.
만들기를 클릭합니다.
부하 분산 페이지의 새 부하 분산기에 대한 백엔드 열에 새 부하 분산기가 정상임을 나타내는 녹색 확인 표시가 나타납니다.
gcloud
정적 외부 IP 주소를 예약합니다.
IPv4 트래픽의 경우: 부하 분산기의 고정 외부 IPv4 주소를 만듭니다.
gcloud compute addresses create network-lb-ipv4 \ --region us-central1
IPv6 트래픽의 경우: 부하 분산기의 고정 외부 IPv6 주소 범위를 만듭니다. 사용되는 서브넷은 외부 IPv6 범위를 갖는 이중 스택 서브넷이어야 합니다.
gcloud compute addresses create network-lb-ipv6 \ --region us-central1 \ --subnet lb-subnet \ --ip-version IPV6 \ --endpoint-type NETLB
TCP 상태 점검 만들기
gcloud compute health-checks create tcp tcp-health-check \ --region us-central1 \ --port 80
백엔드 서비스를 만듭니다.
gcloud compute backend-services create network-lb-backend-service \ --protocol TCP \ --health-checks tcp-health-check \ --health-checks-region us-central1 \ --region us-central1
백엔드 서비스에 인스턴스 그룹을 추가합니다.
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
IPv4 트래픽 또는 IPv6 트래픽 처리 여부에 따라 전달 규칙을 만듭니다. 두 가지 유형의 트래픽을 모두 처리하는 두 전달 규칙을 만듭니다.
IPv4 트래픽의 경우: 수신되는 TCP 트래픽을 백엔드 서비스로 라우팅하는 전달 규칙을 만듭니다. 1단계에서 예약된 IPv4 주소를 부하 분산기의 고정 외부 IP 주소로 사용합니다.
gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv4 \ --load-balancing-scheme EXTERNAL \ --region us-central1 \ --ports 80 \ --address network-lb-ipv4 \ --backend-service network-lb-backend-service
IPv6 트래픽의 경우: IPv6 트래픽을 처리하는 전달 규칙을 만듭니다. 1단계에서 예약된 IPv6 주소 범위를 부하 분산기의 고정 외부 IP 주소로 사용합니다. 사용되는 서브넷은 외부 IPv6 서브넷 범위를 갖는 이중 스택 서브넷이어야 합니다.
gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \ --load-balancing-scheme EXTERNAL \ --region us-central1 \ --network-tier PREMIUM \ --ip-version IPV6 \ --subnet lb-subnet \ --address network-lb-ipv6 \ --ports 80 \ --backend-service network-lb-backend-service
부하 분산기 테스트
부하 분산 서비스를 구성했으므로 이제 부하 분산기의 외부 IP 주소로 트래픽을 전송할 수 있으며 트래픽이 백엔드 인스턴스로 분산되는 것을 볼 수 있습니다.
부하 분산기의 외부 IP 주소 조회
콘솔
부하 분산 구성요소 페이지에서 전달 규칙 탭으로 이동합니다.
부하 분산기에서 사용하는 전달 규칙을 찾습니다.
외부 IP 주소 열에서 나열된 외부 IP 주소를 기록합니다.
gcloud: IPv4
부하 분산기에서 사용하는 network-lb-forwarding-rule
전달 규칙의 외부 IPv4 주소를 확인하려면 다음 명령어를 입력합니다.
gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv4 \ --region us-central1
gcloud: IPv6
부하 분산기에서 사용하는 network-lb-forwarding-rule
전달 규칙의 외부 IPv6 주소를 확인하려면 다음 명령어를 입력합니다.
gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv6 \ --region us-central1
부하 분산기로 트래픽 전송
curl
을 사용하여 부하 분산기에 웹 요청을 만들어 IP 주소에 연결합니다.
IPv4 연결이 설정된 클라이언트에서 다음 명령어를 실행합니다.
$ while true; do curl -m1 IPV4_ADDRESS; done
IPv6 연결이 설정된 클라이언트에서 다음 명령어를 실행합니다.
$ while true; do curl -m1 http://IPV6_ADDRESS; done
예를 들어 할당된 IPv6 주소가
[2001:db8:1:1:1:1:1:1/96]:80
이면 명령어는 다음과 같습니다.$ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
curl
명령어에서 반환된 텍스트를 확인합니다. 응답을 생성하는 백엔드 VM의 이름은 해당 텍스트에 표시됩니다(예: Page served
from: VM_NAME
).
curl
명령어는 백엔드 인스턴스에서 무작위로 응답합니다. 처음에 응답이 성공하지 못하면 구성이 완전히 로드되고 인스턴스가 정상으로 표시될 때까지 30초 정도 기다린 다음 다시 시도합니다.
추가 구성 옵션
이 섹션에서는 구성 예시를 바탕으로 외부 패스 스루 네트워크 부하 분산기를 추가로 맞춤설정하는 방법을 설명합니다. 이러한 작업은 선택사항입니다. 원하는 순서대로 수행할 수 있습니다.
세션 어피니티 구성
예시 구성은 세션 어피니티가 사용 중지된 상태로(값이 NONE
으로 설정됨) 백엔드 서비스를 만듭니다. 이 섹션에서는 백엔드 서비스를 업데이트하여 부하 분산기의 세션 어피니티 설정을 변경하는 방법을 보여줍니다.
지원되는 세션 어피니티 유형은 세션 어피니티 옵션을 참조하세요.
콘솔
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
부하 분산기 탭에서 백엔드 서비스 이름을 클릭한 후 수정을 클릭합니다.
외부 패스 스루 네트워크 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
세션 어피니티 목록에서 옵션을 선택합니다.
업데이트를 클릭합니다.
gcloud
다음 gcloud
명령어를 사용하여 백엔드 서비스의 세션 어피니티를 업데이트합니다.
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --session-affinity=SESSION_AFFINITY_OPTION
자리표시자를 유효한 값으로 바꿉니다.
BACKEND_SERVICE
: 업데이트할 백엔드 서비스SESSION_AFFINITY_OPTION
: 설정하려는 세션 어피니티 옵션외부 패스 스루 네트워크 부하 분산기에 지원되는 값 목록은 세션 어피니티 옵션을 참조하세요.
연결 추적 정책 구성
구성 예시는 연결 추적 정책의 기본 설정으로 백엔드 서비스를 만듭니다. 이 섹션에서는 부하 분산기의 기본 연결 추적 정책을 변경하기 위해 백엔드 서비스를 업데이트하는 방법을 보여줍니다.
연결 추적 정책에는 다음 설정이 포함됩니다.
- 추적 모드
- 비정상 백엔드의 연결 지속성
- 유휴 제한 시간(60초, 구성 불가능)
gcloud
다음 gcloud compute
backend-services
명령어를 사용하여 백엔드 서비스의 연결 추적 정책을 업데이트합니다.
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --tracking-mode=TRACKING_MODE \ --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR
자리표시자를 유효한 값으로 바꿉니다.
BACKEND_SERVICE
: 업데이트할 백엔드 서비스TRACKING_MODE
: 수신 패킷에 사용할 연결 추적 모드. 지원되는 값 목록은 추적 모드를 참조하세요.CONNECTION_PERSISTENCE_BEHAVIOR
: 백엔드가 비정상일 때의 연결 지속성 동작. 지원되는 값 목록은 비정상 백엔드의 연결 지속성을 참조하세요.
트래픽 조정 구성
이 섹션에서는 부하 분산기의 프런트엔드 구성을 업데이트하여 소스 IP 기반 트래픽 조정을 설정하는 방법을 보여줍니다. 트래픽 조정이 작동하는 방식에 대한 자세한 내용은 트래픽 조정을 참조하세요.
이 안내에서는 상위 기본 전달 규칙이 이미 생성되어 있다고 가정합니다. 이 예에서는 상위 요소와 동일한 IP 주소, IP 프로토콜 및 포트를 사용하여 조정 전달 규칙인 두 번째 전달 규칙을 만듭니다. 이 조정 전달 규칙은 소스 IP 범위로 구성되므로 해당 소스 IP 범위의 패킷이 전달되는 방식을 맞춤설정할 수 있습니다.
gcloud
다음 명령어를 사용하여 백엔드 서비스를 가리키는 조정 전달 규칙을 만듭니다.
gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_BS \ --load-balancing-scheme=EXTERNAL \ --backend-service=BACKEND_SERVICE \ --address=LOAD_BALANCER_VIP \ --ip-protocol=IP_PROTOCOL \ --ports=PORTS \ --region=REGION \ --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES
다음 명령어를 사용하여 대상 인스턴스를 가리키는 조정 전달 규칙을 만듭니다.
gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_TI \ --load-balancing-scheme=EXTERNAL \ --target-instance=TARGET_INSTANCE \ --address=LOAD_BALANCER_VIP \ --ip-protocol=IP_PROTOCOL \ --ports=PORTS \ --region=REGION \ --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES
자리표시자를 유효한 값으로 바꿉니다.
FORWARDING_RULE
: 만들려는 조정 전달 규칙의 이름입니다.BACKEND_SERVICE
또는TARGET_INSTANCE
: 이 조정 전달 규칙이 트래픽을 전송할 백엔드 서비스 또는 대상 인스턴스의 이름입니다. 상위 전달 규칙이 백엔드 서비스를 가리키는 경우에도 대상 인스턴스를 가리키는 조정 전달 규칙을 만들 수 있습니다.LOAD_BALANCER_VIP
,IP_PROTOCOL
,PORTS
: 만들려는 조정 전달 규칙의 IP 주소, IP 프로토콜, 포트입니다. 이러한 설정은 기존의 기본 전달 규칙과 일치해야 합니다.REGION
: 만들려는 전달 규칙의 리전입니다.SOURCE_IP_ADDRESS_RANGES
: 쉼표로 구분된 IP 주소 또는 IP 주소 범위 목록입니다. 이 전달 규칙은 수신 패킷의 소스 IP 주소가 여기에 설정된 IP 범위 중 하나에 속할 때만 트래픽을 전달합니다.
다음 명령어를 사용하여 조정 전달 규칙을 삭제합니다. 부하 분산기 자체를 삭제할 수 있으려면 먼저 부하 분산기에 사용되는 조정 전달 규칙을 삭제해야 합니다.
gcloud compute forwarding-rules delete STEERING_FORWARDING_RULE \ --region=REGION
장애 조치 정책 구성
장애 조치 정책을 구성하려면 외부 패스 스루 네트워크 부하 분산기에 대한 장애 조치 구성을 참조하세요.
가중치가 적용된 부하 분산 구성
가중치가 적용된 부하 분산을 구성하려면 가중치가 적용된 부하 분산 구성을 참조하세요.
BYOIP로 IPv6 전달 규칙 만들기
이전 단계에서 만든 부하 분산기는 IP version
이 IPv4
또는 IPv6
인 전달 규칙으로 구성되었습니다. 이 섹션에서는 자체 IP 주소 사용(BYOIP)으로 IPv6 전달 규칙을 만드는 방법을 설명합니다.
자체 IP 주소 사용을 통해 Google Cloud 리소스에 자체 공개 IPv6 주소를 프로비저닝하고 사용할 수 있습니다. 자세한 내용은 자체 IP 주소 사용을 참조하세요.
BYOIP 주소로 IPv6 전달 규칙을 구성하려면 먼저 다음 단계를 완료해야 합니다.
새 전달 규칙을 만들려면 다음 단계를 수행합니다.
Console
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
- 수정할 부하 분산기의 이름을 클릭합니다.
- 수정을 클릭합니다.
- 프런트엔드 구성을 클릭합니다.
- 프런트엔드 IP 및 포트 추가를 클릭합니다.
- 새 프런트엔드 IP 및 포트 섹션에서 다음을 지정합니다.
- 프로토콜은 TCP입니다.
- IP 버전 필드에서 IPv6를 선택합니다.
- IPv6 범위의 소스 필드에서 BYOIP를 선택합니다.
- IP 집합 목록에서 전달 규칙 옵션을 사용 설정하여 이전 단계에서 만든 하위 프리픽스를 선택합니다.
- IPv6 범위 필드에 IPv6 주소 범위를 입력합니다. IPv6 주소 범위는 IPv6 하위 프리픽스 사양을 준수해야 합니다.
- 포트 필드에 포트 번호를 입력합니다.
- 완료를 클릭합니다.
- 업데이트를 클릭합니다.
Google Cloud CLI
gcloud compute forwarding-rules create
명령어를 사용하여 전달 규칙을 만듭니다.
gcloud compute forwarding-rules create FWD_RULE_NAME \ --load-balancing-scheme EXTERNAL \ --ip-protocol PROTOCOL \ --ports ALL \ --ip-version IPV6 \ --region REGION_A \ --address IPV6_CIDR_RANGE \ --backend-service BACKEND_SERVICE \ --ip-collection PDP_NAME
다음을 바꿉니다.
FWD_RULE_NAME
: 전달 규칙의 이름입니다.PROTOCOL
: 전달 규칙의 IP 프로토콜입니다. 기본값은TCP
입니다. IP 프로토콜은TCP
,UDP
,L3_DEFAULT
중 하나일 수 있습니다.REGION_A
: 전달 규칙의 리전입니다.IPV6_CIDR_RANGE
: 전달 규칙에서 제공하는 IPv6 주소 범위. IPv6 주소 범위는 IPv6 하위 프리픽스 사양을 준수해야 합니다.BACKEND_SERVICE
: 백엔드 서비스 이름PDP_NAME
: 공개 위임 프리픽스 이름. PDP는 EXTERNAL_IPV6_FORWARDING_RULE_CREATION 모드의 하위 프리픽스여야 합니다.
다음 단계
- 외부 패스 스루 네트워크 부하 분산기를 대상 풀 백엔드에서 리전 백엔드 서비스로 마이그레이션하는 방법은 외부 패스 스루 네트워크 부하 분산기를 대상 풀에서 백엔드 서비스로 마이그레이션을 참조하세요.
- 여러 IP 프로토콜(IPv4 및 IPv6 트래픽 지원)에 대해 외부 패스 스루 네트워크 부하 분산기를 구성하려면 여러 IP 프로토콜용 외부 패스 스루 네트워크 부하 분산기 설정을 참조하세요.
- VM 인스턴스의
nic0
이외의 네트워크 인터페이스로 패킷을 전달할 수 있게 해주는 영역별 네트워크 엔드포인트 그룹(NEG) 백엔드를 사용해서 외부 패스 스루 네트워크 부하 분산기를 구성하려면 영역별 NEG 백엔드를 사용하여 외부 패스 스루 네트워크 부하 분산기 설정을 참조하세요. - Google Cloud Armor를 사용하여 외부 패스 스루 네트워크 부하 분산기에 고급 네트워크 DDoS 보호를 구성하려면 고급 네트워크 DDoS 보호 구성을 참조하세요.
- 리소스를 삭제하려면 부하 분산기 설정 삭제를 참조하세요.