Private Service Connect 백엔드 만들기

Private Service Connect 백엔드를 사용하면 정책 시행에 부하 분산기를 사용하여 지원되는 서비스에 연결할 수 있습니다. Private Service Connect 네트워크 엔드포인트 그룹(NEG)이 포함된 백엔드에 매핑된 전달 규칙을 통해 서비스에 연결합니다.

지원되는 서비스 및 구성에 대한 자세한 내용은 Private Service Connect 백엔드를 참조하세요.

이 가이드에서는 Google API 또는 게시된 서비스에 액세스하기 위해 부하 분산기에 Private Service Connect NEG를 추가하는 방법을 보여줍니다. 이 가이드에는 전체 부하 분산기 구성이 포함되지 않습니다.

Private Service Connect 백엔드로 부하 분산기 만들기에 대한 자세한 내용은 다음을 참조하세요.

역할

Compute 부하 분산기 관리자 역할(roles/compute.loadBalancerAdmin)에는 이 가이드에서 설명하는 태스크를 수행하는 데 필요한 권한이 포함되어 있습니다.

시작하기 전에

  1. 연결하려는 API 또는 서비스를 확인합니다.

    • Google API의 경우:

    • 게시된 서비스의 경우:

      • 자체 서비스를 게시하려면 관리형 서비스 게시를 참조하세요.

      • Google Cloud 또는 타사에서 게시한 서비스에 연결하려면 제작자에게 다음 정보를 문의합니다.

        • 연결하려는 서비스에 대한 서비스 연결의 URI

        • 요청을 전송하는 데 사용하는 DNS 이름의 요구사항. URL 맵 구성에 특정 DNS 이름을 사용해야 할 수도 있습니다.

  2. 연결할 서비스를 지원하는 부하 분산기 유형을 확인하고 업데이트 중인 부하 분산기에 익숙해지도록 합니다. 이 가이드에서는 부하 분산기에 Private Service Connect NEG를 추가하는 방법을 설명하지만 추가 구성 단계를 수행할 수도 있습니다.

    자세한 내용은 지원되는 부하 분산기 및 대상을 참조하세요.

Private Service Connect NEG 만들기

NEG를 만들 때 연결되는 대상 유형을 선택합니다.

  • 게시된 서비스
  • 위치 Google API
  • 전역 Google API

게시된 서비스에 연결할 NEG 만들기

게시된 서비스를 가리키는 Private Service Connect NEG를 만들 때는 해당 서비스에 대한 서비스 연결 URI가 필요합니다. 서비스 연결 형식은 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME입니다.

이 구성에 지원되는 부하 분산기에 대한 자세한 내용은 게시된 서비스 대상을 참조하세요.

콘솔

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

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

  2. 네트워크 엔드포인트 그룹 만들기를 클릭합니다.

  3. 네트워크 엔드포인트 그룹의 이름을 입력합니다.

  4. 네트워크 엔드포인트 그룹 유형으로 Private Service Connect NEG(리전)를 선택합니다.

  5. 대상을 구성하려면 다음 안내를 따르세요.

    1. 대상에서 게시된 서비스를 선택합니다.
    2. 대상 서비스에 서비스 연결의 URI를 입력합니다.
    3. 네트워크 엔드포인트 그룹을 만들 네트워크서브네트워크를 선택합니다.

      서브넷은 게시된 서비스와 동일한 리전에 있어야 합니다.

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

gcloud

gcloud compute network-endpoint-groups create 명령어를 사용합니다.

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION \
    --network=NETWORK \
    --subnet=SUBNET

다음을 바꿉니다.

  • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.

  • TARGET_SERVICE: 서비스 연결의 URI입니다.

  • REGION: 네트워크 엔드포인트 그룹을 만들 리전입니다. 리전은 대상 서비스와 동일한 리전이어야 합니다.

  • NETWORK: 네트워크 엔드포인트 그룹을 만들 네트워크입니다. 생략할 경우 기본 네트워크가 사용됩니다.

  • SUBNET: 네트워크 엔드포인트 그룹을 만들 서브넷입니다. 서브넷은 대상 서비스와 동일한 리전에 있어야 합니다. 네트워크를 제공하는 경우 서브넷을 제공해야 합니다. 네트워크 및 서브넷이 모두 생략되면 기본 네트워크가 사용되고, 지정된 REGION의 기본 서브넷이 사용됩니다.

위치 Google API에 연결할 NEG 만들기

NEG를 만들어 위치 Google API에 연결할 수 있습니다.

이 구성에 지원되는 부하 분산기에 대한 자세한 내용은 위치 Google API 대상을 참조하세요.

