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

이 문서에서는 Private Service Connect 엔드포인트를 사용하여 다른 VPC 네트워크에서 서비스에 액세스하는 방법을 설명합니다. 자신의 고유 서비스 또는 Google을 포함한 다른 서비스 프로듀서가 제공한 서비스에 연결할 수 있습니다.

서비스에 대한 자세한 내용은 관리형 서비스 게시를 참조하세요.

역할

다음 IAM 역할은 이 가이드의 태스크를 수행하는 데 필요한 권한을 제공합니다.

작업 역할
엔드포인트 만들기 두 역할 모두:
Compute 네트워크 관리자(roles/compute.networkAdmin) 및
서비스 디렉터리 편집자(roles/servicedirectory.editor)
엔드포인트의 DNS 항목을 자동 또는 수동으로 구성 DNS 관리자 (roles/dns.admin)

시작하기 전에

  • 제한사항을 포함하여 엔드포인트를 사용하여 서비스에 연결하는 방법을 참조하세요.
  • 프로젝트에서 Compute Engine API사용 설정해야 합니다.
  • 프로젝트에서 Service Directory API사용 설정해야 합니다.
  • 프로젝트에서 Cloud DNS API사용 설정해야 합니다.
  • 엔드포인트의 IP 주소를 할당하는 데 사용할 일반 서브넷을 식별하거나 만듭니다.
    • 서브넷은 연결할 서비스와 동일한 리전에 있어야 합니다.
    • IPv4 전용 서브넷 또는 이중 스택 서브넷의 IPv4 주소를 사용할 수 있습니다.
    • 서브넷에 내부 IPv6 주소 범위가 있는 경우 이중 스택 서브넷의 IPv6 주소를 사용할 수 있습니다.
    • IP 주소의 IP 버전은 엔드포인트에서 연결할 수 있는 게시된 서비스에 영향을 줍니다. 자세한 내용은 IP 버전 변환을 참고하세요.
  • 이그레스 방화벽 규칙은 엔드포인트의 내부 IP 주소로 트래픽을 허용해야 합니다. 묵시적 이그레스 허용 방화벽 규칙은 모든 대상 IP 주소로의 이그레스를 허용합니다. VPC 네트워크에서 이그레스 거부 방화벽 규칙을 만들었거나 묵시적으로 허용되는 이그레스 동작을 수정하는 계층적 방화벽 정책을 만들었으면 엔드포인트에 대한 액세스에 영향을 줄 수 있습니다. 서비스 엔드포인트의 내부 IP 주소 대상의 트래픽을 허용하도록 특정 이그레스 허용 방화벽 규칙 또는 정책을 만듭니다.
  • 이 서비스에는 서비스 연결 URI가 있어야 합니다. 예를 들면 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME입니다.

엔드포인트 만들기

엔드포인트는 Private Service Connect 전달 규칙을 사용하여 또 다른 VPC 네트워크의 서비스에 연결됩니다. 각 전달 규칙은 다른 VPC 네트워크의 서비스에 액세스하기 위한 Private Service Connect 전달 규칙의 프로젝트별 할당량에 반영됩니다.

엔드포인트를 만들면 선택한 네임스페이스 또는 기본 네임스페이스인 goog-psc-default를 사용하여 서비스 디렉터리에 자동으로 등록됩니다.

2개를 초과하는 리전에서 엔드포인트를 사용할 수 있게 하려면 전역 액세스를 사용 설정합니다.

게시된 서비스에 대해 엔드포인트의 전역 액세스 필드만 업데이트할 수 있습니다. 다른 필드를 업데이트하려면 엔드포인트를 삭제한 후 새 항목을 만듭니다.

