내부 IPv6 전용 백엔드로 내부 패스 스루 네트워크 부하 분산기 설정

이 문서에서는 내부 IPv6 전용 트래픽을 지원하는 내부 패스 스루 네트워크 부하 분산기를 구성하고 테스트하는 방법을 보여줍니다. 이 예시 구성에서는 내부 IPv6 전용 백엔드 가상 머신 (VM) 인스턴스에 Apache 웹 서버를 설치하여 부하 분산기의 가상 IP (VIP)를 통해 수신된 트래픽에 대한 응답으로 콘텐츠를 제공합니다.

다음 아키텍처 다이어그램에 표시된 것처럼 부하 분산기의 백엔드 VM은 내부 IPv6 전용 주소로 구성됩니다. 이 예시 구성에서는 웹 서버를 설치하기 위해 백엔드 VM이 Apache를 다운로드해야 하므로 공개 인터넷에 액세스해야 합니다. 하지만 이러한 백엔드 VM에는 외부 IP 주소가 없으므로 인터넷에 직접 연결할 수 없습니다.

인터넷 액세스를 사용 설정하기 위해 이 예에서는 NAT 게이트웨이 역할을 하는 별도의 VM 인스턴스를 사용하며, 이 인스턴스는 외부 IPv6 주소를 사용하여 구성됩니다. 이 VM은 Linux 커널 수준에서 주소 변환을 실행합니다. 특히 NAT 테이블의 POSTROUTING 체인은 아웃바운드 패킷의 소스 주소를 매스커레이딩하는 데 사용됩니다. 지정된 네트워크 인터페이스에서 각 백엔드 VM의 내부 IPv6 주소를 NAT 게이트웨이 VM의 외부 IPv6 주소로 대체합니다.

내부 IPv6 전용 백엔드가 있는 내부 패스 스루 네트워크 부하 분산기 예시 구성
내부 IPv6 전용 백엔드를 사용하는 내부 패스 스루 네트워크 부하 분산기 예시 구성 (확대하려면 클릭)

다음 정보에서는 내부 IPv6 전용 백엔드를 사용하여 내부 패스 스루 네트워크 부하 분산기를 설정하는 데 사용되는 다양한 구성요소를 구성하는 방법을 안내합니다.

권한

이 가이드를 수행하려면 프로젝트에서 인스턴스를 만들고 네트워크를 수정해야 합니다. 프로젝트 소유자 또는 편집자이거나 다음 Compute Engine IAM 역할을 모두 보유해야 합니다.

작업 필요한 역할
네트워크, 서브넷, 부하 분산기 구성요소 만들기 Compute 네트워크 관리자
(roles/compute.networkAdmin)
방화벽 규칙 추가 및 삭제 Compute 보안 관리자
(roles/compute.securityAdmin)
인스턴스 만들기 Compute 인스턴스 관리자
(roles/compute.instanceAdmin)

자세한 내용은 다음 가이드를 참조하세요.

내부 IPv6 주소로 네트워크 및 IPv6 전용 서브넷 구성

이 페이지에 설명된 예시 내부 패스 스루 네트워크 부하 분산기는 lb-network-ipv6-only라는 커스텀 모드 VPC 네트워크로 생성되었습니다.

내부 IPv6 범위가 있는 서브넷을 구성하려면 VPC 네트워크 ULA 내부 IPv6 범위를 사용 설정합니다. 내부 IPv6 서브넷 범위는 이 범위에서 할당됩니다.