콘솔

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

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

  2. 네트워크 엔드포인트 그룹 만들기를 클릭합니다.

  3. 네트워크 엔드포인트 그룹의 이름을 입력합니다.

  4. 네트워크 엔드포인트 그룹 유형으로 Private Service Connect NEG(리전)를 선택합니다.

  5. 대상을 구성하려면 다음 안내를 따르세요.

    1. 대상에서 Google API를 선택합니다.
    2. 리전대상 서비스를 선택합니다.
  6. 만들기를 클릭합니다.

gcloud

gcloud compute network-endpoint-groups create 명령어를 사용합니다.

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION

다음을 바꿉니다.

  • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.

  • TARGET_SERVICE: 연결할 위치 서비스 엔드포인트입니다.

  • REGION: 네트워크 엔드포인트 그룹을 만들 리전입니다. 리전은 대상 서비스와 동일한 리전이어야 합니다.

전역 Google API에 연결할 NEG 만들기

전역 Google API에 연결할 Private Service Connect NEG를 만들 수 있습니다. NEG는 전역 API에 연결되더라도 리전에 해당합니다. 이 구성에서는 리전이 무시됩니다.

이 구성에 지원되는 부하 분산기에 대한 자세한 내용은 전역 Google API 대상을 참조하세요.

gcloud

gcloud compute network-endpoint-groups create 명령어를 사용합니다.

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=private-service-connect \
    --psc-target-service=TARGET_SERVICE \
    --region=REGION

다음을 바꿉니다.

  • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.

  • TARGET_SERVICE: 연결하려는 전역 Google API입니다.

  • REGION: 네트워크 엔드포인트 그룹을 만들 리전입니다.

부하 분산기에 Private Service Connect 백엔드 추가

Private Service Connect NEG 백엔드로 트래픽을 전송하도록 지원되는 부하 분산기를 구성할 수 있습니다.

지원되는 구성에 대한 자세한 내용은 사양을 참조하세요.

애플리케이션 부하 분산기에 백엔드 추가

NEG를 전역 외부 애플리케이션 부하 분산기, 내부 애플리케이션 부하 분산기 또는 리전 외부 애플리케이션 부하 분산기에 추가합니다.

콘솔

부하 분산기 수정

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

    부하 분산으로 이동

  2. 수정할 부하 분산기를 클릭합니다.

  3. 수정을 클릭합니다.

백엔드 구성 업데이트

  1. 백엔드 구성을 클릭합니다.
  2. 백엔드 서비스 목록을 확장하고 백엔드 서비스 만들기를 선택합니다.
  3. 백엔드 서비스의 이름을 입력합니다.
  4. 백엔드 유형Private Service Connect 네트워크 엔드포인트 그룹으로 설정합니다.
  5. 백엔드 섹션에서 Private Service Connect 네트워크 엔드포인트 그룹 목록을 클릭하고 만든 Private Service Connect NEG를 선택합니다. 완료를 클릭합니다.
  6. 여러 리전의 게시된 서비스에 연결하도록 전역 외부 애플리케이션 부하 분산기를 구성하는 중이고 Private Service Connect NEG를 하나 넘게 만들었으면 백엔드 추가를 클릭하여 다른 NEG를 선택합니다.

    이 관리형 서비스의 모든 NEG가 백엔드 서비스에 추가될 때까지 이 단계를 반복합니다.

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

라우팅 규칙 업데이트

  1. 라우팅 규칙을 클릭합니다.
  2. 추가한 각 백엔드 서비스에 대해 호스트경로를 입력합니다.
  3. 구성을 검토하려면 검토 및 완료를 클릭합니다.
  4. 만들기를 클릭합니다.

gcloud

