프록시 네트워크 부하 분산기를 IPv6로 변환

이 문서에서는 프록시 네트워크 부하 분산기 리소스와 백엔드를 IPv4 전용(단일 스택)에서 IPv4 및 IPv6(이중 스택)로 변환하는 방법을 보여줍니다. 이 문서에서 IPv4 전용(단일 스택)은 IPv4 주소만 사용하는 리소스를 의미하고 IPv4 및 IPv6(이중 스택)은 IPv4와 IPv6 주소를 모두 사용하는 리소스를 의미합니다.

이 문서의 안내는 SSL 프록시와 TCP 프록시 네트워크 부하 분산기 모두에 적용됩니다.

이점

부하 분산기를 이중 스택으로 변환하면 몇 가지 주요 이점이 있습니다.

  • IPv6의 주요 장점은 훨씬 큰 IP 주소 풀을 할당할 수 있다는 것입니다.

  • 이미 IPv4 전용 부하 분산기를 사용하고 있는 많은 고객은 클라우드 관련 메서드를 활용하고 IPv4 전용 지원 백엔드에서 IPv4 및 IPv6(이중 스택) 백엔드로 변환하여 한 단계 더 나아갈 수 있습니다.

  • 필요에 따라 인그레스 IPv6 트래픽을 종료하고 IPv4 또는 IPv6 연결을 통해 이 트래픽을 백엔드로 프록시하도록 부하 분산기를 구성할 수 있습니다. 자세한 내용은 IPv6를 참조하세요.

제한사항

  • 서브넷의 IP 스택 유형을 IPv4 및 IPv6(이중 스택)에서 IPv4 전용으로 업데이트할 수 없습니다.

  • 백엔드 서비스에서 IP 주소 선택 정책을 IPv6 전용으로 구성하는 경우에도 IPv4 전용 백엔드를 구성할 수 있습니다. 그러나 이러한 구성으로 인해 백엔드가 비정상이 되고 클라이언트가 응답 코드 503을 받게 되며 트래픽이 업스트림으로 흐르지 않습니다. 로그에서는 statusDetailsfailed_to_pick_backend를 보여줍니다.

  • 백엔드 서비스의 IP 주소 선택 정책을 IPv6으로만 구성할 수 있지만 백엔드의 IP 스택 유형은 항상 IPv4 및 IPv6(이중 스택)입니다.

  • VM 인스턴스 그룹 백엔드와 GCE_VM_IP_PORT 엔드포인트가 있는 영역 네트워크 엔드포인트 그룹(NEG)만 IPv4 및 IPv6(이중 스택)를 지원합니다.

  • 리전 간 내부 프록시 네트워크 부하 분산기, 리전 외부 프록시 네트워크 부하 분산기, 리전 내부 프록시 네트워크 부하 분산기는 IPv6를 사용하는 전달 규칙을 지원하지 않습니다. 인그레스 IPv4 트래픽은 IPv4 또는 IPv6 연결을 통해 이중 스택 백엔드로 프록시됩니다.

  • 기본 프록시 네트워크 부하 분산기는 이중 스택 백엔드를 지원하지 않습니다. 부하 분산기는 IPv6 클라이언트에서 수신한 인그레스 IPv6 트래픽을 종료하고 IPv4 연결을 통해 이 트래픽을 IPv4 백엔드로 프록시합니다.

시작하기 전에

인스턴스 그룹 또는 영역별 네트워크 엔드포인트 그룹(NEG) 백엔드가 있는 IPv4 전용 스택을 사용하여 SSL 프록시나 TCP 프록시 네트워크 부하 분산기를 이미 설정했어야 합니다.

전역 외부 프록시 네트워크 부하 분산기를 설정하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

리전 외부 프록시 네트워크 부하 분산기를 설정하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

리전 간 내부 프록시 네트워크 부하 분산기를 설정하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

리전 내부 프록시 네트워크 부하 분산기를 설정하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

변환할 리소스 식별