콘솔

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

    VPC 네트워크로 이동

  2. VPC 네트워크 만들기를 클릭합니다.

  3. 이름lb-network-ipv6-only를 입력합니다.

  4. 이 네트워크에서 서브넷에 내부 IPv6 주소 범위를 구성하려면 다음 단계를 수행합니다.

    1. 비공개 IPv6 주소 설정에서 이 VPC 네트워크의 ULA 내부 IPv6 범위 구성을 선택합니다.
    2. 내부 IPv6 범위 할당에 대해 자동 또는 수동을 선택합니다. 수동을 선택한 경우 fd20::/20 범위 내에서 /48 범위를 입력합니다. 범위가 사용 중인 경우 다른 범위를 제공하라는 메시지가 표시됩니다.
  5. 서브넷 생성 모드커스텀을 선택합니다.

  6. 새 서브넷 섹션에서 서브넷에 다음 구성 매개변수를 지정합니다.

    • 이름: lb-subnet-ipv6-only
    • 리전: us-west1
    • IP 스택 유형: IPv6(단일 스택)
    • IPv6 액세스 유형: 내부
  7. 완료를 클릭합니다.

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

gcloud

  1. 새 커스텀 모드 VPC 네트워크를 만들려면 gcloud compute networks create 명령어를 실행합니다.

    이 네트워크의 서브넷에서 내부 IPv6 범위를 구성하려면 --enable-ula-internal-ipv6 플래그를 사용합니다.

    gcloud compute networks create lb-network-ipv6-only \
        --subnet-mode=custom \
        --enable-ula-internal-ipv6 \
        --bgp-routing-mode=regional
    
  2. ipv6-access-typeINTERNAL로 설정된 서브넷을 구성합니다. 이는 이 서브넷의 VM에 내부 IPv6 주소만 있을 수 있음을 나타냅니다. 이 예시에서 서브넷 이름은 lb-subnet-ipv6-only-internal입니다.

    서브넷을 만들려면 gcloud compute networks subnets create 명령어를 실행합니다.

    gcloud compute networks subnets create lb-subnet-ipv6-only-internal \
        --network=lb-network-ipv6-only \
        --region=us-west1 \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=INTERNAL
    

외부 IPv6 주소로 IPv6 전용 서브넷 구성

외부 IPv6 주소가 있는 IPv6 전용 서브넷은 NAT 게이트웨이 역할을 하는 VM 인스턴스를 만드는 데 사용됩니다.

콘솔

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

    VPC 네트워크로 이동

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

  3. 서브넷 탭에서 서브넷 추가를 클릭합니다. 표시되는 패널에서 서브넷에 다음 구성 매개변수를 지정합니다.

    • 이름: lb-subnet-ipv6-only-external
    • 리전: us-west1
    • IP 스택 유형: IPv6(단일 스택)
    • IPv6 액세스 유형: 외부
  4. 추가를 클릭합니다.

gcloud

ipv6-access-typeEXTERNAL로 설정된 서브넷을 구성합니다. 이는 이 서브넷의 VM에 외부 IPv6 주소가 있을 수 있음을 나타냅니다. 이 예시에서 서브넷 이름은 lb-subnet-ipv6-only-external입니다.

서브넷을 만들려면 gcloud compute networks subnets create 명령어를 실행합니다.

gcloud compute networks subnets create  lb-subnet-ipv6-only-external \
    --network=lb-network-ipv6-only \
    --region=us-west1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=EXTERNAL

VPC 네트워크에서 방화벽 규칙 구성

이 예시에서는 다음과 같은 방화벽 규칙을 사용합니다.

  • fw-allow-lb-access-ipv6-only: VPC 네트워크의 모든 대상에 적용되는 인그레스 규칙으로, 모든 IPv6 소스에서 오는 트래픽을 허용합니다.

  • fw-allow-ssh: TCP 포트 22에서 임의의 주소로부터 수신되는 SSH 연결을 허용하는 인그레스 규칙입니다. 이 규칙에 더 제한적인 소스 IP 범위를 선택할 수 있습니다. 예를 들어 SSH 세션을 시작할 시스템의 IP 범위만 지정할 수도 있습니다. 이 예시에서는 allow-ssh 대상 태그를 사용하여 방화벽 규칙이 적용되는 VM을 식별합니다.

  • fw-allow-health-check-ipv6-only: 부하 분산되는 인스턴스에 적용되는 인그레스 규칙으로 Trusted Cloud 상태 점검 시스템(2600:2d00:1:b029::/64)의 트래픽을 허용합니다. 이 예시에서는 allow-health-check-ipv6 대상 태그를 사용하여 적용해야 할 백엔드 인스턴스를 식별합니다.

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

