Private Service Connect를 사용하여 관리형 서비스 게시

서비스 제작자는 Private Service Connect로 VPC 네트워크에서 내부 IP 주소를 사용하여 서비스를 게시할 수 있습니다. 서비스 소비자는 VPC 네트워크에서 내부 IP 주소를 사용하여 게시된 서비스에 액세스할 수 있습니다.

이 가이드에서는 Private Service Connect를 사용하여 내부 TCP/UDP 부하 분산기나 내부 HTTP(S) 부하 분산기에 호스팅되는 서비스를 게시하는 방법을 설명합니다.

Google Kubernetes Engine의 내부 TCP/UDP 부하 분산기에서 호스팅되는 서비스를 게시하려면 GKE 문서에서 Private Service Connect를 사용하여 내부 TCP/UDP 부하 분산기 만들기 참조하세요.

서비스를 게시하려면 다음을 수행합니다.

  • 서비스 제작자 VPC 네트워크에서 내부 TCP/UDP 부하 분산기나 내부 HTTP(S) 부하 분산기를 사용하여 서비스를 호스팅합니다.

  • 부하 분산기와 동일한 리전에서 서비스 연결을 만듭니다.

게시된 서비스에 연결할 수 있는 Private Service Connect 엔드포인트에는 두 가지 유형이 있습니다.

이러한 엔드포인트 유형에는 약간 다른 제작자 구성이 필요합니다. 자세한 내용은 사양을 참조하세요.

역할

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

시작하기 전에

제한사항

  • Private Service Connect 서비스 연결이 포함된 VPC 네트워크에서 패킷 미러링을 사용 설정하지 마세요. 두 구성이 모두 있는 경우 트래픽이 삭제될 수 있습니다.

  • 소비자 HTTP(S) 서비스 제어가 있는 Private Service Connect 엔드포인트는 연결된 클라이언트 목록에 표시되지 않습니다.

  • 공유 VPC 호스트 프로젝트에서 Private Service Connect 서브넷을 만든 후 서비스 프로젝트에서 서비스 연결을 만들려면 Google Cloud CLI 또는 API를 사용하여 서비스 연결을 만들어야 합니다.

  • 문제 및 해결 방법은 알려진 문제를 참조하세요.

사양

게시된 서비스에 연결할 수 있는 두 가지 Private Service Connect 엔드포인트 유형에는 서로 다른 구성 요구사항이 있습니다. 이 표에는 게시된 서비스가 각 엔드포인트 유형을 지원하는 데 필요한 구성이 요약되어 있습니다.

서비스 제작자 구성 Private Service Connect 엔드포인트(전달 규칙 기반) HTTP(S) 서비스 제어가 포함된 Private Service Connect 엔드포인트(전역 외부 HTTP(S) 부하 분산기 기반)
서비스 제작자 부하 분산기
지원되는 부하 분산기 유형 내부 TCP/UDP 부하 분산기 또는 내부 HTTP(S) 부하 분산기 내부 TCP/UDP 부하 분산기만 해당
지원 프로토콜 부하 분산기에서 지원하는 모든 트래픽 내부 TCP/UDP 부하 분산기는 HTTPS 트래픽을 제공해야 합니다.
내부 TCP/UDP 부하 분산기 구성
전역 액세스 지원되지 않음 필수
동일한 IP 주소를 사용하는 여러 전달 규칙
지원되지 않음 지원되지 않음
하위 설정 지원되지 않음 지원되지 않음
2튜플 또는 3튜플로 설정된 세션 어피니티

지원되지 않음

5튜플 세션 어피니티1 구성

지원되지 않음

5튜플 세션 어피니티1 구성

패킷 미러링 지원되지 않음 지원되지 않음
서비스 연결
프록시 프로토콜 내부 TCP/UDP 부하 분산기에서 호스팅하는 TCP 서비스에 지원됩니다.

다음 구성에서는 지원되지 않습니다.
  • 내부 TCP/UDP 부하 분산기에서 호스팅하는 UDP 서비스 하지만 이 구성을 만들 수 있습니다.
  • 내부 HTTP(S) 부하 분산기에서 호스팅하는 서비스
지원되지 않음
게시 모드
자동 프로젝트 승인 모든 프로젝트의 엔드포인트 연결 가능 모든 프로젝트의 엔드포인트 연결 가능
명시적 승인 엔드포인트가 생성되기 전이나 후에 소비자 프로젝트를 수락할 수 있습니다. 엔드포인트가 생성되기 전에 소비자 프로젝트를 수락해야 합니다.
1 Google Cloud Console을 사용하여 세션 어피니티없음 또는 클라이언트 IP, 포트, 프로토콜로 설정하거나, Google Cloud CLI 또는 API를 사용하여 NONE 또는 CLIENT_IP_PORT_PROTO로 설정합니다.

DNS 구성

서비스를 게시(서비스 연결 만들기)할 때 선택적으로 DNS 도메인 이름을 구성할 수 있습니다.

구성하는 도메인 이름을 소유하고 있어야 합니다. 도메인 이름을 지정했지만 도메인을 소유하지 않으면 서비스 게시가 실패합니다. 소유권을 확인하려면 Google Search Console로 이동합니다. 도메인 확인에 대한 자세한 내용은 웹사이트 속성 추가를 참조하세요. 서비스 연결에 지정하는 도메인 이름은 확인하는 도메인의 하위 도메인일 수 있습니다. 예를 들어 example.com을 등록한 후 도메인 이름이 us-west1.p.example.com인 서비스 연결을 만들 수 있습니다.