부하 분산기가 연결된 리소스 이름을 확인합니다. 이 이름은 나중에 제공해야 합니다.

  1. 모든 서브넷을 나열하려면 gcloud compute networks subnets list 명령어를 사용합니다.

    gcloud compute networks subnets list
    

    이중 스택으로 변환할 IPv4 전용 스택이 있는 서브넷의 이름을 확인합니다. 이 이름을 이후에 SUBNET로 참조합니다. VPC 네트워크는 이후에 NETWORK로 참조합니다.

  2. 모든 백엔드 서비스를 나열하려면 gcloud beta compute backend-services list 명령어를 사용합니다.

    gcloud beta compute backend-services list
    

    이중 스택으로 변환할 백엔드 서비스의 이름을 확인합니다. 이 이름을 이후에 BACKEND_SERVICE로 참조합니다.

  3. 부하 분산기가 이미 있는 경우 백엔드의 IP 스택 유형을 보려면 gcloud compute instances list 명령어를 사용합니다.

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  4. 모든 VM 인스턴스와 인스턴스 템플릿을 나열하려면 gcloud compute instances list 명령어gcloud compute instance-templates list 명령어를 사용합니다.

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    이중 스택으로 변환할 인스턴스 및 인스턴스 템플릿의 이름을 기록해 둡니다. 이 이름을 이후에 VM_INSTANCEINSTANCE_TEMPLATES로 참조합니다.

  5. 모든 영역별 NEG를 나열하려면 gcloud compute network-endpoint-groups list 명령어를 사용합니다.

    gcloud compute network-endpoint-groups list
    

    이중 스택으로 변환할 네트워크 엔드포인트 그룹의 이름을 확인합니다. 이 이름을 이후에 ZONAL_NEG로 참조합니다.

  6. 모든 대상 SSL 프록시를 나열하려면 gcloud compute target-ssl-proxies list 명령어를 사용합니다.

    gcloud compute target-ssl-proxies list
    

    부하 분산기와 연결된 대상 프록시의 이름을 기록해 둡니다. 이 이름을 이후에 TARGET_PROXY로 참조합니다.

  7. 모든 대상 TCP 프록시를 나열하려면 gcloud compute target-tcp-proxies list 명령어를 사용합니다.

    gcloud compute target-tcp-proxies list
    

    부하 분산기와 연결된 대상 프록시의 이름을 기록해 둡니다. 이 이름을 이후에 TARGET_PROXY로 참조합니다.

단일 스택에서 이중 스택 백엔드로 변환

이 섹션에서는 IPv4 전용(단일 스택) 주소를 사용하여 부하 분산기 리소스와 백엔드를 IPv4 및 IPv6(이중 스택) 주소로 변환하는 방법을 보여줍니다.

서브넷 업데이트

이중 스택 서브넷은 커스텀 모드 VPC 네트워크에서만 지원됩니다. 이중 스택 서브넷은 자동 모드 VPC 네트워크 또는 기존 네트워크에서 지원되지 않습니다. 초기 탐색에는 자동 모드 네트워크가 유용하지만 대부분의 프로덕션 환경에는 커스텀 모드 VPC가 더 적합합니다. 커스텀 모드에서 VPC를 사용하는 것이 좋습니다.

VPC를 이중 스택 설정으로 업데이트하려면 다음 단계를 따르세요.

  1. 자동 모드 VPC 네트워크를 사용하는 경우 먼저 자동 모드 VPC 네트워크를 커스텀 모드로 변환해야 합니다.

  2. IPv6를 사용 설정하려면 서브넷의 스택 유형을 이중 스택으로 변경을 참조하세요.

  3. 선택사항: 이 네트워크에서 서브넷에 내부 IPv6 주소 범위를 구성하려면 다음 단계를 완료합니다.

    1. VPC 네트워크 ULA 내부 IPv6 범위에서 사용 설정됨을 선택합니다.
    2. 내부 IPv6 범위 할당에 대해 자동 또는 수동을 선택합니다.

      수동을 선택한 경우 fd20::/20 범위 내에서 /48 범위를 입력합니다. 범위가 사용 중인 경우 다른 범위를 제공하라는 메시지가 표시됩니다.