콘솔

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

    방화벽 정책으로 이동

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

    • 이름: fw-allow-lb-access-ipv6-only
    • 네트워크: lb-network-ipv6-only
    • 우선순위: 1000
    • 트래픽 방향: 인그레스
    • 일치 시 작업: 허용
    • 대상: All instances in the network
    • 소스 필터: IPv6 범위
    • 소스 IPv6 범위: ::/0
    • 프로토콜 및 포트: 모두 허용
  3. 만들기를 클릭합니다.

  4. 들어오는 SSH 연결을 허용하려면 방화벽 규칙 만들기를 다시 클릭하고 다음 정보를 입력합니다.

    • 이름: fw-allow-ssh
    • 네트워크: lb-network-ipv6-only
    • 우선순위: 1000
    • 트래픽 방향: 인그레스
    • 일치 시 작업: 허용
    • 대상: 지정된 대상 태그
    • 대상 태그: allow-ssh
    • 소스 필터: IPv6 범위
    • 소스 IPv6 범위: ::/0
    • 프로토콜 및 포트: 지정된 프로토콜 및 포트를 선택하고 TCP 체크박스를 선택한 후 포트22를 입력합니다.
  5. 만들기를 클릭합니다.

  6. Trusted Cloud IPv6 상태 점검을 허용하려면 방화벽 규칙 만들기를 다시 클릭하고 다음 정보를 입력합니다.

    • 이름: fw-allow-health-check-ipv6-only
    • 네트워크: lb-network-ipv6-only
    • 우선순위: 1000
    • 트래픽 방향: 인그레스
    • 일치 시 작업: 허용
    • 대상: 지정된 대상 태그
    • 대상 태그: allow-health-check-ipv6
    • 소스 필터: IPv6 범위
    • 소스 IPv6 범위: 2600:2d00:1:b029::/64
    • 프로토콜 및 포트: 모두 허용
  7. 만들기를 클릭합니다.

gcloud

  1. VPC 네트워크의 모든 VM 인스턴스에 대한 모든 인바운드 IPv6 트래픽을 허용하는 fw-allow-lb-access-ipv6-only 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --source-ranges=::/0 \
        --rules=all
    
  2. allow-ssh 네트워크 태그를 사용해 VM으로 가는 SSH 연결을 허용하는 fw-allow-ssh 방화벽 규칙을 만듭니다. source-ranges를 생략하면Trusted Cloud 가 모든 소스를 의미하는 것으로 규칙을 해석합니다.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network-ipv6-only \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --source-ranges=::/0 \
        --rules=tcp:22
    
  3. Trusted Cloud IPv6 상태 점검을 허용하는 fw-allow-health-check-ipv6 규칙을 만듭니다.

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

NAT 게이트웨이 역할을 하는 VM 인스턴스 만들기

이 예에서는 Bash 스크립트를 사용하여 Linux 커널 수준에서 IPv6 패킷을 수정하는 데 사용되는 NAT 게이트웨이를 만듭니다.

Bash 스크립트는 POSTROUTING 체인에서 나가는 모든 IPv6 패킷의 소스 주소를 VM 인터페이스의 외부 IPv6 주소로 대체하여 수정합니다.

Bash 스크립트는 iptablesPOSTROUTING 체인을 수정하여 모든 아웃바운드 패킷의 소스 IPv6 주소를 매스커레이드하고 VM 네트워크 인터페이스의 외부 IPv6 주소로 대체합니다.

이 인스턴스에 대해 IP 전달을 사용 설정해야 합니다.