서비스의 도메인 이름을 구성하면 해당 서비스에 연결되는 Private Service Connect 엔드포인트가 생성될 때 서비스 소비자의 VPC 네트워크에서 다음이 구성됩니다.

  • 지정된 도메인에 서비스 디렉터리 DNS 영역이 생성됩니다.

  • 각 Private Service Connect 엔드포인트의 DNS 항목이 영역에 생성됩니다.

도메인 이름의 권장 형식은 REGION.p.DOMAIN입니다. 이 도메인 이름은 서비스 소비자의 VPC 네트워크에서 DNS 항목을 만드는 데 사용되므로 기존 DNS 도메인 이름과 충돌하지 않는 이름을 사용하는 것이 중요합니다. 이 형식을 사용하면 충돌 위험이 줄어듭니다.

예를 들어 서비스가 us-west1.p.example.com 도메인 이름으로 구성되고 서비스 소비자가 analytics 이름으로 Private Service Connect 엔드포인트를 만들면 analytics.us-west1.p.example.com의 DNS 레코드가 자동으로 생성됩니다.

서비스를 호스팅하는 부하 분산기가 이 도메인 이름에 연결되는 요청을 수락할 수 있어야 합니다. 내부 HTTP(S) 부하 분산기를 사용하는 경우 서비스 소비자가 사용할 도메인 이름을 반영하도록 부하 분산기 구성을 업데이트해야 할 수 있습니다. 예를 들어 인증서 또는 URL 맵을 업데이트합니다.

Private Service Connect의 서브넷 만들기

Private Service Connect에서 사용할 전용 서브넷을 하나 이상 만듭니다. Google Cloud Console을 사용하여 서비스를 게시하는 경우 해당 절차 중에 서브넷을 만들 수 있습니다.

기존 서비스에서 더 많은 IP 주소를 사용할 수 있도록 하려면 게시된 서비스에서 서브넷 추가 또는 삭제를 참조하세요.

공유 VPC 호스트 프로젝트에 Private Service Connect 서브넷을 만들 수 있습니다. 하지만 호스트 프로젝트의 서브넷을 사용하여 서비스 프로젝트에 서비스 연결을 만들려면 Google Cloud CLI 또는 API를 사용하여 서비스 연결을 만들어야 합니다.

Console

  1. VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크로 이동
  2. VPC 네트워크의 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.
  3. 서브넷 추가를 클릭합니다. 표시되는 패널에서 다음을 설정합니다.
    1. 이름을 입력합니다.
    2. 리전을 선택합니다.
    3. 용도 섹션에서 Private Service Connect를 선택합니다.
    4. IP 주소 범위를 입력합니다. 예를 들면 10.10.10.0/24입니다.
    5. 추가를 클릭합니다.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --range=SUBNET_RANGE --purpose=PRIVATE_SERVICE_CONNECT

다음을 바꿉니다.

  • SUBNET_NAME: 서브넷에 할당할 이름

  • NETWORK_NAME: 새 서브넷의 VPC 이름

  • REGION: 새 서브넷의 리전입니다. 게시하는 서비스와 동일한 리전이어야 합니다.

  • SUBNET_RANGE: 서브넷에 사용할 IP 주소 범위. 예를 들면 10.10.10.0/24입니다.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

{
  "ipCidrRange": "SUBNET_RANGE",
  "name": "SUBNET_NAME",
  "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
  "purpose": "PRIVATE_SERVICE_CONNECT",
}

다음을 바꿉니다.

  • PROJECT_ID: 서브넷의 프로젝트

  • SUBNET_NAME: 서브넷에 할당할 이름

  • NETWORK_NAME: 새 서브넷의 VPC 네트워크 이름

  • REGION: 새 서브넷의 리전입니다. 게시하는 서비스와 동일한 리전이어야 합니다.

  • SUBNET_RANGE: 서브넷에 사용할 IP 주소 범위. 예를 들면 10.10.10.0/24입니다.

방화벽 규칙 구성

Private Service Connect 엔드포인트와 서비스 연결 간의 트래픽을 허용하도록 방화벽 규칙을 구성합니다. 클라이언트 요청은 Private Service Connect 엔드포인트 유형에 따라 다른 위치에서 시작됩니다.

엔드포인트 유형 클라이언트 트래픽의 IP 주소 범위 세부정보
Private Service Connect 엔드포인트(전달 규칙 기반) 이 서비스와 연결된 Private Service Connect 서브넷의 IP 주소 범위입니다. 기본 네트워크를 사용하는 경우, 미리 채워진 default-allow-internal 규칙은 트래픽을 차단하는 더 높은 우선순위 규칙이 없는 한 이 트래픽을 허용합니다.
소비자 HTTP(S) 서비스 제어가 포함된 Private Service Connect 엔드포인트(전역 외부 HTTP(S) 부하 분산기 기반)
  • 130.211.0.0/22
  • 35.191.0.0/16
전역 외부 HTTP(S) 부하 분산기는 이러한 IP 주소 범위를 사용하는 Google 프런트엔드(GFE)에서 구현됩니다.

방화벽 구성이 적절한 엔드포인트 유형의 트래픽을 아직 허용하지 않는 경우 이를 허용하도록 방화벽 규칙을 구성합니다.