프록시 전용 서브넷 업데이트

Envoy 기반 부하 분산기를 사용하는 경우 프록시 전용 서브넷 스택 유형을 이중 스택으로 변경하는 것이 좋습니다. 프록시 전용 서브넷을 지원하는 부하 분산기에 대한 자세한 내용은 지원되는 부하 분산기를 참조하세요.

프록시 전용 서브넷의 스택 유형을 이중 스택으로 변경하려면 다음을 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 세부정보 페이지를 보려면 네트워크 이름을 클릭합니다.

  3. 서브넷 탭을 클릭합니다.

  4. 부하 분산을 위해 예약된 프록시 전용 서브넷 섹션에서 수정하려는 프록시 전용 서브넷의 이름을 클릭합니다.

  5. 서브넷 세부정보 페이지에서 수정 을 클릭합니다.

  6. IP 스택 유형IPv4 및 IPv6(이중 스택)을 선택합니다. IPv6 액세스 유형내부입니다.

  7. 저장을 클릭합니다.

gcloud

subnets update 명령어를 사용합니다.

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

다음을 바꿉니다.

  • PROXY_ONLY_SUBNET: 프록시 전용 서브넷의 이름입니다.
  • REGION: 서브넷의 리전입니다.
  • IPv6_ACCESS_TYPE: 서브넷의 IPv6 액세스 유형은 INTERNAL입니다.

VM 인스턴스 또는 템플릿 업데이트

VM이 연결된 서브넷에 IPv6 범위가 구성되어 있으면 VM 인스턴스에서 IPv6 주소를 구성할 수 있습니다. 다음 백엔드만 IPv6 주소를 지원할 수 있습니다.

  • 인스턴스 그룹 백엔드: 관리형, 비관리형 또는 관리형과 비관리형 조합의 인스턴스 그룹 백엔드 하나 이상
  • 영역별 NEG: GCE_VM_IP_PORT 유형의 영역별 NEG 하나 이상

VM 인스턴스 업데이트

관리형 또는 비관리형 인스턴스 그룹에 속한 VM 인스턴스는 편집할 수 없습니다. VM 인스턴스를 이중 스택으로 업데이트하려면 다음 단계를 수행합니다.

  1. 그룹에서 특정 인스턴스 삭제
  2. 이중 스택 VM 만들기
  3. MIG에서 특정 이름을 사용해 인스턴스 만들기

VM 인스턴스 템플릿 업데이트

기존 인스턴스 템플릿을 업데이트할 수 없습니다. 변경해야 하는 경우에는 유사한 속성으로 또 다른 템플릿을 만들면 됩니다. VM 인스턴스 템플릿을 이중 스택으로 업데이트하려면 다음 단계를 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 템플릿 페이지로 이동합니다.

    인스턴스 템플릿으로 이동

    1. 복사하고 업데이트할 인스턴스 템플릿을 클릭합니다.
    2. 유사하게 만들기를 클릭합니다.
    3. 고급 옵션 섹션을 펼칩니다.
    4. 네트워크 태그allow-health-check-ipv6를 입력합니다.
    5. 네트워크 인터페이스 섹션에서 네트워크 인터페이스 추가를 클릭합니다.
    6. 네트워크 목록에서 커스텀 모드 VPC 네트워크를 선택합니다.
    7. 서브네트워크 목록에서 SUBNET를 선택합니다.
    8. IP 스택 유형IPv4 및 IPv6(이중 스택)을 선택합니다.
    9. 만들기를 클릭합니다.
  2. 부하 분산기와 연결된 관리형 인스턴스 그룹 MIG에서 기본 순차적 업데이트를 시작합니다.

영역별 NEG 업데이트

영역별 NEG 엔드포인트는 수정할 수 없습니다. IPv4 엔드포인트를 삭제하고 IPv4 및 IPv6 주소가 모두 포함된 새로운 이중 스택 엔드포인트를 만들어야 합니다.

REGION_A 리전에 GCE_VM_IP_PORT 유형 엔드포인트가 있는 영역별 NEG를 설정하려면 먼저 GCP_NEG_ZONE 영역에 VM을 만듭니다. 그런 다음 VM 네트워크 엔드포인트를 영역별 NEG에 추가합니다.