NAT 게이트웨이 역할을 하는 VM 인스턴스를 만들려면 다음을 실행하세요.

콘솔

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

    VM 인스턴스로 이동

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

  3. 이름nat-gateway-instance를 입력합니다.

  4. 리전으로 us-west1를 선택하고 영역으로 us-west1-a를 선택합니다.

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

  6. 네트워킹을 클릭하고 다음 필드를 구성합니다.

    1. 네트워크 태그allow-ssh를 입력합니다.
    2. IP 전달사용 설정 체크박스를 선택합니다.
    3. 네트워크 인터페이스에 다음을 선택합니다.
      • 네트워크: lb-network-ipv6-only
      • 서브넷: lb-subnet-ipv6-only-external
      • IP 스택 유형: IPv6(단일 스택)
      • 외부 IPv6 주소: 자동 할당
  7. 고급을 클릭하고 시작 스크립트 필드에 다음 스크립트를 입력합니다.

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    

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

gcloud

  1. 시작 스크립트를 만듭니다.

    nano startup.sh
    
  2. 다음 스크립트를 추가하고 파일을 저장합니다.

    #!/bin/bash
    
    set -e
    
    echo "Starting GCE startup script..."
    
    # --- IPv6 NAT table configuration ---
    echo "Modifying the source IPv6 address using the NAT table"
    
    # Enable IPv6 forwarding
    sysctl -w net.ipv6.conf.all.forwarding=1
    
    # Determine the primary network interface (assuming it's the last one listed)
    IFACE=$(ip -brief link | tail -1 | awk '{print $1}')
    
    echo "Using interface: $IFACE for IPv6 NAT"
    
    # Flush existing IPv6 NAT rules
    ip6tables -F -t nat
    ip6tables -X -t nat
    
    # Masquerade all outgoing IPv6 traffic on the determined interface
    ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
    
    echo "IPv6 masquerading configured successfully."
    
    echo "GCE startup script finished."
    
  3. VM 인스턴스를 만들고 메타데이터 파일을 VM 인스턴스에 추가합니다. 이 VM을 경로의 다음 홉으로 사용하려면 --can-ip-forward 플래그를 사용하여 이 인스턴스에 IP 전달을 사용 설정하세요.

    gcloud compute instances create nat-gateway-instance \
        --zone=us-west1-a \
        --tags=allow-ssh \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --subnet=lb-subnet-ipv6-only-external \
        --stack-type=IPV6_ONLY \
        --can-ip-forward \
        --metadata-from-file=startup-script=startup.sh
    

VPC 네트워크에서 새 정적 경로 만들기

이 예시에서는 nat-gw-tag 태그가 지정된 VM에서 NAT 게이트웨이 역할을 하는 nat-gateway-instance VM 인스턴스로 모든 IPv6 인터넷 바운드 트래픽 (::/0)을 전달하는 맞춤 경로가 생성됩니다.

경로를 만들려면 다음 단계를 따르세요.

콘솔

  1. Trusted Cloud 콘솔에서 경로 페이지로 이동합니다.

    경로로 이동

  2. 경로 관리 탭을 클릭합니다.

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

  4. 경로의 이름과 설명을 지정합니다.

  5. 네트워크 목록에서 VPC 네트워크 lb-network-ipv6-only를 선택합니다.

  6. IP 버전 목록에서 IPv6를 선택합니다.

  7. 대상 IPv6 범위를 지정합니다. 가능한 가장 광범위한 대상 위치는 IPv6의 경우 ::/0입니다.

  8. 네트워크 태그가 일치하는 특정 인스턴스에만 경로를 적용하려면 인스턴스 태그 필드에서 태그를 지정합니다. 경로를 네트워크의 모든 인스턴스에 적용하려면 이 필드를 비워 둡니다. 이 예시에서는 nat-gw-tag을 입력합니다.

  9. 다음 홉에서 인스턴스 지정을 선택합니다.

  10. NAT 게이트웨이로 사용하기 위해 만든 인스턴스의 이름을 선택합니다. 이 예시에서는 nat-gateway-instance를 선택합니다.

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

