게시된 서비스 백엔드 및 엔드포인트를 통해 게시된 서비스에 액세스

Private Service Connect 엔드포인트를 통해 게시된 서비스로 트래픽을 라우팅하도록 지원되는 부하 분산기 또는 리전 Cloud Service Mesh를 구성할 수 있습니다. 이렇게 하려면 리전 백엔드 서비스를 서비스 연결과 연결합니다. 이 구성을 게시된 서비스 백엔드라고 합니다.

이 페이지에서는 부하 분산기의 게시된 서비스 백엔드를 구성하는 방법을 설명합니다. 리전 Cloud Service Mesh의 게시된 서비스 백엔드 구성에 대한 자세한 내용은 Cloud Service Mesh의 게시된 서비스 백엔드 구성을 참고하세요.

게시된 서비스 백엔드는 프로듀서와 소비자 VPC 네트워크가 모두 동일한 조직에 속하는 경우에만 지원됩니다.

시작하기 전에

  • 게시된 서비스 백엔드에 대해 알아봅니다.
  • 서비스를 호스팅하는 프로듀서 VPC 네트워크가 게시된 서비스 백엔드를 구성하려는 소비자 네트워크와 동일한 조직에 속하는지 확인합니다.
  • 액세스하려는 서비스의 서비스 연결을 식별합니다.
  • 액세스하려는 서비스에 연결되는 Private Service Connect 엔드포인트를 식별하거나 만듭니다. 이 엔드포인트는 소비자 부하 분산기와 동일한 리전에 있어야 합니다.
  • 게시된 서비스 백엔드를 지원하는 소비자 부하 분산기를 식별하거나 만듭니다.
    • 부하 분산기의 전달 규칙과 백엔드 서비스는 서비스에 연결되는 서비스 연결 및 Private Service Connect 엔드포인트와 동일한 리전에 있어야 합니다.
    • 새 부하 분산기를 만드는 경우 부하 분산기의 백엔드 서비스에 백엔드를 추가하지 마세요. 게시된 서비스 백엔드를 구성할 때 추가합니다.
  • 프로젝트에서 Compute Engine API사용 설정합니다.

필요한 역할

Private Service Connect 엔드포인트의 부하 분산을 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 부하 분산기 관리자 (roles/compute.loadBalancerAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

게시된 서비스 백엔드를 소비자 부하 분산기에 추가

게시된 서비스 백엔드를 만들려면 부하 분산기의 리전 백엔드 서비스를 서비스 연결과 연결합니다. 부하 분산기를 엔드포인트와 명시적으로 연결하지 않습니다. 대신 클라이언트가 부하 분산기로 요청을 전송하면 부하 분산기는 서비스 연결에 연결된 ACCEPTED Private Service Connect 엔드포인트를 통해 트래픽을 라우팅합니다.

gcloud

gcloud beta compute backend-services add-backend 명령어를 사용합니다.

gcloud beta compute backend-services add-backend BACKEND_SERVICE \
    --region=REGION \
    --service=//compute.googleapis.com/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT

다음을 바꿉니다.

  • BACKEND_SERVICE: 백엔드 서비스의 이름
  • REGION: 서비스 연결의 리전과 일치해야 하는 백엔드 서비스의 리전입니다.
  • PROJECT_ID: 서비스 연결의 프로젝트 ID
  • SERVICE_ATTACHMENT: 백엔드 서비스와 연결할 서비스 연결의 이름

API

  1. 백엔드 서비스를 업데이트할 때 백엔드 서비스의 지문을 포함해야 합니다. 지문을 찾으려면 regionBackendServices.get 메서드에 요청을 전송합니다.

    HTTP 메서드 및 URL:

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트의 ID
    • REGION: 서비스 연결의 리전과 일치해야 하는 백엔드 서비스의 리전입니다.
    • BACKEND_SERVICE: 백엔드 서비스 이름

    다음 단계에 필요한 응답의 fingerprint 값을 기록해 둡니다.

  2. regionBackendServices.patch 메서드에 요청을 전송합니다.

    다음 요청은 기존 백엔드를 대체합니다.

    HTTP 메서드 및 URL:

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
    

    JSON 요청 본문:

    {
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/locations/REGION/serviceAttachments/SERVICE_ATTACHMENT"
        }
      ],
      "fingerprint": "FINGERPRINT"
    }
    

    다음을 바꿉니다.

    • SERVICE_ATTACHMENT: 백엔드 서비스와 연결할 서비스 연결의 이름
    • FINGERPRINT: 이전 단계에서 기록한 지문 값