VM 만들기

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.

  3. 이름vm-a1로 설정합니다.

  4. 리전에서 REGION_A를 선택하고 영역 필드의 값을 선택합니다. 이 절차에서는 이 서브넷을 GCP_NEG_ZONE이라고 합니다.

  5. 부팅 디스크 섹션에서 부팅 디스크 옵션에 Debian GNU/Linux 12(bookworm)가 선택되어 있는지 확인합니다. 필요한 경우 선택을 클릭하여 이미지를 변경합니다.

  6. 고급 옵션 섹션을 펼치고 다음과 같이 변경합니다.

    • 네트워킹 섹션을 펼칩니다.
    • 네트워크 태그 필드에 allow-health-check를 입력합니다.
    • 네트워크 인터페이스 섹션에서 다음과 같이 변경합니다.
      • 네트워크: NETWORK
      • 서브넷: SUBNET
      • IP 스택 유형: IPv4 및 IPv6(이중 스택)
    • 완료를 클릭합니다.
    • 관리를 클릭합니다. 시작 스크립트 필드에 다음 스크립트 콘텐츠를 복사하여 붙여넣습니다.

      #! /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
      
  7. 만들기를 클릭합니다.

  8. 다음 이름 및 영역 조합을 사용하여 두 번째 VM을 만들려면 다음 단계를 반복합니다.

    • 이름: vm-a2, 영역: GCP_NEG_ZONE

gcloud

VM 이름과 해당 영역의 조합을 사용하여 다음 명령어를 두 번 실행해 VM을 만듭니다. 스크립트 콘텐츠는 두 VM 모두에서 동일합니다.

  • vm-a1VM_NAME 및 선택한 GCP_NEG_ZONE 영역
  • vm-a2VM_NAME 및 동일한 GCP_NEG_ZONE 영역

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --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'
    

영역별 NEG에 엔드포인트 추가

콘솔

엔드포인트를 영역별 NEG에 추가합니다.

  1. Google Cloud 콘솔에서 네트워크 엔드포인트 그룹 페이지로 이동합니다.

    네트워크 엔드포인트 그룹으로 이동

  2. 이름 목록에서 네트워크 엔드포인트 그룹 이름(ZONAL_NEG)을 클릭합니다. 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.

  3. 이 그룹의 네트워크 엔드포인트 섹션에서 이전에 만든 NEG 엔드포인트를 선택합니다. 엔드포인트 삭제를 클릭합니다.

  4. 이 그룹의 네트워크 엔드포인트 섹션에서 네트워크 엔드포인트 추가를 클릭합니다.

  5. VM 인스턴스를 선택합니다.

  6. 네트워크 인터페이스 섹션에 VM의 이름, 영역, 서브넷이 표시됩니다.

  7. IPv4 주소 필드에 새 네트워크 엔드포인트의 IPv4 주소를 입력합니다.

  8. IPv6 주소 필드에 새 네트워크 엔드포인트의 IPv6 주소를 입력합니다.

  9. 포트 유형을 선택합니다.

    1. 기본값을 선택하면 엔드포인트에서 네트워크 엔드포인트 그룹의 모든 엔드포인트에 기본 포트 80을 사용합니다. Apache 서버가 포트 80에서 요청을 처리하므로 이 예시에 충분합니다.
    2. 커스텀을 선택하면 사용할 엔드포인트의 포트 번호를 입력합니다.
  10. 엔드포인트를 추가하려면 네트워크 엔드포인트 추가를 클릭하고 이전 단계를 반복합니다.

  11. 엔드포인트를 모두 추가한 후 만들기를 클릭합니다.

gcloud

  1. 엔드포인트(GCE_VM_IP_PORT 엔드포인트)를 ZONAL_NEG에 추가합니다.

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

다음을 바꿉니다.