이 구성 예시에서는 클라이언트 IP 주소 범위에서 제작자 서비스 부하 분산기의 백엔드 VM으로 들어오는 트래픽을 허용하는 VPC 방화벽 규칙을 만들 수 있습니다. 이 구성에서는 백엔드 VM이 네트워크 태그로 구성되었다고 가정합니다.

인그레스 규칙 예시:

gcloud compute firewall-rules create NAME \
  --network=NETWORK_NAME \
  --direction=ingress \
  --action=allow \
  --target-tags=TAG \
  --source-ranges=CLIENT_IP_RANGES_LIST \
  --rules=RULES

다음을 바꿉니다.

  • NETWORK_NAME: 서비스 및 Private Service Connect 서브넷을 포함하는 네트워크

  • TAG: 제작자 서비스 부하 분산기의 백엔드 VM에 적용되는 대상 태그

  • CLIENT_IP_RANGES_LIST: 클라이언트 트래픽이 시작되는 IP 주소 범위 자세한 내용은 위 표를 참조하세요.

  • RULES_LIST: 규칙이 적용되는 프로토콜 및 대상 포트의 쉼표로 구분된 목록 예를 들면 tcp,udp입니다.

이그레스 규칙 예시:

gcloud compute firewall-rules create NAME \
  --network=NETWORK_NAME \
  --direction=egress \
  --action=allow \
  --target-tags=TAG \
  --destination-ranges=CLIENT_IP_RANGES_LIST \
  --rules=RULES

다음을 바꿉니다.

  • NETWORK_NAME: 서비스 및 Private Service Connect 서브넷을 포함하는 네트워크

  • TAG: 제작자 서비스 부하 분산기의 백엔드 VM에 적용되는 대상 태그

  • CLIENT_IP_RANGES_LIST: 클라이언트 트래픽이 시작되는 IP 주소 범위 자세한 내용은 위 표를 참조하세요.

  • RULES_LIST: 규칙이 적용되는 프로토콜 및 대상 포트의 쉼표로 구분된 목록 예를 들면 tcp,udp입니다.

VPC 방화벽 규칙 구성에 대한 자세한 내용은 VPC 방화벽 규칙 개요를 참조하세요. 이 트래픽을 허용하도록 계층식 방화벽 규칙을 구성하려면 계층식 방화벽 정책 개요를 참조하세요.

자동 프로젝트 승인을 사용한 서비스 게시

다음 안내를 따라 서비스를 게시하고 모든 소비자가 자동으로 이 서비스에 연결하도록 허용합니다. 소비자 연결을 명시적으로 승인하려면 명시적 프로젝트 승인을 사용한 서비스 게시를 참조하세요.

서비스를 게시할 때 서비스 연결을 만듭니다. 서비스 소비자는 서비스 연결 세부정보를 사용하여 서비스에 연결합니다.

소비자 연결 정보를 보려면 지원되는 서비스에서 PROXY 프로토콜을 사용 설정하면 됩니다. 지원되는 서비스에 대한 자세한 내용은 사양을 참조하세요. PROXY 프로토콜에 대한 자세한 내용은 소비자 연결 정보 보기를 참조하세요.

compute.googleapis.com, servicedirectory.googleapis.com, 또는 dns.googleapis.com을 제한하는 VPC 서비스 제어 경계로 보호되는 프로젝트에 서비스 연결을 만드는 경우 추가 구성이 필요합니다. 자세한 내용은 VPC 서비스 제어의 인그레스 및 이그레스 규칙 구성을 참조하세요.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 서비스 게시를 클릭합니다.

  4. 부하 분산기 유형: 내부 TCP/UDP 부하 분산기 또는 내부 HTTP(S) 부하 분산기를 선택합니다.

  5. 게시하려는 서비스를 호스팅하는 내부 부하 분산기를 선택합니다.

    네트워크 및 리전 필드에 선택한 내부 부하 분산기의 세부정보가 채워집니다.

  6. 메시지가 표시되면 게시하려는 서비스와 연결된 전달 규칙을 선택합니다.

  7. 서비스 이름에 서비스 연결 이름을 입력합니다.

  8. 서비스에 대해 하나 이상의 서브넷을 선택합니다. 새 서브넷을 추가하려면 다음과 같이 서브넷을 만듭니다.

    1. 새 서브넷 예약을 클릭합니다.
    2. 서브넷의 이름설명(선택사항)을 입력합니다.
    3. 서브넷의 리전을 선택합니다.
    4. 서브넷에 사용할 IP 범위를 입력하고 추가를 클릭합니다.
  9. 소비자 연결 정보를 보려면 프록시 프로토콜 사용을 선택합니다.

  10. 도메인 이름을 구성하려면 후행 점을 포함하여 도메인 이름을 입력합니다.

    도메인 이름의 권장 형식은 REGION.p.DOMAIN.입니다.

    도메인 이름을 소유하고 있어야 합니다. 자세한 내용은 DNS 구성을 참조하세요.

  11. 모든 프로젝트의 연결 자동 허용을 선택합니다.

  12. 서비스 추가를 클릭합니다.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME  \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