백엔드 구성 업데이트

  1. 대상 서비스의 백엔드 서비스를 만듭니다.

    • 리전 부하 분산기에 백엔드 서비스를 추가하는 경우 --region 플래그를 사용하여 부하 분산기와 동일한 리전을 지정합니다.

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
          --load-balancing-scheme=SCHEME \
          --protocol=HTTPS \
          --region=REGION
      

      다음을 바꿉니다.

      • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름
      • SCHEME: 수정할 부하 분산기의 부하 분산 스키마.
        • 리전 외부 애플리케이션 부하 분산기의 경우 EXTERNAL_MANAGED를 사용하세요.
        • 내부 애플리케이션 부하 분산기의 경우 INTERNAL_MANAGED을 사용합니다.
      • REGION: 백엔드 서비스의 리전입니다. NEG와 동일한 리전을 사용합니다.
    • 전역 외부 애플리케이션 부하 분산기에 백엔드 서비스를 추가하는 경우 --global 플래그를 사용하세요.

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
          --load-balancing-scheme=EXTERNAL_MANAGED \
          --protocol=HTTPS \
          --global
      

      BACKEND_SERVICE_NAME을 백엔드 서비스 이름으로 바꿉니다.

  2. 대상 서비스를 가리키는 Private Service Connect NEG를 추가합니다.

    • 리전 부하 분산기에 백엔드 서비스를 추가하는 경우 --region 플래그를 사용하여 부하 분산기와 동일한 리전을 지정합니다.

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
          --network-endpoint-group=NEG_NAME \
          --network-endpoint-group-region=NEG_REGION \
          --region=REGION
      

      다음을 바꿉니다.

      • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름입니다.
      • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.
      • NEG_REGION: 네트워크 엔드포인트 그룹의 리전
      • REGION: 백엔드 서비스의 리전입니다.
    • 전역 외부 애플리케이션 부하 분산기에 백엔드 서비스를 추가하는 경우 --global 플래그를 사용합니다.

      동일한 서비스에 대해 서로 다른 리전에 여러 개의 NEG를 만든 경우 이 단계를 반복하여 모든 NEG를 백엔드 서비스에 추가합니다.

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
          --network-endpoint-group=NEG_NAME \
          --network-endpoint-group-region=NEG_REGION \
          --global
      

      다음을 바꿉니다.

      • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름입니다.
      • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.
      • NEG_REGION: 네트워크 엔드포인트 그룹의 리전

라우팅 규칙 업데이트

  1. 만든 각 백엔드 서비스에 대해 부하 분산기의 URL 맵에 대한 경로 일치자를 추가합니다.

    • URL 맵이 리전이면 --region 플래그를 사용하여 리전을 지정합니다.

      gcloud compute url-maps add-path-matcher URL_MAP_NAME \
          --path-matcher-name=PATH_MATCHER \
          --default-service=BACKEND_SERVICE_NAME \
          --region=REGION
      

      다음을 바꿉니다.

      • URL_MAP_NAME: URL 맵의 이름입니다.
      • PATH_MATCHER: 경로 일치자의 이름입니다.
      • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름입니다.
      • REGION: URL 맵의 리전
    • URL 맵이 전역이면 --global 플래그를 지정하세요.

      gcloud compute url-maps add-path-matcher URL_MAP_NAME \
          --path-matcher-name=PATH_MATCHER \
          --default-service=BACKEND_SERVICE_NAME \
          --global
      

      다음을 바꿉니다.

      • URL_MAP_NAME: URL 맵의 이름입니다.
      • PATH_MATCHER: 경로 일치자의 이름입니다.
      • BACKEND_SERVICE_NAME: 백엔드 서비스 이름
  2. 각 호스트 이름에 대해 호스트 규칙을 추가합니다.

    호스트 규칙마다 경로 일치자를 하나씩 참조할 수 있지만 2개 이상의 호스트 규칙이 동일한 경로 일치자를 참조할 수 있습니다.

    • URL 맵이 리전이면 --region 플래그를 사용하여 리전을 지정합니다.

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
          --hosts=HOST \
          --path-matcher-name=PATH_MATCHER \
          --region=REGION
      

      다음을 바꿉니다.

      • URL_MAP_NAME: URL 맵의 이름입니다.
      • HOST: 이 호스트에 대해 요청을 전송할 호스트 이름
      • PATH_MATCHER: 경로 일치자의 이름
      • REGION: URL 맵의 리전
    • URL 맵이 전역이면 --global 플래그를 지정하세요.

      gcloud compute url-maps add-host-rule URL_MAP_NAME \
          --hosts=HOST \
          --path-matcher-name=PATH_MATCHER \
          --global
      

      다음을 바꿉니다.

      • URL_MAP_NAME: URL 맵의 이름입니다.
      • HOST: 이 호스트에 대해 요청을 전송할 호스트 이름
      • PATH_MATCHER: 경로 일치자의 이름

리전 내부 프록시 네트워크 부하 분산기에 백엔드 추가

NEG가 게시된 서비스를 가리키는 경우 리전 서비스 프록시 네트워크 부하 분산기에 Private Service Connect NEG 백엔드를 추가할 수 있습니다. 리전 내부 프록시 네트워크 부하 분산기는 하나의 백엔드 서비스만 지원합니다.

리전 내부 프록시 네트워크 부하 분산기를 구성하려면 안내에 따라 영역별 백엔드로 리전 내부 프록시 네트워크 부하 분산기 설정을 수행하되 "영역별 NEG 만들기"를 완료하거나 상태 점검을 구성하지 않도록 합니다. 영역 NEG를 구성하는 대신 다음 안내에 따라 이전에 만든 Private Service Connect NEG를 Private Service Connect 백엔드에 추가합니다.