IPv4_ADDRESS: 네트워크 엔드포인트의 IPv4 주소. IPv4는 Compute Engine의 VM(기본 IP 또는 별칭 IP 범위의 일부)에 속해야 합니다. IP 주소가 지정되지 않으면 네트워크 엔드포인트 그룹이 속한 네트워크의 VM 인스턴스에 대한 기본 IP 주소가 사용됩니다.

IPv6_ADDRESS: 네트워크 엔드포인트의 IPv6 주소. IPv6 주소는 네트워크 엔드포인트 그룹이 속한 네트워크의 VM 인스턴스(외부 IPv6 주소)에 속해야 합니다.

IPv6 상태 점검 방화벽 규칙 만들기

부하 분산 중인 인스턴스에 적용할 수 있고 Google Cloud 상태 점검 시스템(2600:2d00:1:b029::/64)의 트래픽을 허용하는 인그레스 규칙이 있는지 확인합니다. 이 예시에서는 대상 태그 allow-health-check-ipv6를 사용하여 방화벽 규칙이 적용되는 VM 인스턴스를 식별합니다.

이 방화벽 규칙이 없으면 기본 거부 인그레스 규칙은 백엔드 인스턴스로 들어오는 IPv6 트래픽을 차단합니다.

콘솔

  1. Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.

    방화벽 정책으로 이동

  2. IPv6 서브넷 트래픽을 허용하려면 방화벽 규칙 만들기를 다시 클릭하고 다음 정보를 입력합니다.

    • 이름: fw-allow-lb-access-ipv6
    • 네트워크: NETWORK
    • 우선순위: 1000
    • 트래픽 방향: 인그레스
    • 대상: 지정된 대상 태그
    • 대상 태그: allow-health-check-ipv6
    • 소스 필터: IPv6 범위
    • 소스 IPv6 범위

      • 전역 외부 애플리케이션 부하 분산기와 전역 외부 프록시 네트워크 부하 분산기의 경우 2600:2d00:1:b029::/64, 2600:2d00:1:1::/64를 입력합니다.

      • 리전 간 내부 애플리케이션 부하 분산기, 리전 외부 애플리케이션 부하 분산기, 리전 내부 애플리케이션 부하 분산기, 리전 간 내부 프록시 네트워크 부하 분산기, 리전 외부 프록시 네트워크 부하 분산기, 리전 내부 프록시 네트워크 부하 분산기의 경우 2600:2d00:1:b029::/64를 입력합니다.

    • 프로토콜 및 포트: 모두 허용

  3. 만들기를 클릭합니다.

gcloud

  1. fw-allow-lb-access-ipv6 방화벽 규칙을 만들어 서브넷과의 통신을 허용합니다.

    전역 외부 애플리케이션 부하 분산기와 전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
        --rules=all
    

    리전 간 내부 애플리케이션 부하 분산기, 리전 외부 애플리케이션 부하 분산기, 리전 내부 애플리케이션 부하 분산기, 리전 간 내부 프록시 네트워크 부하 분산기, 리전 외부 프록시 네트워크 부하 분산기, 리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=all
    

프록시 전용 서브넷 방화벽 규칙 추가

Envoy 기반 부하 분산기를 사용하는 경우 프록시 전용 서브넷에서 백엔드로의 트래픽을 허용하도록 인그레스 방화벽 규칙 fw-allow-lb-access-ipv6를 업데이트합니다.

프록시 전용 서브넷에서 internalIpv6Prefix를 가져오려면 다음 명령어를 실행합니다.

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

내부 IPv6 주소를 나중에 IPv6_PROXY로 참조합니다.

프록시 전용 서브넷의 방화벽 규칙 fw-allow-lb-access-ipv6를 업데이트하려면 다음을 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.

    방화벽 정책으로 이동

  2. VPC 방화벽 규칙 패널에서 fw-allow-lb-access-ipv6를 클릭합니다.

    • 소스 IPv6 범위: 2600:2d00:1:b029::/64, IPv6_PROXY
  3. 저장을 클릭합니다.

gcloud

  1. 프록시 전용 서브넷과의 통신을 허용하려면 fw-allow-lb-access-ipv6 방화벽 규칙을 업데이트합니다.

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64,
          IPv6_PROXY \
    