다음을 바꿉니다.

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • REGION: 새 서비스 연결의 리전입니다. 게시하는 서비스와 동일한 리전이어야 합니다.

  • RULE_NAME: 게시하려는 서비스와 연결된 전달 규칙의 이름

  • PSC_SUBNET_LIST: 이 서비스 연결에서 사용할 하나 이상의 서브넷의 쉼표로 구분된 목록

  • DOMAIN_NAME: 후행 점을 포함한 서비스의 DNS 도메인 이름입니다. 권장 형식은 REGION.p.DOMAIN.입니다.

    자세한 내용은 DNS 구성을 참조하세요.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI",
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ],
}

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • REGION: 새 서비스 연결의 리전입니다. 게시하는 서비스와 동일한 리전이어야 합니다.

  • RULE_URI: 게시하려는 서비스와 연결된 전달 규칙의 이름

  • PSC_SUBNET_1_URIPSC_SUBNET_2_URI: 이 서비스 연결에 사용할 서브넷 URI. URI별로 하나 이상의 서브넷을 지정할 수 있습니다.

  • DOMAIN_NAME: 후행 점을 포함한 서비스의 DNS 도메인 이름입니다. 권장 형식은 REGION.p.DOMAIN.입니다.

    자세한 내용은 DNS 구성을 참조하세요.

명시적 프로젝트 승인을 사용한 서비스 게시

다음 안내를 따라 서비스를 게시하고 이 서비스에 연결하려는 소비자를 명시적으로 승인해야 합니다. 소비자 연결을 자동으로 승인하려면 자동 프로젝트 승인을 사용한 서비스 게시를 참조하세요.

서비스를 게시할 때 서비스 연결을 만듭니다. 서비스 소비자는 서비스 연결 세부정보를 사용하여 서비스에 연결합니다.

프로젝트를 허용 목록과 거부 목록에 모두 추가하면 해당 프로젝트의 연결 요청이 거부됩니다.

소비자 연결 정보를 보려면 지원되는 서비스에서 PROXY 프로토콜을 사용 설정하면 됩니다. 지원되는 서비스에 대한 자세한 내용은 사양을 참조하세요. PROXY 프로토콜에 대한 자세한 내용은 소비자 연결 정보 보기를 참조하세요.

compute.googleapis.com, servicedirectory.googleapis.com, 또는 dns.googleapis.com을 제한하는 VPC 서비스 제어 경계로 보호되는 프로젝트에 서비스 연결을 만드는 경우 추가 구성이 필요합니다. 자세한 내용은 VPC 서비스 제어의 인그레스 및 이그레스 규칙 구성을 참조하세요.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 서비스 게시를 클릭합니다.

  4. 부하 분산기 유형: 내부 TCP/UDP 부하 분산기 또는 내부 HTTP(S) 부하 분산기를 선택합니다.

  5. 게시하려는 서비스를 호스팅하는 내부 부하 분산기를 선택합니다.

    네트워크 및 리전 필드에 선택한 내부 부하 분산기의 세부정보가 채워집니다.

  6. 메시지가 표시되면 게시하려는 서비스와 연결된 전달 규칙을 선택합니다.

  7. 서비스 이름에 서비스 연결 이름을 입력합니다.

  8. 서비스에 대해 하나 이상의 서브넷을 선택합니다.

    새 서브넷을 추가하려면 다음과 같이 서브넷을 만듭니다.

    1. 새 서브넷 예약을 클릭합니다.
    2. 서브넷의 이름설명(선택사항)을 입력합니다.
    3. 서브넷의 리전을 선택합니다.
    4. 서브넷에 사용할 IP 범위를 입력하고 추가를 클릭합니다.
  9. 소비자 연결 정보를 보려면 프로토콜 체크박스를 선택합니다.

  10. 도메인 이름을 구성하려면 후행 점을 포함하여 도메인 이름을 입력합니다.

    도메인 이름의 권장 형식은 REGION.p.DOMAIN.입니다.

    도메인 이름을 소유하고 있어야 합니다. 자세한 내용은 DNS 구성을 참조하세요.

  11. 선택한 프로젝트에 연결 허용을 선택합니다.

  12. 허용되는 프로젝트 추가를 클릭하고 이 서비스에 연결하도록 허용할 프로젝트의 세부정보를 입력합니다.

    • 프로젝트 이름: 연결을 허용할 프로젝트의 이름입니다.
    • 연결 한도: 이 프로젝트에서 허용하는 연결 수입니다.
  13. 서비스 추가를 클릭합니다.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME  \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ] \
    [--domain-names=DOMAIN_NAME]

다음을 바꿉니다.

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • REGION: 새 서비스 연결의 리전입니다. 게시하는 서비스와 동일한 리전이어야 합니다.

  • RULE_NAME: 게시하려는 서비스와 연결된 전달 규칙의 이름

  • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. --consumer-accept-list는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

  • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. --consumer-reject-list는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • PSC_SUBNET_LIST: 이 서비스 연결에서 사용할 하나 이상의 서브넷의 쉼표로 구분된 목록입니다.

  • DOMAIN_NAME: 후행 점을 포함한 서비스의 DNS 도메인 이름입니다. 권장 형식은 REGION.p.DOMAIN.입니다.

    자세한 내용은 DNS 구성을 참조하세요.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "region": "REGION",
  "connectionPreference": "ACCEPT_MANUAL",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI",
  ],
  "consumerRejectList": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  "consumerAcceptList": [
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_1",
      "connectionsLimit": "LIMIT_2",
    },
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_2",
      "connectionsLimit": "LIMIT_2",
    },
  ],
  "domainNames": [
    "DOMAIN_NAME",
  ],
}

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • RULE_URI: 게시하려는 서비스와 연결된 전달 규칙의 URI

  • PSC_SUBNET_1_URIPSC_SUBNET_2_URI: 이 서비스 연결에 사용할 서브넷 URI. URI별로 하나 이상의 서브넷을 지정할 수 있습니다.

  • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. consumerRejectList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. consumerAcceptList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

  • DOMAIN_NAME: 후행 점을 포함한 서비스의 DNS 도메인 이름입니다. 권장 형식은 REGION.p.DOMAIN.입니다.

    자세한 내용은 DNS 구성을 참조하세요.