콘솔

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

    Private Service Connect로 이동

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

  3. 엔드포인트 연결을 클릭합니다.

  4. 대상에서 게시된 서비스를 선택합니다.

  5. 대상 서비스에서 연결할 서비스 연결 URI를 입력합니다.

    서비스 연결 URI는 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME 형식입니다.

  6. 엔드포인트 이름에서 엔드포인트에 사용할 이름을 입력합니다.

  7. 엔드포인트의 네트워크를 선택합니다.

  8. 엔드포인트의 서브네트워크를 선택합니다.

  9. 엔드포인트의 IP 주소를 선택합니다. 새 IP 주소가 필요한 경우 IP 주소를 만들 수 있습니다.

    1. IP 주소 드롭다운 메뉴를 클릭하고 IP 주소 만들기를 선택합니다.
    2. IP 주소의 이름과 선택적인 설명을 입력합니다.
    3. IP 버전을 선택합니다.
    4. IPv4 주소를 만드는 경우 자동 할당 또는 직접 선택을 선택합니다. 직접 선택을 선택한 경우 사용할 커스텀 IP 주소를 입력합니다.

    5. 예약을 클릭합니다.

  10. 모든 리전에서 엔드포인트를 사용할 수 있게 하려면 전역 액세스 사용 설정을 선택합니다.

  11. 드롭다운 목록에서 네임스페이스를 선택하거나 새 네임스페이스를 만듭니다.

    리전은 선택한 서브네트워크를 기반으로 채워집니다.

  12. 엔드포인트 추가를 클릭합니다.