백엔드 서비스 업데이트 및 IPv6 전달 규칙 만들기

이 섹션에서는 IP 주소 선택 정책Prefer IPv6로 사용하여 백엔드 서비스 BACKEND_SERVICE를 업데이트하고 영역별 NEG 백엔드를 추가하는 방법을 설명합니다.

전역 외부 프록시 네트워크 부하 분산기에만 IPv6를 사용하는 전달 규칙을 만들 수 있습니다. 리전 간 내부 프록시 네트워크 부하 분산기, 리전 외부 프록시 네트워크 부하 분산기, 리전 내부 프록시 네트워크 부하 분산기에서는 IPv6를 사용하는 전달 규칙이 지원되지 않습니다.

백엔드 서비스와 연결된 인스턴스 그룹이 있으면 인스턴스 그룹의 백엔드 서비스 업데이트를 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 부하 분산기 이름을 클릭합니다.

  3. 수정을 클릭합니다.

IPv6에 대한 백엔드 서비스 구성

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드 유형영역별 네트워크 엔드포인트 그룹을 선택합니다.
  3. IP 주소 선택 정책 목록에서 IPv6 우선 사용을 선택합니다.
  4. 프로토콜 필드에서 다음을 수행합니다.
    • TCP 프록시에서 TCP를 선택합니다.
    • SSL 프록시에서 SSL을 선택합니다.
  5. 백엔드 섹션에서 백엔드 추가를 클릭합니다.
  6. 새 백엔드 패널에서 다음을 수행합니다.
    • 네트워크 엔드포인트 그룹 목록에서 ZONAL_NEG를 선택합니다.
    • 최대 연결 수 필드에 10을 입력합니다.
  7. 완료를 클릭합니다.
  8. 상태 점검 목록에서 HTTP 상태 점검을 선택합니다.

IPv6 전달 규칙 구성

리전 간 내부 프록시 네트워크 부하 분산기, 리전 외부 프록시 네트워크 부하 분산기, 리전 내부 프록시 네트워크 부하 분산기에서는 IPv6를 사용하는 전달 규칙이 지원되지 않습니다.

  1. 프런트엔드 구성을 클릭합니다.
  2. 프런트엔드 IP 및 포트 추가를 클릭합니다.
  3. 이름 필드에 전달 규칙 이름을 입력합니다.
  4. 프로토콜 필드에서 다음을 수행합니다.
    • TCP 프록시에서 TCP를 선택합니다.
    • SSL 프록시에서 SSL을 선택합니다.
  5. IP 버전IPv6로 설정합니다.
  6. SSL 프록시의 인증서 목록에서 인증서를 선택합니다.
  7. 완료를 클릭합니다.
  8. 업데이트를 클릭합니다.

gcloud

  1. SSL 또는 TCP 트래픽의 백엔드 서비스를 업데이트합니다.

    전역

    전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=PREFER_IPV6 \
       --global
    

    리전 간 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=PREFER_IPV6 \
       --global
    

    리전

    리전 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=PREFER_IPV6 \
       --region=REGION
    

    리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=PREFER_IPV6 \
       --region=REGION
    
  2. 영역별 NEG를 백엔드로 백엔드 서비스에 추가합니다.

    전역

    전역 외부 프록시 네트워크 부하 분산기와 리전 간 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services add-backend BACKEND_SERVICE \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --global
    

    리전

    리전 외부 프록시 네트워크 부하 분산기와 리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services add-backend BACKEND_SERVICE \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --region=REGION
    
  3. 고객이 부하 분산기에 연결하는 데 사용하는 외부 IPv6 주소를 예약합니다.

    전역

    전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud compute addresses create lb-ipv6-1 \
       --ip-version=IPV6 \
       --network-tier=PREMIUM \
       --global
    
  4. SSL 프록시의 경우 백엔드 서비스의 전달 규칙을 만듭니다.

    gcloud beta compute target-ssl-proxies create TARGET_PROXY \
       --backend-service=BACKEND_SERVICE \
       --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \
       --ssl-policy=my-ssl-policy \
       --proxy-header=NONE
    

    전역

    전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-ssl-proxy=TARGET_PROXY \
       --ports=80
    
  5. TCP 프록시의 경우 백엔드 서비스의 전달 규칙을 만듭니다.

    gcloud beta compute target-tcp-proxies create TARGET_PROXY \
       --backend-service=BACKEND_SERVICE \
       --proxy-header=NONE
    

    전역

    전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-tcp-proxy=TARGET_PROXY \
       --ports=80
    

    리전 간 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --network=NETWORK \
       --subnet=SUBNET \
       --subnet-region=REGION \
       --address=lb-ipv6-1 \
       --global \
       --target-tcp-proxy=TARGET_PROXY \
       --ports=80
    

    리전

    리전 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --network=NETWORK \
       --subnet=SUBNET \
       --address=lb-ipv6-1 \
       --region=REGION \
       --target-tcp-proxy==TARGET_PROXY \
       --target-tcp-proxy-region=REGION \
       --ports=80
    

    리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --network=NETWORK \
       --subnet=SUBNET \
       --address=lb-ipv6-1 \
       --region=REGION \
       --target-tcp-proxy=TARGET_PROXY \
       --target-tcp-proxy-region=REGION \
       --ports=80
    