gcloud

gcloud compute routes create 명령어를 사용하여 새 경로를 만듭니다. 패킷은 경로의 --next-hop-instance에 지정된 대로 nat-gateway-instance VM 인스턴스로 전달됩니다.

gcloud compute routes create route-1 \
    --network=lb-network-ipv6-only \
    --priority=1000 \
    --tags=nat-gw-tag \
    --destination-range=::/0 \
    --next-hop-instance=nat-gateway-instance \
    --next-hop-instance-zone=us-west1-a

백엔드 VM 및 인스턴스 그룹 만들기

이 예시에서는 각각 백엔드 VM이 2개 있는 비관리형 인스턴스 그룹 2개를 사용합니다. 내부 패스 스루 네트워크 부하 분산기의 리전 특성을 설명하기 위해 두 인스턴스 그룹은 별도의 영역인 us-west1-aus-west1-c에 배치됩니다.

  • 인스턴스 그룹 ig-a에는 다음 두 VM이 포함됩니다.
    • vm-a1
    • vm-a2
  • 인스턴스 그룹 ig-c에는 다음 두 VM이 포함됩니다.
    • vm-c1
    • vm-c2

4개의 모든 백엔드 VM에 대한 트래픽 부하가 분산됩니다.

이 예에서는 이전 단계에서 만든 정적 경로의 범위가 네트워크 태그 nat-gw-tag를 사용하여 특정 VM 인스턴스로 지정됩니다.

콘솔

백엔드 VM 만들기

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

    VM 인스턴스로 이동

  2. 다음 이름 및 영역 조합을 사용하여 각 VM에 대해 이 단계를 반복합니다.

    • 이름: vm-a1, 영역: us-west1-a
    • 이름: vm-a2, 영역: us-west1-a
    • 이름: vm-c1, 영역: us-west1-c
    • 이름: vm-c2, 영역: us-west1-c
  3. 인스턴스 만들기를 클릭합니다.

  4. 이름을 2단계에 표시된 대로 설정합니다.

  5. 리전us-west1을 선택하고 2단계에 표시된 대로 영역을 선택합니다.

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

  7. 고급 옵션을 클릭합니다.

  8. 네트워킹을 클릭하고 다음 필드를 구성합니다.

    1. 네트워크 태그allow-ssh, allow-health-check-ipv6, nat-gw-tag을 입력합니다.
    2. 네트워크 인터페이스에 다음을 선택합니다.
      • 네트워크: lb-network-ipv6-only
      • 서브넷: lb-subnet-ipv6-only-internal
      • IP 스택 유형: IPv6(단일 스택)
      • 기본 내부 IPv6 주소: 임시 (자동)
  9. 고급을 클릭한 후 시작 스크립트 필드에 다음 스크립트를 입력합니다. 스크립트 콘텐츠는 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
    
  10. 만들기를 클릭합니다.

인스턴스 그룹 생성

  1. Trusted Cloud 콘솔에서 인스턴스 그룹 페이지로 이동합니다.

    인스턴스 그룹으로 이동

  2. 다음 조합을 사용해 다음 단계를 반복하여 각각 VM이 2개 있는 비관리형 인스턴스 그룹 2개를 만듭니다.

    • 인스턴스 그룹 이름: ig-a, 영역: us-west1-a, VM: vm-a1vm-a2
    • 인스턴스 그룹 이름: ig-c, 영역: us-west1-c, VM: vm-c1vm-c2
  3. 인스턴스 그룹 만들기를 클릭합니다.

  4. 새 비관리형 인스턴스 그룹을 클릭합니다.

  5. 이름을 2단계에 표시된 대로 설정합니다.

  6. 위치 섹션에서 리전us-west1을 선택한 후 2단계에 표시된 대로 영역을 선택합니다.

  7. 네트워크lb-network-ipv6-only을 선택합니다.

  8. 서브네트워크lb-subnet-ipv6-only-internal을 선택합니다.

  9. VM 인스턴스 섹션에서 2단계에 표시된 대로 VM을 추가합니다.

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