gcloud

  1. 엔드포인트에 할당할 내부 IP 주소를 예약합니다.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

    다음을 바꿉니다.

    • ADDRESS_NAME: 예약된 IP 주소에 할당할 이름

    • REGION: 엔드포인트 IP 주소의 리전. 이 리전은 서비스 제작자의 서비스 연결을 포함하는 동일한 리전이어야 합니다.

    • SUBNET: 엔드포인트 IP 주소의 서브넷 이름

    • IP_VERSION: IP 주소의 IP 버전으로, IPV4 또는 IPV6일 수 있습니다. 기본값은 IPV4입니다. IPV6를 지정하려면 IP 주소가 내부 IPv6 주소 범위가 있는 이중 스택 서브넷에 연결되어 있어야 합니다.
  2. 예약된 IP 주소를 찾습니다.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. 엔드포인트를 서비스 제작자의 서비스 연결에 연결하도록 전달 규칙을 만듭니다. 기본적으로 엔드포인트는 자체 리전에서만 사용할 수 있습니다. 모든 리전에서 엔드포인트를 사용할 수 있게 하려면 --allow-psc-global-access 플래그를 사용합니다.

    • 자체 리전에서만 액세스할 수 있는 엔드포인트를 만듭니다.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=NETWORK_NAME \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT \
        [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      
    • 모든 리전에서 액세스할 수 있는 엔드포인트를 만듭니다.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=NETWORK_NAME \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT \
        --allow-psc-global-access \
        [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      

    다음을 바꿉니다.

    • ENDPOINT_NAME: 엔드포인트에 할당할 이름

    • REGION: 엔드포인트의 리전입니다. 이 리전은 서비스 제작자의 서비스 연결을 포함하는 동일한 리전이어야 합니다.

    • NETWORK_NAME: 엔드포인트의 VPC 네트워크 이름

    • ADDRESS_NAME: 예약된 주소의 이름

    • SERVICE_ATTACHMENT: 서비스 제작자의 서비스 연결 URI. 예: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • PROJECT_ID: 프로젝트 ID

    • NAMESPACE: 사용할 서비스 디렉터리 네임스페이스. 존재하지 않는 네임스페이스를 지정하면 네임스페이스가 생성됩니다.

      --service-directory-registration 플래그를 생략하면 기본 네임스페이스인 goog-psc-default가 사용됩니다.

API

  1. 엔드포인트에 할당할 내부 IP 주소를 예약합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
    
    {
      "name": "ADDRESS_NAME",
      "addressType": "INTERNAL",
      "subnetwork": "SUBNET_URI",
      "ipVersion": "IP_VERSION"
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다.

    • ADDRESS_NAME: 예약된 IP 주소에 할당할 이름

    • SUBNET_URI: IP 주소의 서브넷. subnetworks.list 메서드 또는 gcloud compute networks subnets list --uri를 사용하여 네트워크의 URL을 찾습니다.

    • IP_VERSION: IP 주소의 IP 버전으로, IPV4 또는 IPV6일 수 있습니다. 기본값은 IPV4입니다. IPV6를 지정하려면 IP 주소가 내부 IPv6 주소 범위가 있는 이중 스택 서브넷에 연결되어 있어야 합니다.
  2. 엔드포인트를 서비스 제작자의 서비스 연결에 연결하도록 전달 규칙을 만듭니다. 기본적으로 엔드포인트는 자체 리전에서만 사용할 수 있습니다. 모든 리전에서 엔드포인트를 사용할 수 있게 하려면 allowPscGlobalAccesstrue로 설정합니다.

    • 자체 리전에서만 액세스할 수 있는 엔드포인트를 만듭니다.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "ADDRESS_URI",
        "target": "SERVICE_ATTACHMENT",
        "network": "NETWORK_URI",
        "serviceDirectoryRegistrations": [
            {
                "namespace": "NAMESPACE"
            }
        ]
      }
      
    • 모든 리전에서 액세스할 수 있는 엔드포인트를 만듭니다.

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "ADDRESS_URI",
        "target": "SERVICE_ATTACHMENT",
        "network": "NETWORK_URI",
        "allowPscGlobalAccess": true,
        "serviceDirectoryRegistrations": [
            {
                "namespace": "NAMESPACE"
            }
        ]
      }
      

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID

    • REGION: 엔드포인트의 리전입니다.

    • ENDPOINT_NAME: 엔드포인트에 할당할 이름

    • ADDRESS_URI: 연결된 네트워크에 예약된 주소의 URI. addresses.list 메서드 또는 gcloud compute addresses list --uri를 사용하여 예약된 주소의 URL을 찾습니다.

    • SERVICE_ATTACHMENT: 서비스 제작자의 서비스 연결 URI. 예: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • NETWORK_URI: 엔드포인트의 VPC 네트워크. network.list 메서드 또는 gcloud compute networks list --uri를 사용하여 네트워크의 URI를 찾습니다.

    • NAMESPACE: 엔드포인트의 네임스페이스. 존재하지 않는 네임스페이스를 지정하면 네임스페이스가 생성됩니다. namespace 필드를 생략하면 goog-psc-default의 기본 네임스페이스가 할당됩니다.

공유 VPC 네트워크에서 IP 주소로 엔드포인트 만들기

서비스 프로젝트 관리자는 연결된 공유 VPC 네트워크의 IP 주소를 사용하는 공유 VPC 서비스 프로젝트에 엔드포인트를 만들 수 있습니다. Google Cloud 콘솔에서는 이 유형의 엔드포인트를 만들 수 없습니다. Google Cloud CLI를 사용하거나 API 요청을 보내야 합니다. 자세한 내용은 공유 VPC를 참조하세요.

이 예시에서는 단일 리전에서 액세스할 수 있는 공유 VPC 네트워크의 IP 주소로 엔드포인트를 만드는 방법을 보여줍니다. 전역 액세스를 사용 설정하거나 서비스 디렉터리의 네임스페이스를 선택하려면 엔드포인트 만들기를 참조하세요.

gcloud

  1. 엔드포인트에 할당할 내부 IP 주소를 예약하려면 다음 중 하나를 수행합니다.
  2. 서비스 프로젝트에서 엔드포인트를 만듭니다.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \
        --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT
    

    다음을 바꿉니다.

    • ENDPOINT_NAME: 엔드포인트에 할당할 이름
    • REGION: 엔드포인트의 리전입니다. 이 리전은 서비스 제작자의 서비스 연결을 포함하는 동일한 리전이어야 합니다.
    • HOST_PROJECT: 공유 VPC 네트워크 프로젝트의 프로젝트 ID
    • HOST_NETWORK: 엔드포인트의 IP 주소가 포함된 공유 VPC 네트워크의 이름
    • ADDRESS_PROJECT: IP 주소를 예약한 프로젝트의 ID. 서비스 프로젝트 또는 호스트 프로젝트일 수 있습니다.
    • ADDRESS_NAME: 예약된 IP 주소의 이름
    • SERVICE_ATTACHMENT: 서비스 제작자의 서비스 연결 URI. 예를 들면 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME입니다.

API

  1. 엔드포인트에 할당할 내부 IP 주소를 예약하려면 다음 중 하나를 수행합니다.

  2. 서비스 프로젝트에서 엔드포인트를 만듭니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules
    {
       "name": "ENDPOINT_NAME",
       "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME",
       "target": "SERVICE_ATTACHMENT",
       "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK"
    }
    

    다음을 바꿉니다.

    • PROJECT: 서비스 프로젝트 ID
    • REGION: 엔드포인트의 리전입니다. 이 리전은 서비스 제작자의 서비스 연결을 포함하는 동일한 리전이어야 합니다.
    • ENDPOINT_NAME: 엔드포인트에 할당할 이름
    • ADDRESS_PROJECT: IP 주소를 예약한 프로젝트의 ID. 서비스 프로젝트 또는 호스트 프로젝트일 수 있습니다.
    • ADDRESS_NAME: 예약된 IP 주소의 이름
    • SERVICE_ATTACHMENT: 서비스 제작자의 서비스 연결 URI. 예를 들면 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME입니다.
    • HOST_PROJECT: 공유 VPC 네트워크 프로젝트의 프로젝트 ID
    • HOST_NETWORK: 엔드포인트의 IP 주소가 포함된 공유 VPC 네트워크의 이름

엔드포인트 나열

구성된 모든 엔드포인트를 나열할 수 있습니다.

콘솔

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

    Private Service Connect로 이동

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

    엔드포인트가 표시됩니다.

gcloud

gcloud compute forwarding-rules list \
    --filter 'target~serviceAttachments'

출력은 다음과 비슷합니다.

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          REGION/serviceAttachments/SERVICE_NAME

API

이 API 호출은 서비스 액세스에 사용되는 엔드포인트뿐만 아니라 모든 전달 규칙을 반환합니다.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules

다음을 바꿉니다.

  • PROJECT_ID: 엔드포인트가 포함된 프로젝트
  • REGION: 엔드포인트의 리전입니다.

엔드포인트 세부정보 보기

엔드포인트의 연결 상태를 포함하여 엔드포인트의 모든 구성 세부정보를 볼 수 있습니다.

콘솔

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

    Private Service Connect로 이동

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

  3. 확인하려는 엔드포인트를 클릭합니다.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --region=REGION

다음을 바꿉니다.

  • ENDPOINT_NAME: 엔드포인트의 이름
  • REGION: 엔드포인트의 리전입니다.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

다음을 바꿉니다.

  • PROJECT_ID: 엔드포인트가 포함된 프로젝트
  • REGION: 엔드포인트의 리전입니다.
  • ENDPOINT_NAME: 엔드포인트의 이름

엔드포인트 라벨 지정

엔드포인트의 라벨을 관리할 수 있습니다. 자세한 안내는 리소스 라벨 지정을 참조하세요.

엔드포인트 삭제

엔드포인트를 삭제할 수 있습니다.

그러나 다음 서비스 디렉터리 구성은 엔드포인트를 삭제할 때 삭제되지 않습니다.

  • 서비스 디렉터리 네임스페이스
  • 서비스 디렉터리 DNS 영역

다른 서비스에서 서비스 디렉터리 네임스페이스와 서비스 디렉터리 DNS 영역을 사용할 수 있습니다. 서비스 디렉터리 네임스페이스를 삭제하거나 서비스 디렉터리 DNS 영역을 삭제하기 전에 네임스페이스가 비어 있는지 확인합니다.

콘솔

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

    Private Service Connect로 이동

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

  3. 삭제할 엔드포인트를 선택한 다음 삭제를 클릭합니다.

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --region=REGION

다음을 바꿉니다.

  • ENDPOINT_NAME: 엔드포인트의 이름
  • REGION: 엔드포인트의 리전입니다.

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

다음을 바꿉니다.

  • PROJECT_ID: 엔드포인트가 포함된 프로젝트
  • REGION: 엔드포인트의 리전입니다.
  • ENDPOINT_NAME: 엔드포인트의 이름

하이브리드 네트워크에서 엔드포인트에 액세스

Cloud Interconnect 또는 Cloud VPN 터널을 위한 VLAN 연결로 Google Cloud에 연결된 네트워크의 클라이언트는 Private Service Connect 엔드포인트에 도달할 수 있습니다.

  • VLAN 연결이나 Cloud VPN 터널은 엔드포인트와 같은 VPC 네트워크(또는 공유 VPC 네트워크)에서 종료되어야 합니다. 피어링된 VPC 네트워크의 클라이언트는 엔드포인트에 연결될 수 없습니다.

  • 전역 액세스가 구성된 경우 VLAN 연결의 클라이언트 트래픽 또는 Cloud VPN 터널이 다른 리전의 엔드포인트에 도달할 수 있습니다.

  • VLAN 연결에는 Dataplane v1 및 Dataplane v2가 모두 지원됩니다. Dataplane 버전에 대한 자세한 내용은 Dataplane v2를 참조하세요.

DNS 이름을 사용하여 엔드포인트에 액세스하려면 비공개 DNS 영역에 쿼리를 수행할 수 있도록 다른 네트워크에 시스템을 구성해야 합니다.

Cloud DNS를 사용하여 비공개 DNS 영역을 구현한 경우 다음 단계를 완료합니다.

  • 다른 네트워크가 연결되는 VPC 네트워크에 인바운드 서버 정책을 만듭니다.

  • 다른 네트워크가 연결되는 VPC 네트워크에서 VLAN 연결 또는 Cloud VPN 터널이 있는 리전의 인바운드 전달자 진입점을 식별합니다.

  • 다른 네트워크에 있는 시스템 및 DNS 네임서버를 구성하여 엔드포인트의 DNS 이름을 VPC 네트워크에 연결되는 VLAN 연결 또는 Cloud VPN 터널과 동일한 리전의 인바운드 전달자 진입점으로 전달하세요.

서비스 디렉터리 DNS 영역 보기

자동 DNS 구성 기본 요건이 충족되면 DNS 영역이 NAMESPACE--REGION 형식의 이름으로 생성됩니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 영역 페이지로 이동합니다.

    Cloud DNS 영역으로 이동

  2. 이름이 NAMESPACE--REGION인 비공개 영역을 찾습니다.

gcloud

  • 다음 명령어를 실행하여 모든 비공개 DNS 영역을 나열합니다.

    gcloud dns managed-zones list \
        --filter="visibility=private"
    
  • 다음 명령어를 실행하여 이름이 NAMESPACE--REGION인 영역에 대한 세부정보를 가져옵니다.

    gcloud dns managed-zones describe NAMESPACE--REGION
    

영역이 없으면 엔드포인트의 세부정보를 보고 엔드포인트 구성에 네임스페이스 값이 포함되어 있는지 확인합니다.

DNS를 구성하는 다른 방법

자동 DNS 구성의 기본 요건이 충족되지 않으면 다른 방법으로 DNS 항목을 만들 수 있습니다.

서비스 디렉터리 DNS 영역 구성

엔드포인트가 서비스 디렉터리에 등록되어 있지만 연결된 게시 서비스에 도메인 이름이 구성되어 있지 않으면 DNS가 변경되지 않습니다.

자동 DNS 구성을 복제하려는 경우 서비스 디렉터리 네임스페이스에서 지원하는 서비스 디렉터리 DNS 영역을 수동으로 구성할 수 있습니다. 영역이 생성된 후에는 엔드포인트의 DNS 항목이 자동으로 생성됩니다.

다음 구성으로 서비스 디렉터리 DNS 영역을 만듭니다.

  • 영역 이름: NAMESPACE--REGION을 지정합니다. 여기서 NAMESPACE는 엔드포인트가 등록된 네임스페이스이고 REGION은 엔드포인트가 생성되는 리전입니다.

  • DNS 이름: 서비스 프로듀서가 게시된 서비스에 사용하는 DNS 도메인입니다. 이 정보는 서비스 프로듀서에게 확인하세요.

    DNS 이름 형식은 REGION.p.DOMAIN일 수 있습니다. 예를 들어 서비스 제작자의 공개 도메인이 example.com이고 게시된 서비스가 us-west1에 있는 경우 서비스 제작자가 us-west1.p.example.com 도메인 이름을 사용하여 서비스를 제공하는 것이 좋습니다. 후행 점을 포함합니다(예: us-west1.p.example.com.).

  • 서비스 디렉터리 네임스페이스: 이 엔드포인트에 구성한 네임스페이스입니다.

서비스 디렉터리 네임스페이스와 리전을 찾으려면 엔드포인트 세부정보를 봅니다.

이 구성을 사용하여 us-west1.p.example.com DNS 이름으로 서비스 디렉터리 DNS 영역을 구성하고 analytics 이름으로 엔드포인트를 만들면 analytics.us-west1.p.example.com의 DNS 레코드가 자동으로 생성됩니다.

서비스 디렉터리에 엔드포인트 등록

새 엔드포인트는 서비스 디렉터리에 자동으로 등록됩니다. 하지만 서비스 디렉터리에 자동 등록이 사용 설정되기 전에 엔드포인트가 생성되면 이 구성이 누락될 수 있습니다.

엔드포인트를 삭제하고 자동으로 서비스 디렉터리에 등록된 새 엔드포인트를 만들 수 있습니다.

또는 다음 단계를 수행하여 기존 엔드포인트를 서비스 디렉터리 네임스페이스에 등록할 수 있습니다.

  1. NAMESPACE 엔드포인트에 대한 서비스 디렉터리 네임스페이스를 만듭니다.

  2. SERVICE_NAME 엔드포인트에 대한 서비스 디렉터리 서비스를 만듭니다.

    서비스에서 동일한 이름(ENDPOINT_NAME)을 엔드포인트에 사용되는 전달 규칙의 이름으로 사용합니다.

  3. default 이름을 사용하여 서비스 디렉터리 엔드포인트를 만들고 엔드포인트의 IP 주소 및 포트(443)를 사용합니다.

엔드포인트를 서비스 디렉터리에 등록한 후 안내에 따라 서비스 디렉터리 DNS 영역을 구성합니다.

수동으로 DNS 구성

자동 DNS 구성을 차단했거나 구성에서 사용 설정되지 않은 경우 Cloud DNS를 사용하여 수동으로 DNS 레코드를 만들 수 있습니다.

자세한 내용은 다음 페이지를 참조하세요.

  • 액세스 제어: DNS 관리자 역할(roles/dns.admin)은 DNS 영역과 레코드를 만드는 데 필요한 권한을 제공합니다.

  • 비공개 영역을 만듭니다.

    • 비공개 영역을 구성할 때는 DNS 이름을 제공합니다. 서비스 프로듀서가 게시된 서비스에 사용하는 DNS 도메인을 사용합니다. 이 정보는 서비스 프로듀서에게 확인하세요.

      이는 REGION.p.DOMAIN 형식일 수 있습니다. 예를 들어 서비스 제작자의 공개 도메인이 example.com이고 게시된 서비스가 us-west1에 있는 경우 서비스 제작자가 us-west1.p.example.com 도메인 이름을 사용하여 서비스를 제공하는 것이 좋습니다.

  • 레코드를 추가합니다.

문제 해결

비공개 DNS 영역 만들기 실패

엔드포인트를 만들면 서비스 디렉터리 DNS 영역이 생성됩니다. 다음과 같은 이유로 영역 생성이 실패할 수 있습니다.

  • 프로젝트에서 Cloud DNS API를 사용 설정하지 않았습니다.

  • 서비스 디렉터리 DNS 영역을 만드는 데 필요한 권한이 없습니다.

  • 이 VPC 네트워크에 영역 이름이 동일한 DNS 영역이 있습니다.

  • 이 VPC 네트워크에 이미 동일한 도메인 이름의 DNS 영역이 있습니다.

서비스 디렉터리 DNS 영역을 수동으로 만들려면 다음을 수행합니다.

  1. Cloud DNS API가 프로젝트에 사용 설정되어 있는지 확인합니다.

  2. 서비스 디렉터리 DNS 영역을 만드는 데 필요한 권한이 있는지 확인합니다.

    • dns.managedZones.create
    • dns.networks.bindPrivateDNSZone
    • servicedirectory.namespaces.associatePrivateZone
  3. 충돌하는 영역이 있지만 더 이상 필요하지 않으면 DNS 영역을 삭제합니다.

  4. 엔드포인트와 연결된 서비스 디렉터리 네임스페이스에서 지원하는 서비스 디렉터리 DNS 영역을 만듭니다.

전역 액세스가 구성되었을 때 엔드포인트 만들기 실패

모든 Private Service Connect 게시 서비스가 전역 액세스가 포함된 엔드포인트를 지원하지는 않습니다. 전역 액세스가 포함된 엔드포인트를 만들 때 해당 게시 서비스가 이를 지원하지 않으면 다음 ;오류 메시지가 표시됩니다.

Private Service Connect global access is not supported for the given forwarding rule, since its producer service does not support consumer global access.

전역 액세스 옵션 없이 엔드포인트를 만들어야 합니다.

엔드포인트 생성은 성공하지만 연결이 설정되지 않음

게시된 서비스의 엔드포인트를 성공적으로 만들었지만 연결이 설정되지 않은 경우 엔드포인트의 연결 상태를 확인합니다. 연결 상태에 문제를 해결하기 위해 취할 수 있는 단계가 표시될 수 있습니다.