VPC 서비스 제어를 위한 인그레스 및 이그레스 규칙 구성

compute.googleapis.com, servicedirectory.googleapis.com, 또는 dns.googleapis.com을 제한하는 VPC 서비스 제어 경계로 보호되는 프로젝트에 서비스 연결을 만드는 경우 추가 구성이 필요합니다.

서비스 소비자에게 Private Service Connect 엔드포인트를 만들기 전에 다음 정보를 요청하세요.

  • CONSUMER_PROJECT_NUMBER: Private Service Connect 엔드포인트를 만들 프로젝트의 프로젝트 번호입니다.

  • CONSUMER_SERVICE_ACCOUNT(선택사항): 계정별로 액세스를 제한하는 인그레스 규칙을 구성하려는 경우 Private Service Connect 엔드포인트를 만드는 데 사용할 서비스 계정입니다.

이 정보를 사용하여 Private Service Connect 엔드포인트와 서비스 연결 간의 연결을 설정하기 위한 인그레스 및 이그레스 규칙을 만듭니다.

인그레스 및 이그레스 규칙 구성에 대한 자세한 내용은 인그레스 및 이그레스 정책 구성을 참조하세요.

  1. 제작자 프로젝트에서 소비자 프로젝트 CONSUMER_PROJECT_NUMBER로 이그레스를 허용하는 이그레스 규칙을 구성합니다.

    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - serviceName: 'compute.googleapis.com'
          methodSelectors:
          - method: 'ServiceAttachmentsService.Insert'
          - method: 'ServiceAttachmentsService.Patch'
          - method: 'RegionForwardingRulesService.Insert'
        - serviceName: 'servicedirectory.googleapis.com'
          methodSelectors:
          - method: '*'
        - serviceName: 'dns.googleapis.com'
          methodSelectors:
          - method: '*'
        resources:
        - 'projects/CONSUMER_PROJECT_NUMBER'
    
  2. 다음 인그레스 규칙 중 하나를 구성합니다.

    • 이 예시 인그레스 규칙은 CONSUMER_SERVICE_ACCOUNT에서 생성된 소비자 엔드포인트가 서비스 연결에 연결을 시도하도록 허용합니다.

      - ingressFrom:
          sources:
          - accessLevel: '*' # All Sources
          identities: serviceAccount: CONSUMER_SERVICE_ACCOUNT
        ingressTo:
          operations:
          - serviceName: 'compute.googleapis.com'
            methodSelectors:
            - method: 'RegionForwardingRulesService.Insert'
          - serviceName: 'servicedirectory.googleapis.com'
            methodSelectors:
            - method: '*'
          - serviceName: 'dns.googleapis.com'
            methodSelectors:
            - method: '*'
          resources:
          - '*'
      
    • 이 예시 인그레스 규칙은 모든 계정에서 생성된 소비자 엔드포인트가 서비스 연결에 연결을 시도하도록 허용합니다.

      - ingressFrom:
          sources:
          - accessLevel: '*' # All Sources
          identityType: ANY_IDENTITY
        ingressTo:
          operations:
          - serviceName: 'compute.googleapis.com'
            methodSelectors:
            - method: 'RegionForwardingRulesService.Insert'
          - serviceName: 'servicedirectory.googleapis.com'
            methodSelectors:
            - method: '*'
          - serviceName: 'dns.googleapis.com'
            methodSelectors:
            - method: '*'
          resources:
          - '*'
      

인그레스 및 이그레스 규칙이 구성된 다음에는 서비스 소비자에게 연결되는 CONSUMER_PROJECT_NUMBER 프로젝트에 Private Service Connect 엔드포인트를 만들 수 있음을 서비스 소비자에게 알립니다.

소비자 연결 정보 보기

기본적으로 Private Service Connect는 소비자의 소스 IP 주소를 서비스 제작자의 VPC 네트워크에 있는 Private Service Connect 서브넷 중 하나의 주소로 변환합니다. 소비자의 원래 소스 IP 주소를 보려면 PROXY 프로토콜을 사용 설정하면 됩니다.

모든 서비스가 PROXY 프로토콜을 지원하지는 않습니다. 자세한 내용은 사양을 참조하세요.

PROXY 프로토콜이 사용 설정되면 PROXY 프로토콜 헤더에서 소비자의 소스 IP 주소와 PSC 연결 ID(pscConnectionId)를 가져올 수 있습니다.

프록시 프로토콜을 사용 설정하는 경우 클라이언트 연결 TCP 페이로드에서 수신 PROXY 프로토콜 헤더를 파싱하고 처리하는 방법에 대한 자세한 내용은 백엔드 웹 서버 소프트웨어 문서를 참조하세요. 서비스 연결에서 PROXY 프로토콜이 사용 설정되어 있지만 백엔드 웹 서버가 PROXY 프로토콜 헤더를 처리하도록 구성되지 않았으면 웹 요청이 잘못된 형식일 수 있습니다. 요청의 형식이 잘못된 경우 서버는 요청을 해석할 수 없습니다.