인스턴스 그룹의 백엔드 서비스 업데이트

백엔드 서비스와 연결된 인스턴스 그룹이 있으면 다음과 같이 백엔드 서비스를 업데이트해야 합니다.

Console

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 부하 분산기 이름을 클릭합니다.

  3. 수정을 클릭합니다.

백엔드 서비스 구성

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드 유형에서 인스턴스 그룹을 선택합니다.
  3. IP 주소 선택 정책 목록에서 IPv6 우선 사용을 선택합니다.
  4. 프로토콜 필드에서 다음을 수행합니다.
    • TCP 프록시에서 TCP를 선택합니다.
    • SSL 프록시에서 SSL을 선택합니다.
  5. 이중 스택으로 VM 인스턴스나 템플릿을 업데이트한 경우 백엔드 섹션을 다시 업데이트할 필요가 없습니다.
  6. 상태 점검을 선택합니다.
  7. 업데이트를 클릭합니다.

gcloud

  1. 백엔드 서비스에 인스턴스 그룹을 백엔드로 추가합니다. VM 인스턴스 또는 템플릿을 이중 스택으로 업데이트한 경우 이 단계를 건너뛸 수 있습니다.

    전역

    전역 외부 프록시 네트워크 부하 분산기와 리전 간 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services add-backend BACKEND_SERVICE \
      --instance-group=INSTANCE_GROUP \
      --global
    

    리전

    리전 외부 프록시 네트워크 부하 분산기와 리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services add-backend BACKEND_SERVICE \
      --instance-group=INSTANCE_GROUP \
      --region=REGION
    

IP 주소 선택 정책 구성

이 단계는 선택사항입니다. 리소스와 백엔드를 이중 스택으로 변환한 후 IP 주소 선택 정책을 사용하여 백엔드 서비스에서 백엔드로 전송되는 트래픽 유형을 지정할 수 있습니다.

IP_ADDRESS_SELECTION_POLICY를 다음 값 중 하나로 바꿉니다.

IP 주소 선택 정책 설명
IPv4만 클라이언트에서 GFE로의 트래픽에 관계없이 IPv4 트래픽만 백엔드 서비스의 백엔드로 전송합니다. 백엔드 상태를 확인하는 데 IPv4 상태 점검만 사용됩니다.
IPv6 우선 사용

IPv4 연결보다 백엔드의 IPv6 연결에 우선순위를 둡니다(IPv6 주소를 사용하는 정상 백엔드가 있는 경우).

상태 점검은 백엔드의 IPv6 및 IPv4 연결을 주기적으로 모니터링합니다. GFE가 먼저 IPv6 연결을 시도합니다. IPv6 연결이 끊어지거나 느리면 GFE는 Happy Eyeballs를 사용하여 IPv4로 대체 및 연결합니다.