gcloud

  1. VM 4개를 만들려면 [VM-NAME][ZONE]에 다음 조합 4개를 사용하여 gcloud compute instances create 명령어를 4회 실행합니다.

    • VM-NAME: vm-a1, ZONE: us-west1-a
    • VM-NAME: vm-a2, ZONE: us-west1-a
    • VM-NAME: vm-c1, ZONE: us-west1-c
    • VM-NAME: vm-c2, ZONE: us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \
        --subnet=lb-subnet-ipv6-only-internal \
        --stack-type=IPV6_ONLY \
        --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. 각 영역에서 다음과 같이 비관리형 인스턴스 그룹 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
    
  3. 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
    

부하 분산기 구성요소 구성

다음 단계에서는 상태 점검 및 백엔드 서비스로 시작된 내부 패스 스루 네트워크 부하 분산기의 다양한 구성요소와 프런트엔드를 차례로 구성합니다.

콘솔

구성 시작

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

    부하 분산으로 이동

  2. 부하 분산기 만들기를 클릭합니다.
  3. 부하 분산기 유형네트워크 부하 분산기(TCP/UDP/SSL)를 선택하고 다음을 클릭합니다.
  4. 프록시 또는 패스 스루패스 스루 부하 분산기를 선택하고 다음을 클릭합니다.
  5. 구성을 클릭합니다.

기본 구성

내부 패스 스루 네트워크 부하 분산기 만들기 페이지에서 다음 정보를 입력합니다.

  • 부하 분산기 이름: ilb-ipv6-only
  • 리전: us-west1
  • 네트워크: lb-network-ipv6-only

백엔드 구성

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드새 백엔드 섹션에서 IP 스택 유형IPv6(단일 스택)로 선택합니다.
  3. 인스턴스 그룹에서 ig-a 인스턴스 그룹을 선택하고 완료를 클릭합니다.
  4. 백엔드 추가를 클릭하고 단계를 반복하여 ig-c를 추가합니다.
  5. 상태 점검 목록에서 상태 점검 만들기를 선택하고 다음 정보를 입력한 후 저장을 클릭합니다.
    • 이름: hc-http-80.
    • 범위: 리전별.
    • 프로토콜: HTTP.
    • 포트: 80.
    • 프록시 프로토콜: NONE.
    • 요청 경로: /.
  6. 백엔드 구성 옆에 파란색 체크표시가 표시되는지 확인합니다.

프런트엔드 구성

  1. 프런트엔드 구성을 클릭합니다. 새 프런트엔드 IP 및 포트 섹션에서 다음을 수행합니다.
    1. 이름fr-ilb-ipv6-only를 입력합니다.
    2. IPv6 트래픽을 처리하려면 다음을 수행합니다.
      1. IP 버전에서 IPv6을 선택합니다. 다음 섹션에서 만들 IPv6 TCP 서버는 전달 규칙의 VIP에 바인딩됩니다.
      2. 서브네트워크lb-subnet-ipv6-only-internal를 선택합니다. 전달 규칙의 IPv6 주소 범위는 항상 임시입니다.
      3. 포트복수를 선택한 후 포트 번호 필드에 80을 입력합니다.
      4. 완료를 클릭합니다.
    3. 계속하기 전에 프런트엔드 구성 옆에 파란색 체크표시가 있는지 확인합니다.

구성 검토

  1. 검토 및 완료를 클릭합니다. 모든 설정을 확인합니다.
  2. 설정이 올바르면 만들기를 클릭합니다. 내부 패스 스루 네트워크 부하 분산기가 만들어지는 데 몇 분 정도 걸립니다.