pscConnectionId는 PROXY 프로토콜 헤더에 유형-길이-값(TLV) 형식으로 인코딩됩니다.

필드 필드 길이 필드 값
유형 1바이트 0xE0(PP2_TYPE_GCP)
기간 2바이트 0x8(8바이트)
8바이트 네트워크 순서에서 8바이트 pscConnectionId

소비자 전달 규칙 또는 제작자 서비스 첨부파일에서 8바이트 pscConnectionId를 확인할 수 있습니다.

pscConnectionId는 지정된 시점에 모든 활성 연결에 대해 전역적으로 고유합니다. 하지만 시간이 경과하면 pscConnectionId를 이러한 시나리오에서 재사용할 수 있습니다.

  • 지정된 VPC 네트워크 안에서 Private Service Connect 엔드포인트(전달 규칙)를 삭제하고 동일한 IP 주소를 사용해서 새 엔드포인트를 만드는 경우 동일한 pscConnectionId가 사용될 수 있습니다.

  • 7일 대기 기간이 지난 후 Private Service Connect 엔드포인트(전달 규칙)가 포함된 VPC 네트워크를 삭제하면 해당 엔드포인트에 사용된 pscConnectionId가 다른 VPC 네트워크의 다른 엔드포인트에 사용될 수 있습니다.

You 디버깅을 위해 그리고 패킷 소스를 trace하기 위해 pscConnectionId를 사용할 수 있습니다.

또한 16바이트 PSC 연결 ID는 제작자 서비스 첨부파일에서 확인할 수 있습니다. PSC 연결 ID는 Private Service Connect 서비스 연결을 식별하는 전역적으로 고유한 ID입니다. 가시성 및 디버깅용으로 PSC 연결 ID를 사용할 수 있습니다. PSC 연결 ID는 PROXY 프로토콜 헤더에 포함되지 않습니다.

게시된 서비스에 대한 액세스 요청 관리

명시적 프로젝트 승인을 사용해 서비스를 게시한 경우 소비자 프로젝트의 연결 요청을 허용하거나 거부할 수 있습니다.

프로젝트를 허용 목록과 거부 목록에 모두 추가하면 해당 프로젝트의 연결 요청이 거부됩니다.

서비스에서 소비자 엔드포인트 연결이 허용되면 서비스 연결이 삭제될 때까지 엔드포인트를 서비스에 연결할 수 있습니다. 이는 프로젝트가 명시적으로 허용되었더라도 적용됩니다. 연결 환경설정이 연결을 자동으로 허용하도록 설정되었을 때 소비자 엔드포인트가 연결되었기 때문입니다.

  • 허용 목록에서 프로젝트를 삭제하면 프로젝트에서 이전에 허용된 모든 소비자 엔드포인트를 서비스에 연결할 수 있습니다. 엔드포인트에 연결하려면 해당 프로젝트에 포함된 새 소비자 엔드포인트의 연결이 허용되어야 합니다.

  • 프로젝트를 거부 목록에 추가하면 프로젝트에서 이전에 허용된 모든 소비자 엔드포인트를 서비스에 연결할 수 있습니다 해당 프로젝트에 포함된 새 소비자 엔드포인트의 연결이 서비스에 연결하지 못하도록 거부됩니다.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 관리할 서비스를 클릭합니다.

  4. 연결된 프로젝트 섹션에 이 서비스에 연결을 시도한 프로젝트가 나열됩니다. 하나 이상의 프로젝트 옆에 있는 체크박스를 선택하고 수락 또는 거부를 클릭합니다.

gcloud

  1. 수정할 서비스 연결을 설명합니다.

    gcloud compute service-attachments describe \
        ATTACHMENT_NAME --region=REGION
    

    출력은 다음 예시와 비슷합니다. 대기 중인 소비자 연결이 있으면 상태가 PENDING으로 나열됩니다.

    이 출력 예시에서 CONSUMER_PROJECT_1 프로젝트는 허용 목록에 있으므로 ENDPOINT_1이 수락되고 서비스에 연결할 수 있습니다. CONSUMER_PROJECT_2 프로젝트는 수락 목록에 없으므로 ENDPOINT_2는 대기 중입니다. CONSUMER_PROJECT_2가 허용 목록에 추가되면 ENDPOINT_2의 상태가 ACCEPTED로 변경되고 엔드포인트가 서비스에 연결될 수 있습니다.

    connectedEndpoints:
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_1/regions/REGION_1/forwardingRules/ENDPOINT_1
      pscConnectionId: 'ENDPOINT_1_ID'
      status: ACCEPTED
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_2/regions/REGION_2/forwardingRules/ENDPOINT_2
      pscConnectionId: 'ENDPOINT_2_ID'
      status: PENDING
    connectionPreference: ACCEPT_MANUAL
    consumerAcceptLists:
    - connectionLimit: LIMIT_1
      projectIdOrNum: CONSUMER_PROJECT_1
    creationTimestamp: 'TIMESTAMP'
    description: 'DESCRIPTION'
    enableProxyProtocol: false
    fingerprint: FINGERPRINT
    id: 'ID'
    kind: compute#serviceAttachment
    name: NAME
    natSubnets:
    - https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/subnetworks/PSC_SUBNET
    pscServiceAttachmentId:
      high: 'PSC_ATTACH_ID_HIGH'
      low: 'PSC_ATTACH_ID_LOW'
    region: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION
    selfLink: https://www.googleapis.com/compute/v1/projects/projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    targetService: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/PRODUCER_FWD_RULE
    
  2. 소비자 프로젝트를 허용 또는 거부합니다.

    --consumer-accept-list, --consumer-reject-list 또는 둘 다를 지정할 수 있습니다. --consumer-accept-list--consumer-reject-list에 값을 여러 개 지정할 수 있습니다.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
        --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2
    

    다음을 바꿉니다.

    • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

    • REGION: 서비스 연결이 있는 리전

    • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. consumerAcceptList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

    • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

    • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. --consumer-reject-list는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

