고급 사용 사례

이 페이지에서는 고급 사용 사례를 위해 애플리케이션 부하 분산기로 서비스 확장 프로그램을 구성하는 방법을 설명합니다.

동적 전달

동적 전달을 사용하면 수천 또는 수백만 개의 테넌트를 개별 가상 머신 (VM) 인스턴스 또는 VM 집합에 바인딩할 수 있습니다. 서비스 확장 프로그램을 사용하여 URL 맵을 업데이트하지 않고도 개별 테넌트가 매핑되는 VM을 프로그래매틱 방식으로 확인할 수 있습니다. 이를 통해 기존 URL 맵의 제한사항을 훨씬 뛰어넘는 규모로 확장할 수 있습니다.

리전 외부 애플리케이션 부하 분산기, 리전 내부 애플리케이션 부하 분산기, 리전 간 내부 애플리케이션 부하 분산기에서 트래픽 및 경로 콜아웃을 사용하여 동적 전달을 구성할 수 있습니다.

이 섹션에서는 두 VM 간에 트래픽을 무작위로 라우팅하도록 트래픽 확장 프로그램을 구성하는 예를 안내합니다. 제공된 샘플 값을 사용합니다.

  1. us-west1 리전에서 lb-network라는 네트워크를 구성하고, backend-subnet라는 서브넷을 구성하고, 프록시 전용 서브넷을 구성합니다.

  2. us-west1에서 VM 두 개를 구성하여 동적으로 라우팅 가능한 엔드포인트를 나타냅니다.

    IP 주소를 각각 10.1.2.110.1.2.2로 지정합니다. 두 VM이 모두 load-balanced-backend 태그와 연결되어 있는지 확인합니다.

  3. 프록시 서브넷에서 네트워크의 VM으로 트래픽을 허용하는 방화벽 규칙 fw-allow-proxies를 구성합니다.

    gcloud compute firewall-rules create fw-allow-proxies \
        --network=df-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=source-range \
        --target-tags=load-balanced-backend \
        --rules=tcp:80,tcp:443,tcp:8080
    
  4. 동적 전달 및 로깅이 사용 설정된 백엔드 서비스(l7-ilb-backend-service)를 만듭니다.

    gcloud beta compute backend-services create l7-ilb-backend-service \
        --ip-port-dynamic-forwarding \
        --enable-logging \
        --region=us-west1
    
  5. 백엔드 서비스의 URL 맵(l7-ilb-map)을 만듭니다.

    gcloud compute url-maps create l7-ilb-map \
        --default-service=l7-ilb-backend-service \
        --region=us-west1
    
  6. 대상 프록시 만들기, l7-ilb-proxy

    gcloud compute target-http-proxies create l7-ilb-proxy \
        --url-map=l7-ilb-map \
        --url-map-region=us-west1 \
        --region=us-west1
    
  7. 전달 규칙을 만들고 애플리케이션 부하 분산기의 IP 주소를 예약합니다.

    gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=lb-network \
        --subnet=backend-subnet \
        --subnet-region=us-west1 \
        --ports=80 \
        --region=us-west1 \
        --target-http-proxy=l7-ilb-proxy \
        --target-http-proxy-region=us-west1
    
  8. 트래픽 확장 프로그램의 콜아웃 백엔드 서비스를 설정합니다.

    확장 프로그램 서버의 경우 Service Extensions GitHub 저장소동적 전달 예시를 사용하세요.

  9. 다음 콘텐츠를 사용하여 YAML 파일 dynamic-ext.yaml을 만듭니다.

    name: traffic-ext
        forwardingRules:
        - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule
        loadBalancingScheme: INTERNAL_MANAGED
        extensionChains:
        - name: "chain1"
          matchCondition:
            celExpression: 'request.host == "example.com"'
          extensions:
          - name: 'ext11'
            authority: ext11.com
            allowedDynamicForwarding: true
            service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-callout-service
            failOpen: false
            timeout: 0.1s
            supportedEvents:
            - REQUEST_HEADERS
    

    PROJECT_ID프로젝트 ID로 바꿉니다.

    트래픽 확장 프로그램을 전달 규칙으로 가져옵니다.

    gcloud service-extensions lb-traffic-extensions import traffic-ext \
        --source=dynamic-ext.yaml \
        --region=us-west1
    

확장 프로그램이 구성되면 트래픽은 확장 프로그램 서버 구현에 따라 라우팅됩니다.

다음 단계