gcloud

  1. 새 리전 HTTP 상태 확인을 만들어 포트 80에서 VM에 대한 HTTP 연결을 테스트합니다.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. 백엔드 서비스를 만듭니다.

    gcloud compute backend-services create ilb-ipv6-only \
        --load-balancing-scheme=INTERNAL \
        --protocol=tcp \
        --region=us-west1 \
        --health-checks=hc-http-80 \
        --health-checks-region=us-west1
    
  3. 백엔드 서비스에 두 인스턴스 그룹을 추가합니다.

    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-a \
        --instance-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend ilb-ipv6-only \
        --region=us-west1 \
        --instance-group=ig-c \
        --instance-group-zone=us-west1-c
    
  4. 임시 IPv6 주소로 IPv6 전달 규칙을 만듭니다.

    gcloud compute forwarding-rules create fr-ilb-ipv6-only \
        --region=us-west1 \
        --load-balancing-scheme=INTERNAL \
        --subnet=lb-subnet-ipv6-only-internal \
        --ip-protocol=TCP \
        --ports=80 \
        --backend-service=ilb-ipv6-only \
        --backend-service-region=us-west1 \
        --ip-version=IPV6
    

부하 분산기 테스트

부하 분산기를 테스트하려면 부하 분산기와 동일한 리전에 클라이언트 VM을 만든 후 클라이언트에서 부하 분산기로 트래픽을 전송합니다.

클라이언트 VM 만들기

다음 예시에서는 백엔드(서버) VM과 동일한 리전에 클라이언트 VM(vm-client)을 만듭니다.

콘솔

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

    VM 인스턴스로 이동

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

  3. 이름vm-client를 입력합니다.

  4. 리전us-west1을 선택합니다.

  5. 영역us-west1-a를 선택합니다.

  6. 고급 옵션을 클릭합니다.

  7. 네트워킹을 클릭하고 다음 필드를 구성합니다.

    1. 네트워크 태그allow-ssh를 입력합니다.
    2. 네트워크 인터페이스에 다음을 선택합니다.
      • 네트워크: lb-network-ipv6-only
      • 서브넷: lb-subnet-ipv6-only-internal
      • IP 스택 유형: IPv6(단일 스택)
    3. 완료를 클릭합니다.
  8. 만들기를 클릭합니다.

gcloud

클라이언트 VM은 부하 분산기와 동일한 리전의 모든 영역에 있을 수 있습니다. 다음 예시에서 클라이언트는 us-west1-a 영역에 위치하며 백엔드 VM과 동일한 서브넷을 사용합니다.

gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV6_ONLY \
    --tags=allow-ssh \
    --subnet=lb-subnet-ipv6-only-internal

연결 테스트

이 테스트에서는 별도의 클라이언트 VM에서 부하 분산기에 연결합니다. 즉, 부하 분산기의 백엔드 VM에서 연결하는 것이 아닙니다. 예상되는 동작은 트래픽이 4개의 백엔드 VM 사이에 분산되는 것입니다.

  1. SSH를 사용하여 클라이언트 VM 인스턴스에 연결합니다.

    gcloud compute ssh vm-client --zone=us-west1-a
    
  2. IPv6 전달 규칙 fr-ilb-ipv6-only를 설명합니다. 설명의 IPV6_ADDRESS를 확인합니다.

    gcloud compute forwarding-rules describe fr-ilb-ipv6-only \
        --region=us-west1
    
  3. IPv6 연결이 설정된 클라이언트에서 다음 명령어를 실행합니다.

    curl http://IPV6_ADDRESS:80
    

    예를 들어 할당된 IPv6 주소가 [fd20:307:120c:2000:0:1:0:0/96]:80이면 명령어는 다음과 같습니다.

    curl http://[fd20:307:120c:2000:0:1:0:0]:80
    

    응답은 다음과 같습니다.

    Page returned from: vm-a2
    

다음 단계