API

  1. 수정할 서비스 연결을 설명합니다.

    대기 중인 소비자 연결이 있으면 상태가 PENDING으로 나열됩니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
  2. 소비자 프로젝트를 허용하거나 거부합니다.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
    {
      ...
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1"
          "connectionLimit": "LIMIT_1",
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2"
          "connectionLimit": "LIMIT_2",
        }
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2",
      ],
      ...
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: 서비스 연결의 프로젝트

    • REGION: 서비스 연결의 리전

    • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

    • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. consumerRejectList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

    • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. consumerAcceptList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

    • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

게시된 서비스의 연결 환경설정 변경

게시된 서비스의 자동 및 명시적인 프로젝트 허용 간에 전환할 수 있습니다.

자동 수락에서 명시적 수락으로 변경해도 변경 전에 서비스에 연결된 소비자 엔드포인트는 영향을 받지 않습니다. 기존 소비자 엔드포인트는 서비스 연결이 삭제될 때까지 게시된 서비스에 연결할 수 있습니다. 새 소비자 엔드포인트는 서비스에 연결하기 전에 수락되어야 합니다. 자세한 내용은 게시된 서비스에 대한 액세스 요청 관리를 참조하세요.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 업데이트할 서비스를 클릭하고 수정을 클릭합니다.

  4. 원하는 연결 환경설정을 선택합니다.

    • 선택한 프로젝트의 연결 허용
    • 모든 프로젝트의 연결 자동 허용
  5. 선택한 프로젝트의 연결 허용으로 전환하는 경우 허용할 프로젝트의 세부정보를 제공하거나 나중에 추가할 수 있습니다.

    1. 허용되는 프로젝트 추가를 클릭합니다.
    2. 프로젝트연결 한도를 입력합니다.
  6. 저장을 클릭합니다.

gcloud

  • 서비스 연결의 연결 환경설정을 ACCEPT_AUTOMATIC에서 ACCEPT_MANUAL으로 변경합니다.

    --consumer-accept-list--consumer-reject-list를 사용하여 서비스에 연결할 수 있는 프로젝트를 제어합니다. 연결 환경설정을 변경할 때 허용 및 거부 목록을 구성하거나 나중에 목록을 업데이트할 수 있습니다.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_MANUAL \
        [ --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2] \
        [ --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 ]
    
    • ATTACHMENT_NAME: 서비스 연결의 이름

    • REGION: 서비스 연결이 있는 리전

    • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. --consumer-accept-list는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

    • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

    • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. --consumer-reject-list는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • 서비스 연결의 연결 환경설정을 ACCEPT_MANUAL에서 ACCEPT_AUTOMATIC으로 변경합니다.

    허용 목록 또는 거부 목록에 값이 있으면 연결 환경설정을 변경할 때 값을 빈 값으로 설정합니다("" 참조).

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_AUTOMATIC \
         --consumer-accept-list="" \
         --consumer-reject-list=""
    
    • ATTACHMENT_NAME: 서비스 연결의 이름

    • REGION: 서비스 연결이 있는 리전

API

  • 서비스 연결의 연결 환경설정을 ACCEPT_AUTOMATIC에서 ACCEPT_MANUAL으로 변경합니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

{
  ...
  "connectionPreference": "ACCEPT_MANUAL",
  "consumerAcceptLists": [
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_1"
      "connectionLimit": "LIMIT_1",
    },
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_2"
      "connectionLimit": "LIMIT_2",
    }
  ],
  "consumerRejectLists": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  ...
}

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • REJECTED_PROJECT_1REJECTED_PROJECT_2: 거부할 프로젝트. consumerRejectList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • ACCEPTED_PROJECT_1ACCEPTED_PROJECT_2: 허용할 프로젝트. consumerAcceptList는 선택사항이며 하나 이상의 프로젝트를 포함할 수 있습니다.

  • LIMIT_1LIMIT_2: 프로젝트의 연결 한도. 연결 한도는 이 서비스에 연결할 수 있는 Private Service Connect 엔드포인트의 수입니다. 허용되는 각 프로젝트에는 연결 한도가 구성되어 있어야 합니다.

  • 서비스 연결의 연결 환경설정을 ACCEPT_MANUAL에서 ACCEPT_AUTOMATIC으로 변경합니다.

    consumerAcceptLists 또는 consumerRejectLists 필드에서 프로젝트를 지정하는 경우 연결 환경설정을 ACCEPT_AUTOMATIC으로 변경할 때 값을 빈 값으로 설정합니다.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

{
  ...
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "consumerAcceptLists": [ ],
  "consumerRejectLists": [ ],
  ...
}

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결의 이름

게시된 서비스에서 서브넷 추가 또는 삭제

게시된 서비스를 수정하여 구성에서 Private Service Connect 서브넷을 추가하거나 삭제할 수 있습니다.

