이 가이드에서는 예시를 사용해서 백엔드 서비스가 있는 외부 패스 스루 네트워크 부하 분산기에 대해 장애 조치를 구성하는 방법을 설명합니다. 이 가이드를 진행하기 전에 다음 사항을 숙지하세요.
권한
이 가이드를 수행하려면 프로젝트에서 인스턴스를 만들고 네트워크를 수정해야합니다. 이렇게 하려면 프로젝트 소유자 또는 편집자이거나 다음 Compute Engine IAM 역할을 모두 보유해야 합니다.
작업 | 필요한 역할 |
---|---|
부하 분산기 구성요소 만들기 | 네트워크 관리자 |
방화벽 규칙 추가 및 삭제 | 보안 관리자 |
인스턴스 만들기 | Compute 인스턴스 관리자 |
자세한 내용은 다음 가이드를 참조하세요.
설정
이 가이드에서는 장애 조치를 사용하는 외부 패스 스루 네트워크 부하 분산기를 구성하고 테스트하는 방법을 보여줍니다. 이 섹션의 단계에서는 다음을 구성하는 방법을 설명합니다.
- 백엔드 VM:
us-west1-a
영역의 비관리형 인스턴스 그룹에 있는 하나의 기본 백엔드us-west1-c
영역의 비관리형 인스턴스 그룹에 있는 하나의 장애 조치 백엔드
- 백엔드 VM에 대한 수신 연결을 허용하는 방화벽 규칙
- 연결을 테스트하고 장애 조치 동작을 관찰하기 위한 하나의 클라이언트 VM
- 다음 외부 패스 스루 네트워크 부하 분산기 구성요소:
- 백엔드 서비스의 상태 점검
- 백엔드 VM 간의 연결 분산을 관리하기 위한
us-west1
리전의 백엔드 서비스 - 부하 분산기의 프런트엔드에 대한 전달 규칙 및 IP 주소
이 예시의 아키텍처는 다음과 같습니다.
백엔드 VM 및 인스턴스 그룹 만들기
이 단계에서는 백엔드 VM 및 비관리형 인스턴스 그룹을 만듭니다.
us-west1-a
의 인스턴스 그룹ig-a
는 2개의 VM이 있는 기본 백엔드입니다.vm-a1
vm-a2
us-west1-c
의 인스턴스 그룹ig-c
는 2개의 VM이 있는 장애 조치 백엔드입니다.vm-c1
vm-c2
명확히 설명하고 한 영역이 다운될 경우 장애 조치를 처리하기 위해 기본 및 장애 조치 백엔드는 별도의 영역에 배치됩니다.
각 기본 및 백업 VM은 TCP 포트 80에서 Apache 웹 서버를 실행하도록 구성됩니다. 기본적으로 Apache는 임의의 IP 주소에 바인딩되도록 구성됩니다. 네트워크 부하 분산기는 대상 IP를 보존하여 패킷을 전달합니다.
기본 VM과 백업 VM에서 실행 중인 서버 소프트웨어가 부하 분산기 전달 규칙의 IP 주소에서 리슨하는지 확인합니다. 외부 패스스루 네트워크 부하 분산기가 백엔드 VM에 전달하는 패킷의 대상 IP 주소는 전달 규칙의 IP 주소입니다.
설명의 편의를 위해 모든 기본 및 백업 VM은 Debian GNU/Linux 9를 실행합니다.
콘솔
백엔드 VM 만들기
- Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다. VM 인스턴스로 이동
- 다음 단계를 반복하여 다음 이름 및 영역 조합으로 4개의 VM을 만듭니다.
- 이름:
vm-a1
, 영역:us-west1-a
- 이름:
vm-a2
, 영역:us-west1-a
- 이름:
vm-c1
, 영역:us-west1-c
- 이름:
vm-c2
, 영역:us-west1-c
- 이름:
- 인스턴스 만들기를 클릭합니다.
- 이름을 2단계에 표시된 대로 설정합니다.
- 리전의 경우
us-west1
을 선택하고 2단계에 표시된 대로 영역을 선택합니다. - 부팅 디스크 섹션에서 선택한 이미지가 Debian GNU/Linux 10(buster)인지 확인합니다. 필요한 경우 선택을 클릭하여 이미지를 변경합니다.
- 고급 옵션을 클릭합니다.
- 네트워킹을 클릭하고 다음 필드를 구성합니다.
- 네트워크 태그에
network-lb
를 입력합니다.
- 네트워크 태그에
관리를 클릭합니다. 시작 스크립트 필드에 다음 스크립트를 입력합니다. 스크립트 콘텐츠는 4개의 모든 VM에서 동일합니다.
#! /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 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
다음 조합을 사용해 다음 단계를 반복하여 각각 VM이 2개 있는 비관리형 인스턴스 그룹 2개를 만듭니다.
- 인스턴스 그룹:
ig-a
, 영역:us-west1-a
, VM:vm-a1
및vm-a2
- 인스턴스 그룹:
ig-c
, 영역:us-west1-c
, VM:vm-c1
및vm-c2
- 인스턴스 그룹:
인스턴스 그룹 만들기를 클릭합니다.
새 비관리형 인스턴스 그룹을 클릭합니다.
이름을 2단계에 표시된 대로 설정합니다.
위치 섹션에서 리전으로
us-west1
을 선택한 다음 2단계에 설명된 대로 영역을 선택합니다.네트워크에
default
를 입력합니다.VM 인스턴스 섹션에서 2단계에 표시된 대로 VM을 추가합니다.
만들기를 클릭합니다.
gcloud
VM-NAME
및ZONE
에 이러한 4개의 조합을 사용하여 다음 명령어를 4번 실행하고 4개의 VM을 만듭니다. 스크립트 콘텐츠는 4개의 모든 VM에서 동일합니다.vm-a1
중VM-NAME
및us-west1-a
중ZONE
vm-a2
중VM-NAME
및us-west1-a
중ZONE
vm-c1
중VM-NAME
및us-west1-c
중ZONE
vm-c2
중VM-NAME
및us-west1-c
중ZONE
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=network-lb \ --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'
각 영역에서 다음과 같이 비관리형 인스턴스 그룹 2개를 만듭니다.
gcloud compute instance-groups unmanaged create ig-a \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone us-west1-c
VM을 적절한 인스턴스 그룹에 추가합니다.
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone us-west1-a \ --instances vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone us-west1-c \ --instances vm-c1,vm-c2
방화벽 규칙 구성
외부 트래픽이 백엔드 인스턴스에 도달하도록 허용하는 방화벽 규칙을 만듭니다.
콘솔
Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.
방화벽 규칙 만들기를 클릭하여 모든 소스의 트래픽을 허용하는 규칙을 만듭니다. 다음 값을 사용합니다.
- 이름:
allow-network-lb
. - 네트워크:
default
- 우선순위:
1000
- 트래픽 방향: 인그레스
- 일치 시 작업: 허용
- 대상: 지정된 대상 태그
- 대상 태그:
network-lb
- 소스 필터: IPv4 범위
- 소스 IPv4 범위:
0.0.0.0/0
. 모든 소스의 트래픽을 허용합니다. 이렇게 하면 외부 트래픽 및 상태 점검 프로브가 백엔드 인스턴스에 도달할 수 있습니다. - 프로토콜 및 포트: 지정된 프로토콜 및 포트를 선택합니다.
TCP 체크박스를 선택하고
80
을 입력합니다.
- 이름:
만들기를 클릭합니다.
방화벽 규칙 만들기를 다시 클릭하여 인스턴스로 들어오는 SSH 연결을 허용하는 규칙을 만듭니다. 다음 값을 사용합니다.
- 이름:
allow-ssh
- 네트워크:
default
- 우선순위:
1000
- 트래픽 방향: 인그레스
- 일치 시 작업: 허용
- 대상: 지정된 대상 태그
- 대상 태그:
network-lb
- 소스 필터: IPv4 범위
- 소스 IPv4 범위:
0.0.0.0/0
- 프로토콜 및 포트: 지정된 프로토콜 및 포트를 선택합니다.
TCP 체크박스를 선택하고
22
을 입력합니다.
- 이름:
만들기를 클릭합니다.
gcloud
gcloud compute firewall-rules create allow-network-lb \ --target-tags network-lb \ --allow tcp:80
gcloud compute firewall-rules create allow-ssh \ --target-tags network-lb \ --allow tcp:22
부하 분산기 구성요소 구성
이 단계에서는 다음과 같은 외부 패스스루 네트워크 부하 분산기 구성요소를 구성합니다.
상태 점검: 이 예시에서는 HTTP
200
(OK) 응답만 확인하는 HTTP 상태 점검을 사용합니다.백엔드 서비스: 예시에서 부하 분산기를 통해 HTTP 트래픽을 전달하므로 구성은 UDP가 아닌 TCP를 지정합니다. 장애 조치를 설명하기 위해 이 백엔드 서비스의 장애 조치율은
0.75
입니다.전달 규칙: 이 예시에서는 하나의 전달 규칙을 만듭니다.
콘솔
구성 시작
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
- 부하 분산기 만들기를 클릭합니다.
- 부하 분산기 유형에 네트워크 부하 분산기(TCP/UDP/SSL)를 선택하고 다음을 클릭합니다.
- 프록시 또는 패스 스루에 패스 스루 부하 분산기를 선택하고 다음을 클릭합니다.
- 공개 또는 내부에 공개(외부)를 선택하고 다음을 클릭합니다.
- 구성을 클릭합니다.
백엔드 구성
- 외부 패스 스루 네트워크 부하 분산기 만들기 페이지에서 새 부하 분산기에 대해 이름을
tcp-network-lb
로 입력합니다. - 백엔드 구성을 클릭합니다. 이전에 입력한 부하 분산기 이름이 나타나지만 수정할 수 없습니다.
- 백엔드 구성을 클릭하고 다음과 같이 변경합니다.
- 리전에 us-west1을 선택합니다.
- 백엔드에서 인스턴스 그룹 드롭다운 메뉴를 사용하여
ig-a
를 선택합니다. 완료를 클릭합니다. - 백엔드 추가를 클릭하고 이 단계를 반복하여
ig-c
를 추가합니다. 이 인스턴스 그룹을 백업용 장애 조치 그룹으로 사용 체크박스를 선택합니다. - 상태 점검에서 다른 상태 점검 만들기 또는 다른 상태 점검 만들기를 선택하고 다음 정보를 입력합니다.
- 이름:
hc-http-80
- 프로토콜:
TCP
- 포트:
80
- 이름:
- 저장 후 계속을 클릭합니다.
- 고급 구성을 클릭합니다.
- 장애 조치율에
0.75
를 입력합니다. - 계속하기 전에 백엔드 구성 옆에 파란색 체크표시가 있는지 확인합니다.
프런트엔드 구성
- 프런트엔드 구성을 클릭합니다.
network-lb-forwarding-rule
의 이름을 입력합니다.- IP에서 드롭다운 메뉴를 클릭하고 IP 주소 만들기를 선택합니다.
- 새 고정 IP 주소 예약 화면에서 이름에
network-lb-ip
을 할당합니다. - 예약을 클릭합니다.
- 새 고정 IP 주소 예약 화면에서 이름에
- 단일을 선택하고 포트 번호에
80
을 입력합니다. 완료 버튼을 클릭합니다.
프런트엔드 구성 왼쪽의 체크 표시가 있는 파란색 원은 설정이 완료되었음을 나타냅니다.
구성 검토
- 검토 및 완료 버튼을 클릭하여 부하 분산기의 모든 구성 설정을 확인합니다.
설정이 올바르면 만들기를 클릭합니다. 부하 분산기를 만들려면 몇 분 정도 걸립니다.
부하 분산 화면의 새 부하 분산기에 대한 백엔드 열에 새 부하 분산기가 정상임을 나타내는 녹색 확인 표시가 나타납니다.
gcloud
부하 분산기의 고정 외부 IP 주소 만들기
gcloud compute addresses create network-lb-ip \ --region us-west1
새 HTTP 상태 점검을 만들어 80에서 VM에 대한 TCP 연결을 테스트합니다.
gcloud compute health-checks create http hc-http-80 \ --region us-west1 \ --port 80
HTTP 트래픽에 대한 백엔드 서비스를 만듭니다.
gcloud compute backend-services create network-lb-backend-service \ --protocol tcp \ --region us-west1 \ --health-checks hc-http-80 \ --health-checks-region us-west1 \ --failover-ratio 0.75
기본 백엔드를 백엔드 서비스에 추가합니다.
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-a \ --instance-group-zone us-west1-a
백엔드 서비스에 장애 조치 백엔드를 추가합니다.
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-c \ --instance-group-zone us-west1-c \ --failover
백엔드 서비스에 대한 전달 규칙을 만듭니다. 1단계에서 예약된 IP 주소를 부하 분산기의 고정 외부 IP 주소로 사용합니다.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --region us-west1 \ --load-balancing-scheme external \ --address network-lb-ip\ --ports 80 \ --backend-service network-lb-backend-service
테스트
이 테스트는 부하 분산기 구성을 확인하고 예상되는 동작을 확인하는 방법을 보여줍니다.
부하 분산기로 트래픽 전송
이 절차는 외부 트래픽을 부하 분산기로 전송합니다. 이 절차에 따라 다른 테스트를 완료합니다.
클라이언트 VM 인스턴스에 연결합니다.
gcloud compute forwarding-rules describe network-lb-forwarding-rule \ --region us-west1
curl
을 사용하여 부하 분산기에 대한 웹 요청을 만들어 IP 주소에 연결합니다.curl http://IP_ADDRESS
curl
명령어에서 반환된 텍스트를 확인합니다. 응답을 생성하는 백엔드 VM의 이름은 해당 텍스트에 표시됩니다(예:Page served from: vm-a1
).
초기 상태 테스트
예시 부하 분산기를 구성한 후에는 4개의 백엔드 VM 모두 정상 상태여야 합니다.
- 2개의 기본 VM,
vm-a1
및vm-a2
- 2개의 백업 VM,
vm-c1
및vm-c2
테스트 절차에 따라 트래픽을 부하 분산기로 전송합니다.
두 번째 단계를 몇 번 반복합니다. 2개의 기본 VM인 vm-a1
및 vm-a2
는 모두 정상 상태이므로 예상되는 동작은 두 기본 VM이 트래픽을 제공하는 것입니다. 이 부하 분산기에 구성된 세션 어피니티가 없으므로 각 기본 VM이 응답의 약 절반을 제공합니다.
장애 조치 테스트
이 테스트에서는 장애 조치 동작을 관찰할 수 있도록 vm-a1
의 장애를 시뮬레이션합니다.
vm-a1
VM에 연결합니다.gcloud compute ssh vm-a1 --zone us-west1-a
Apache 웹 서버를 중지합니다. 10초 후 Google Cloud는 이 VM을 비정상으로 간주합니다. (설정에서 만든
hc-http-80
상태 점검의 기본 확인 간격은 5초이며 비정상 임곗값은 2회 연속 프로브 실패입니다.)sudo apachectl stop
테스트 절차에 따라 트래픽을 부하 분산기로 전송합니다. 두 번째 단계를 몇 번 반복합니다. 예상되는 동작은 2개의 백업 VM
vm-c1
및vm-c2
에서 트래픽을 제공하는 것입니다. 기본 VM은vm-a2
만 정상이므로 총 기본 VM 대비 정상 기본 VM의 비율은0.5
입니다. 이 값은 장애 조치 임곗값0.75
보다 작으므로 Google Cloud는 부하 분산기의 활성 풀을 재구성하여 백업 VM을 사용했습니다. 이 부하 분산기에 대해 세션 어피니티가 구성되지 않은 한 각 백업 VM이 약 절반의 응답을 제공합니다.
장애 복구 테스트
이 테스트는 vm-a1
에서 Apache 서버를 다시 시작하여 장애 복구를 시뮬레이션합니다.
vm-a1
VM에 연결합니다.gcloud compute ssh vm-a1 --zone us-west1-a
Apache 웹 서버를 시작하고 10초 동안 기다립니다.
sudo apachectl start
클라이언트 테스트 절차를 따릅니다. 두 번째 단계를 몇 번 반복합니다. 예상되는 동작은 2개의 기본 VM
vm-a1
및vm-a2
에서 트래픽을 제공하는 것입니다. 두 기본 VM 모두 정상 상태이므로 총 기본 VM 대비 정상 기본 VM의 비율이1.0
이고 이는 장애 조치 임곗값인0.75
보다 크므로 Google Cloud는 다시 기본 VM을 사용하도록 활성 풀을 구성했습니다.
백엔드 VM 추가
이 섹션에서는 부하 분산기에 기본 및 백업 VM을 더 추가하여 구성 예시를 확장합니다. 같은 리전의 여러 영역에 기본 및 백업 VM을 배포할 수 있음을 보여주기 위해 2개의 백엔드 인스턴스 그룹을 추가로 만듭니다.
us-west1-c
의 세 번째 인스턴스 그룹ig-d
는 2개의 VM이 있는 기본 백엔드 역할을 합니다.vm-d1
vm-d2
us-west1-a
의 네 번째 인스턴스 그룹ig-b
는 2개의 VM이 있는 장애 조치 백엔드 역할을 합니다.vm-b1
vm-b2
이 예시의 수정된 아키텍처는 다음과 같습니다.
추가 VM 및 인스턴스 그룹 만들기
다음 단계에 따라 기본 및 백업 VM과 해당 비관리형 인스턴스 그룹을 추가로 만듭니다.
콘솔
백엔드 VM 만들기
Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
다음 단계를 반복하여 다음 이름 및 영역 조합으로 4개의 VM을 만듭니다.
- 이름:
vm-b1
, 영역:us-west1-a
- 이름:
vm-b2
, 영역:us-west1-a
- 이름:
vm-d1
, 영역:us-west1-c
- 이름:
vm-d2
, 영역:us-west1-c
- 이름:
인스턴스 만들기를 클릭합니다.
이름을 2단계에 표시된 대로 설정합니다.
리전의 경우
us-west1
을 선택하고 2단계에 표시된 대로 영역을 선택합니다.부팅 디스크 섹션에서 선택한 이미지가 Debian GNU/Linux 9 Stretch인지 확인합니다. 필요한 경우 선택을 클릭하여 이미지를 변경합니다.
고급 옵션을 클릭합니다.
네트워킹을 클릭하고 다음 필드를 구성합니다.
- 네트워크 태그에
network-lb
를 입력합니다.
- 네트워크 태그에
관리를 클릭합니다. 시작 스크립트 필드에 다음 스크립트를 입력합니다. 스크립트 콘텐츠는 4개의 모든 VM에서 동일합니다.
#! /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 콘솔에서 인스턴스 그룹 페이지로 이동합니다.
이러한 조합을 사용하여 각각 VM이 2개 있는 비관리형 인스턴스 그룹 2개를 만들려면 다음 단계를 반복합니다.
- 인스턴스 그룹:
ig-b
, 영역:us-west1-a
, VM:vm-b1
및vm-b2
- 인스턴스 그룹:
ig-d
, 영역:us-west1-c
, VM:vm-d1
및vm-d2
- 인스턴스 그룹:
인스턴스 그룹 만들기를 클릭합니다.
새 비관리형 인스턴스 그룹을 클릭합니다.
이름을 2단계에 표시된 대로 설정합니다.
위치 섹션에서 리전으로
us-west1
을 선택한 다음 2단계에 설명된 대로 영역을 선택합니다.네트워크에
default
를 입력합니다.VM 인스턴스 섹션에서 2단계에 표시된 대로 VM을 추가합니다.
만들기를 클릭합니다.
gcloud
VM-NAME
및ZONE
에 이러한 4개의 조합을 사용하여 다음 명령어를 4번 실행하고 4개의 VM을 만듭니다. 스크립트 콘텐츠는 4개의 모든 VM에서 동일합니다.vm-b1
중VM-NAME
및us-west1-a
중ZONE
vm-b2
중VM-NAME
및us-west1-a
중ZONE
vm-d1
중VM-NAME
및us-west1-c
중ZONE
vm-d2
중VM-NAME
및us-west1-c
중ZONE
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=network-lb \ --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'
각 영역에서 다음과 같이 비관리형 인스턴스 그룹 2개를 만듭니다.
gcloud compute instance-groups unmanaged create ig-b \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-d \ --zone us-west1-c
VM을 적절한 인스턴스 그룹에 추가합니다.
gcloud compute instance-groups unmanaged add-instances ig-b \ --zone us-west1-a \ --instances vm-b1,vm-b2 gcloud compute instance-groups unmanaged add-instances ig-d \ --zone us-west1-c \ --instances vm-d1,vm-d2
기본 백엔드 추가
이 절차를 기존 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에 기본 백엔드로 비관리형 인스턴스 그룹을 추가하기 위한 템플릿으로 사용할 수 있습니다. 예시 구성에서 이 절차는 인스턴스 그룹 ig-d
를 기본 백엔드로 network-lb
부하 분산기에 추가하는 방법을 보여줍니다.
콘솔
부하 분산기 구성을 수정하여 기본 백엔드를 추가합니다.
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
수정할 부하 분산기를 클릭합니다.
수정을 클릭합니다.
백엔드 구성을 클릭하고 다음과 같이 변경합니다.
- 백엔드에서 백엔드 추가를 클릭합니다.
- 드롭다운에서 기본 백엔드로 추가할 인스턴스 그룹을 선택합니다. 이 경우
ig-d
입니다. - 완료를 클릭합니다.
- 계속하기 전에 백엔드 구성 옆에 파란색 체크표시가 있는지 확인합니다.
구성 검토
- 검토 및 완료 버튼을 클릭하고 백엔드 아래에 새 기본 백엔드가 표시되는지 확인합니다.
설정이 올바르면 만들기를 클릭합니다. 부하 분산기를 만들려면 몇 분 정도 걸립니다.
부하 분산 화면의 새 부하 분산기에 대한 백엔드 열에 새 부하 분산기가 정상임을 나타내는 녹색 확인 표시가 나타납니다.
gcloud
다음 gcloud
명령어를 사용하여 기존 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에 기본 백엔드를 추가합니다.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION
각 항목의 의미는 다음과 같습니다.
BACKEND_SERVICE_NAME
은 부하 분산기의 백엔드 서비스 이름입니다. 예를 들어network-lb-backend-service
를 사용합니다.INSTANCE_GROUP_NAME
은 기본 백엔드로 추가할 인스턴스 그룹의 이름입니다. 예를 들어ig-d
를 사용합니다.INSTANCE_GROUP_ZONE
은 인스턴스 그룹이 정의된 영역입니다. 예를 들어us-west1-c
를 사용합니다.REGION
은 부하 분산기의 리전입니다. 예를 들어us-west1
을 사용합니다.
장애 조치 백엔드 추가
이 절차를 기존 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에 장애 조치 백엔드로 비관리형 인스턴스 그룹을 추가하기 위한 템플릿으로 사용할 수 있습니다. 예시 구성에서 이 절차는 인스턴스 그룹 ig-b
를 장애 조치 백엔드로 network-lb
부하 분산기에 추가하는 방법을 보여줍니다.
콘솔
부하 분산기 구성을 수정하여 기본 백엔드를 추가합니다.
Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.
수정할 부하 분산기를 클릭합니다.
수정을 클릭합니다.
백엔드 구성을 클릭하고 다음과 같이 변경합니다.
- 백엔드에서 백엔드 추가를 클릭합니다.
- 드롭다운에서 장애 조치 백엔드로 추가할 인스턴스 그룹을 선택합니다. 이 경우
ig-b
입니다. - 이 인스턴스 그룹을 백업용 장애 조치 그룹으로 사용 체크박스를 선택합니다.
- 완료를 클릭합니다.
- 계속하기 전에 백엔드 구성 옆에 파란색 체크표시가 있는지 확인합니다.
구성 검토
- 검토 및 완료 버튼을 클릭하고 백엔드 아래에 새 기본 백엔드가 표시되는지 확인합니다.
설정이 올바르면 만들기를 클릭합니다. 부하 분산기를 만들려면 몇 분 정도 걸립니다.
부하 분산 화면의 새 부하 분산기에 대한 백엔드 열에 새 부하 분산기가 정상임을 나타내는 녹색 확인 표시가 나타납니다.
gcloud
다음 gcloud
명령어를 사용하여 기존 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에 장애 조치 백엔드를 추가합니다.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
각 항목의 의미는 다음과 같습니다.
BACKEND_SERVICE_NAME
은 부하 분산기의 백엔드 서비스 이름입니다. 예를 들어network-lb-backend-service
를 사용합니다.INSTANCE_GROUP_NAME
은 장애 조치 백엔드로 추가할 인스턴스 그룹의 이름입니다. 예를 들어ig-b
를 사용합니다.INSTANCE_GROUP_ZONE
은 인스턴스 그룹이 정의된 영역입니다. 예를 들어us-west1-a
를 사용합니다.REGION
은 부하 분산기의 리전입니다. 예를 들어us-west1
을 사용합니다.
기본 또는 장애 조치 백엔드 변환
외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에서 인스턴스 그룹을 삭제하지 않고도 기본 백엔드를 장애 조치 백엔드로 또는 그 반대로 변환할 수 있습니다.
gcloud
다음 gcloud
명령어를 사용하여 기존 기본 백엔드를 장애 조치 백엔드로 변환합니다.
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
다음 gcloud
명령어를 사용하여 기존 장애 조치 백엔드를 기본 백엔드로 변환합니다.
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --no-failover
각 항목의 의미는 다음과 같습니다.
BACKEND_SERVICE_NAME
은 부하 분산기의 백엔드 서비스 이름입니다.INSTANCE_GROUP_NAME
은 인스턴스 그룹 이름입니다.INSTANCE_GROUP_ZONE
은 인스턴스 그룹이 정의된 영역입니다.REGION
은 부하 분산기의 리전입니다.
장애 조치 정책 구성
이 섹션에서는 외부 패스 스루 네트워크 부하 분산기의 백엔드 서비스에 대해 장애 조치 정책을 관리하는 방법을 설명합니다. 장애 조치 정책은 다음으로 구성됩니다.
- 장애 조치율
- 모든 백엔드 VM이 비정상적인 경우 트래픽 차단
- 장애 조치 시 연결 드레이닝
장애 조치 정책의 매개 변수에 대한 자세한 내용은 다음을 참조하세요.
장애 조치 정책 정의
다음 안내에서는 기존 외부 패스 스루 네트워크 부하 분산기의 장애 조치 정책을 정의하는 방법을 설명합니다.
gcloud
gcloud CLI를 사용하여 장애 조치 정책을 정의하려면 부하 분산기의 백엔드 서비스를 업데이트합니다.
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION \ --failover-ratio FAILOVER_RATIO \ --connection-drain-on-failover \ --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \ --drop-traffic-if-unhealthy
각 항목의 의미는 다음과 같습니다.
BACKEND_SERVICE_NAME
은 부하 분산기의 백엔드 서비스 이름입니다. 예를 들어network-lb
를 사용합니다.REGION
은 부하 분산기의 리전입니다. 예를 들어us-west1
을 사용합니다.FAILOVER_RATIO
는 장애 조치율입니다. 가능한 값은0.0
이상1.0
이하입니다. 예를 들어0.75
를 사용합니다.CONNECTION_DRAINING_TIMEOUT
을 사용하면 연결 드레이닝 제한 시간 동안 더 이상 활성 풀에 없는 VM에서도 TCP 연결을 유지할 수 있습니다.
장애 조치 정책 보기
다음 안내에서는 외부 패스 스루 네트워크 부하 분산기의 기존 장애 조치 정책을 보는 방법을 설명합니다.
gcloud
gcloud CLI를 사용하여 장애 조치 정책 설정을 나열하려면 다음 명령어를 사용합니다. 장애 조치 정책의 정의되지 않은 설정은 기본 장애 조치 정책 값을 사용합니다.
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION \ --format="get(failoverPolicy)"
각 항목의 의미는 다음과 같습니다.
BACKEND_SERVICE_NAME
은 부하 분산기의 백엔드 서비스 이름입니다. 예를 들어network-lb-backend-service
를 사용합니다.REGION
은 부하 분산기의 리전입니다. 예를 들어us-west1
을 사용합니다.
다음 단계
- 중요한 기본 사항은 외부 패스 스루 네트워크 부하 분산기 개요를 참조하세요.
- 장애 조치에 대한 중요한 정보는 외부 패스 스루 네트워크 부하 분산기의 장애 조치 개념을 참조하세요.
- 구성 예시는 외부 패스 스루 네트워크 부하 분산기 설정을 참조하세요.