콘솔

  1. 만들려는 리전 내부 프록시 네트워크 부하 분산기에서 백엔드 구성을 클릭합니다.
  2. 백엔드 유형에서 Private Service Connect 네트워크 엔드포인트 그룹을 선택합니다.
  3. 새 백엔드에 대해 이전에 만든 NEG를 선택합니다.
  4. 남은 기본값은 그대로 두고 완료를 클릭합니다.
  5. Google Cloud 콘솔에서 백엔드 구성 옆에 체크표시가 있는지 확인합니다. 없으면 모든 단계를 완료했는지 다시 확인합니다.

gcloud

  1. 대상 서비스의 백엔드 서비스를 만듭니다.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=TCP \
        --region=REGION
    

    다음을 바꿉니다.

    • BACKEND_SERVICE_NAME: 백엔드 서비스 이름
    • REGION: 백엔드 서비스의 리전입니다. NEG와 동일한 리전을 사용합니다.
  2. 대상 서비스를 가리키는 Private Service Connect NEG를 추가합니다.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=NEG_REGION \
        --region=REGION
    

    다음을 바꿉니다.

    • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름입니다.
    • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.
    • NEG_REGION: 네트워크 엔드포인트 그룹의 리전
    • REGION: 백엔드 서비스의 리전입니다.

리전 외부 프록시 네트워크 부하 분산기에 백엔드 추가

NEG가 게시된 서비스를 가리키는 경우 Private Service Connect NEG 백엔드를 리전 외부 프록시 네트워크 부하 분산기에 추가할 수 있습니다. 이 부하 분산기는 백엔드 서비스 하나만 지원합니다.

부하 분산기를 구성하려면 안내에 따라 영역별 백엔드로 리전 외부 프록시 네트워크 부하 분산기 설정하되 "영역별 NEG 만들기"를 완료하거나 상태 점검을 구성하지 않도록 합니다. 영역 NEG를 구성하는 대신 다음 안내에 따라 이전에 만든 Private Service Connect NEG를 Private Service Connect 백엔드에 추가합니다.

콘솔

  1. 만들려는 리전 외부 프록시 네트워크 부하 분산기에서 백엔드 구성을 클릭합니다.
  2. 백엔드 유형에서 Private Service Connect 네트워크 엔드포인트 그룹을 선택합니다.
  3. 새 백엔드에 대해 이전에 만든 NEG를 선택합니다.
  4. 남은 기본값은 그대로 두고 완료를 클릭합니다.
  5. Google Cloud 콘솔에서 백엔드 구성 옆에 체크표시가 있는지 확인합니다. 없으면 모든 단계를 완료했는지 다시 확인합니다.

gcloud

  1. 대상 서비스의 백엔드 서비스를 만듭니다.

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=TCP \
        --region=REGION
    

    다음을 바꿉니다.

    • BACKEND_SERVICE_NAME: 백엔드 서비스 이름
    • REGION: 백엔드 서비스의 리전입니다. NEG와 동일한 리전을 사용합니다.
  2. 대상 서비스를 가리키는 Private Service Connect NEG를 추가합니다.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=NEG_REGION \
        --region=REGION
    

    다음을 바꿉니다.

    • BACKEND_SERVICE_NAME: 백엔드 서비스의 이름입니다.
    • NEG_NAME: 네트워크 엔드포인트 그룹의 이름입니다.
    • NEG_REGION: 네트워크 엔드포인트 그룹의 리전
    • REGION: 백엔드 서비스의 리전입니다.

백엔드 나열

구성된 모든 Private Service Connect 백엔드를 나열할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Private Service Connect 페이지로 이동합니다.

    Private Service Connect로 이동

  2. 연결된 엔드포인트 탭을 클릭합니다.

    Private Service Connect 백엔드는 부하 분산기 엔드포인트 섹션에 표시됩니다.

백엔드 설명

Private Service Connect 백엔드를 설명하여 연결 상태를 포함한 세부정보를 볼 수 있습니다.

콘솔

  1. 사용 가능한 백엔드를 나열합니다.
  2. 설명하려는 백엔드를 클릭합니다.

문제 해결

부하 분산기의 전달 규칙에 액세스하는 중에 오류 발생

부하 분산기의 전달 규칙에 액세스할 때 404 오류가 발생하면 다음 중 하나가 원인일 수 있습니다.

  • URL 맵이 아직 전파되지 않았습니다.

    부하 분산기를 만든 경우 몇 분 정도 기다리세요.

  • 요청에서 사용 중인 URL이 URL 맵에 정의된 URL과 일치하지 않습니다.

    시도하려는 URL이 부하 분산기의 URL 맵 구성과 일치하는지 확인합니다.

  • 서비스 프로듀서 백엔드가 액세스하려는 URL을 지원하지 않습니다.

    서비스 프로듀서에게 서비스에 액세스하는 데 사용할 URL을 확인하도록 요청합니다.