예를 들어 기존 서비스에 더 많은 IP 주소를 사용할 수 있도록 해야 할 수 있습니다. 주소를 더 추가하려면 다음 중 하나를 수행합니다.

게시된 서비스에서 Private Service Connect 서브넷을 삭제하면 서브넷의 IP 주소가 해제되지 않습니다. IP 주소는 소비자 Private Service Connect 엔드포인트가 삭제되거나 Private Service Connect 엔드포인트에 액세스하는 클라이언트 VM이 삭제될 때만 해제됩니다.

서브넷 구성을 변경하는 경우 새 서브넷의 요청이 백엔드 VM에 도달할 수 있도록 방화벽 규칙을 업데이트합니다.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 업데이트할 서비스를 클릭하고 수정을 클릭합니다.

  4. 이 서비스에 사용되는 서브넷을 수정합니다.

    새 서브넷을 추가하려면 다음과 같이 서브넷을 만듭니다.

    1. 새 서브넷 예약을 클릭합니다.
    2. 서브넷의 이름설명(선택사항)을 입력합니다.
    3. 서브넷의 리전을 선택합니다.
    4. 서브넷에 사용할 IP 범위를 입력하고 추가를 클릭합니다.
  5. 저장을 클릭합니다.

gcloud

이 서비스 연결에 사용되는 Private Service Connect 서브넷을 업데이트합니다.

gcloud compute service-attachments update ATTACHMENT_NAME \
    --region=REGION \
    --nat-subnets=PSC_SUBNET_LIST

다음을 바꿉니다.

  • ATTACHMENT_NAME: 서비스 연결의 이름

  • REGION: 서비스 연결이 있는 리전

  • PSC_SUBNET_LIST: 이 서비스 연결에서 사용할 하나 이상의 서브넷의 쉼표로 구분된 목록

API

이 서비스 연결에 사용되는 Private Service Connect 서브넷을 업데이트합니다.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

{
  ...
  "natSubnets": [
    "PSC_SUBNET1_URI",
    "PSC_SUBNET2_URI",
  ],
  ...
}

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결에 할당할 이름

  • PSC_SUBNET1_URIPSC_SUBNET2_URI: 이 서비스 연결과 함께 사용할 서브넷의 URI. 하나 이상의 서브넷을 지정할 수 있습니다.

게시된 서비스 나열

모든 서비스를 나열할 수 있습니다.

콘솔

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

    Private Service Connect 서비스 연결이 표시됩니다.

gcloud

  1. 서비스 연결을 나열합니다.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    다음을 바꿉니다.

    • REGION_LIST: 서비스 연결을 확인할 하나 이상의 리전이 쉼표로 구분된 목록입니다. 예를 들면 us-central1 또는 us-west1,us-central1입니다.

API

특정 리전이나 모든 리전의 모든 서비스 연결을 볼 수 있습니다.

  • 한 리전의 모든 서비스 연결을 확인합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • 모든 리전의 모든 서비스 연결을 확인합니다.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    다음을 바꿉니다.

    • PROJECT_ID: 서비스 연결의 프로젝트

    • REGION: 서비스 연결의 리전

    • ATTACHMENT_NAME: 서비스 연결의 이름

게시된 서비스의 세부정보 보기

게시된 서비스의 모든 구성 세부정보를 볼 수 있습니다. Cloud Console에서 구성 세부정보 일부(예: 서비스 소비자가 서비스에 연결해야 하는 서비스 연결 URI)를 볼 수 있습니다. 서비스 연결 소비자의 pscConnectionId 값을 포함한 모든 세부정보를 보려면 Google Cloud CLI 또는 API를 사용하세요.

Console

게시된 서비스의 세부정보를 볼 수 있습니다. 서비스 연결 필드에는 서비스 연결 URI가 포함되어 있습니다.

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 확인하려는 서비스를 클릭합니다.

gcloud

게시된 서비스의 세부정보를 볼 수 있습니다. selfLink 필드에는 서비스 연결 URI가 포함됩니다.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

게시된 서비스의 세부정보를 볼 수 있습니다. selfLink 필드에는 서비스 연결 URI가 포함됩니다.

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

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결의 이름

게시된 서비스 삭제

서비스 연결에 대한 소비자 연결이 있어도 게시된 서비스를 삭제할 수 있습니다. 게시된 서비스를 삭제하면 서비스 연결만 삭제됩니다. 연결된 부하 분산기는 삭제되지 않습니다. 게시된 서비스를 삭제하면 다음이 적용됩니다.

Console

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

    Private Service Connect로 이동

  2. 게시된 서비스 탭을 클릭합니다.

  3. 삭제할 서비스를 클릭합니다.

  4. 삭제를 클릭합니다.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

다음을 바꿉니다.

  • PROJECT_ID: 서비스 연결의 프로젝트

  • REGION: 서비스 연결의 리전

  • ATTACHMENT_NAME: 서비스 연결의 이름

로깅

백엔드 VM이 포함된 서브넷에 VPC 흐름 로그를 사용 설정할 수 있습니다. 로그에는 Private Service Connect 서브넷의 백엔드 VM과 IP 주소 간의 흐름이 표시됩니다.

알려진 문제

  • PATCH API를 사용하여 서비스 연결을 업데이트하는 경우 업데이트할 필드뿐만 아니라 요청 본문에 서비스 연결에 대한 모든 필드를 제공해야 합니다. serviceAttachments.get을 사용해 모든 필드를 가져옵니다.