IPv6 또는 IPv4 연결 중 하나가 비정상적이더라도 백엔드는 여전히 정상 상태로 간주됩니다. GFE에서 두 연결을 모두 시도하고 Happy Eyeballs를 통해 최종적으로 사용할 연결을 선택합니다.

IPv6만

클라이언트에서 프록시로의 트래픽에 관계없이 IPv6 트래픽만 백엔드 서비스의 백엔드로 전송합니다. 백엔드 상태를 확인하는 데 IPv6 상태 점검만 사용됩니다.

백엔드 트래픽 유형이 IP 주소 선택 정책과 일치하는지 확인하기 위한 검증은 없습니다. 예를 들어 IPV4 백엔드가 있고 Only IPv6를 IP 주소 선택 정책으로 선택하면 구성 오류가 관찰되지 않지만 트래픽이 백엔드로 전송되지 않습니다.

콘솔

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 부하 분산기 이름을 클릭합니다.

  3. 수정을 클릭합니다.

  4. 백엔드 구성을 클릭합니다.

  5. 백엔드 서비스 필드에서 BACKEND_SERVICE를 선택합니다.

  6. 백엔드 유형영역별 네트워크 엔드포인트 그룹 또는 인스턴스 그룹이어야 합니다.

  7. IP 주소 선택 정책 목록에서 IP_ADDRESS_SELECTION_POLICY를 선택합니다.

  8. 완료를 클릭합니다.

gcloud

  1. 백엔드 서비스를 업데이트합니다.

    전역

    전역 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --global
    

    리전 간 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --global
    

    리전

    리전 외부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --region=REGION
    

    리전 내부 프록시 네트워크 부하 분산기의 경우 다음 명령어를 사용합니다.

    gcloud beta compute backend-services update BACKEND_SERVICE_IPV6 \
       --load-balancing-scheme=INTERNAL_MANAGED \
       --protocol=[SSL|TCP] \
       --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
       --region=REGION
    

부하 분산기 테스트

모든 필수 리소스가 이중 스택으로 업데이트되었는지 검증해야 합니다. 모든 리소스를 업데이트한 후에는 트래픽이 자동으로 백엔드로 이동해야 합니다. 로그를 확인하고 변환이 완료되었는지 확인할 수 있습니다.

부하 분산기를 테스트하여 변환이 성공했고 수신 트래픽이 예상대로 백엔드에 도달하는지 확인합니다.

외부 IP 주소 조회

Console

  1. Google Cloud 콘솔에서 부하 분산 페이지로 이동합니다.

    부하 분산으로 이동

  2. 부하 분산기 이름을 클릭합니다.

  3. 프런트엔드 섹션에 부하 분산기 IP 주소 2개가 표시됩니다. 이 절차에서는 IPv4 주소를 IP_ADDRESS_IPV4로, IPv6 주소를 IP_ADDRESS_IPV6로 참조합니다.

  4. 백엔드 섹션에서 IP 주소 선택 정책이 Prefer IPv6이면 백엔드에 대한 상태 점검 상태가 2개 표시됩니다.

인스턴스로 전송되는 트래픽 테스트

이 예에서는 curl 명령의 요청이 백엔드에 무작위로 배포됩니다.

  1. 모든 백엔드 VM 응답이 나타날 때까지 다음 명령어를 몇 번 반복합니다.

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    예를 들어 IPv6 주소가 [fd20:1db0:b882:802:0:46:0:0]:80이면 명령어는 다음과 같습니다.

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

로그 확인

모든 로그 항목은 백엔드의 대상 IPv4 및 IPv6 주소를 캡처합니다. Google에서는 이중 스택을 지원하므로 백엔드에서 사용하는 IP 주소를 관찰하는 것이 중요합니다.

로그를 보면 트래픽이 IPv6로 이동하거나 IPv4로 장애 복구되는지 확인할 수 있습니다.

로그에는 백엔드와 연결된 backend_ip 주소가 포함됩니다. 로그를 조사하고 backend_ip의 대상 IPv4 또는 IPv6 주소를 비교하면 사용되고 있는 IP 주소를 확인할 수 있습니다.