네트워크 설정하기

이 페이지에서는 Vertex AI Workbench 관리형 노트북 인스턴스의 네트워킹 옵션을 설명하고 네트워크를 설정하는 방법을 보여줍니다.

이 가이드는 이미 Google Cloud 네트워킹 개념에 익숙한 네트워킹 관리자에게 권장됩니다.

개요

이 가이드에서는 다음 네트워크 옵션을 각각 구성하는 방법을 설명합니다.

기본적으로 관리형 노트북 인스턴스는 Google 관리 네트워크를 사용합니다. 원하는 경우 프로젝트 또는 액세스 권한이 있는 공유된 VPC 네트워크에 있는 Virtual Private Cloud 네트워크를 지정할 수 있습니다. VPC 또는 공유 VPC 네트워크를 지정하는 경우 네트워크에 비공개 서비스 액세스 연결이 필요합니다.

지원되는 특성 비교

다음 표에서는 각 네트워킹 옵션에 지원되는 일반적인 특성을 설명합니다.

특성 Google 관리 네트워크 인스턴스의 프로젝트에 있는 VPC 네트워크 공유된 VPC 네트워크
외부 IP 지원됨 지원됨 지원됨
내부 IP 지원됨 지원됨 지원됨
비공개 Google 액세스 지원되지 않음 지원됨 지원됨
VPC 지원됨 지원됨 지원됨
VPC 네트워크 피어링(서비스 네트워킹 필요) 지원되지 않음 지원됨 지원됨

기본 Google 관리 네트워크 사용

기본 네트워크는 Google이 관리하며 추가적인 설정을 구성할 필요가 없습니다.

기본 Google 관리 네트워크로 관리형 노트북 인스턴스를 만들면 인스턴스가 테넌트 프로젝트에 배포되고 기본 VPC와 서브넷이 사용됩니다.

Python 또는 Conda 패키지와 같은 추가 리소스를 다운로드하려면 기본 Google 관리 네트워크를 사용하는 관리형 노트북 인스턴스에 외부 IP 주소가 필요합니다.

동일한 프로젝트의 VPC 네트워크에 인스턴스 연결

관리형 노트북 인스턴스를 관리형 노트북 인스턴스와 동일한 프로젝트의 VPC 네트워크에 연결하려면 다음 단계를 완료하세요.

이 옵션을 사용하려면 비공개 서비스 액세스를 구성해야 합니다.

시작하기 전에

  1. 관리형 노트북 인스턴스가 위치할 Google Cloud 프로젝트를 생성하거나 선택합니다.

    프로젝트 선택기로 이동

  2. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  3. API Compute Engine, Notebooks, and Service Networking 사용 설정

    API 사용 설정

  4. 이 가이드의 gcloud 명령줄 예시를 실행하려면 gcloud CLI를 설치합니다.

VPC의 비공개 서비스 액세스 설정

비공개 서비스 액세스를 설정하면 네트워크와 Google 또는 타사 서비스(서비스 프로듀서) 소유 네트워크 간에 비공개 연결이 설정됩니다. 이 경우 관리형 노트북 인스턴스는 서비스 프로듀서입니다. 비공개 서비스 액세스를 설정하려면 서비스 프로듀서의 IP 범위를 예약한 다음 관리형 노트북 인스턴스와 피어링 연결을 생성합니다.

프로젝트 ID 구성

프로젝트 ID를 구성하려면 다음 명령어를 사용합니다.

gcloud config set project PROJECT_ID
PROJECT_ID를 관리형 노트북 인스턴스가 위치할 Google Cloud 프로젝트의 프로젝트 ID로 바꿉니다. 인스턴스는 나중에 생성합니다.

API 사용 설정

필요한 API를 사용 설정했는지 확인합니다.

VPC 만들기 또는 선택

  1. 관리형 노트북 인스턴스와 함께 사용할 지원되는 관리형 노트북 리전에서 기존 VPC를 선택하거나 새로 만듭니다.

    비공개 서비스 액세스가 구성된 기존 VPC를 사용하여 관리형 노트북 인스턴스와 피어링하려면 관리형 노트북 인스턴스 만들기로 건너뜁니다.

    새 VPC를 만들어야 하는 경우 다음 gcloud CLI 명령어를 실행합니다.

    gcloud compute networks create VPC_NAME \
        --project=PROJECT_ID --subnet-mode=auto \
        --mtu=1460 --bgp-routing-mode=regional
    
    gcloud compute firewall-rules create VPC_NAME-allow-icmp \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ ICMP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=icmp
    
    gcloud compute firewall-rules create VPC_NAME-allow-internal \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ connections\ from\ any\ source\ in\ the\ network\ IP\ range\ to\ any\ instance\ on\ the\ network\ using\ all\ protocols. \
        --direction=INGRESS --priority=65534 --source-ranges=10.128.0.0/9 \
        --action=ALLOW --rules=all
    
    gcloud compute firewall-rules create VPC_NAME-allow-rdp \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ RDP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network\ using\ port\ 3389. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=tcp:3389
    
    gcloud compute firewall-rules create VPC_NAME-allow-ssh \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ TCP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network\ using\ port\ 22. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=tcp:22
    

    VPC_NAME을 VPC의 이름으로 바꿉니다.

DNS 항목 만들기 및 구성

Vertex AI Workbench 관리형 노트북 인스턴스는 Virtual Private Cloud 네트워크가 기본적으로 처리하지 않는 도메인 여러 개를 사용합니다. VPC 네트워크에서 이러한 도메인으로 전송된 요청을 올바르게 처리하도록 하려면 Cloud DNS를 사용하여 DNS 레코드를 추가합니다. VPC 경로에 대한 자세한 내용은 경로 개요를 참조하세요.

도메인의 관리형 영역을 만들려면 요청을 라우팅할 DNS 항목을 추가하고 트랜잭션을 실행한 후 다음 단계를 완료합니다. 요청을 처리해야 하는 *.notebooks.googleapis.com으로 시작하는 여러 도메인 각각에 이러한 단계를 반복합니다.

Cloud Shell에서 또는 Google Cloud CLI가 설치된 환경에서 다음 Google Cloud CLI 명령어를 입력합니다.

  1. VPC 네트워크에서 처리해야 하는 도메인 중 하나의 비공개 관리 영역을 만들려면 다음을 실행합니다.

        gcloud dns managed-zones create ZONE_NAME \
            --visibility=private \
            --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
            --dns-name=DNS_NAME \
            --description="Description of your managed zone"
        

    다음을 바꿉니다.

    • ZONE_NAME: 만들 영역의 이름. 도메인마다 별도의 영역을 사용해야 합니다. 이 영역 이름은 다음 각 단계에서 사용됩니다.
    • PROJECT_ID: VPC 네트워크를 호스팅하는 프로젝트의 ID
    • NETWORK_NAME: 이전에 만든 VPC 네트워크의 이름
    • DNS_NAME: *. 뒤에 오는 도메인 이름의 일부로서 끝에 마침표가 있음. 예를 들어 *.notebooks.googleapis.comnotebooks.googleapis.com.DNS_NAME입니다.
  2. 트랜잭션을 시작합니다.

        gcloud dns record-sets transaction start --zone=ZONE_NAME
        
  3. 다음 DNS A 레코드를 추가합니다. 이렇게 하면 트래픽이 Google의 제한된 IP 주소로 다시 라우팅됩니다.

        gcloud dns record-sets transaction add \
            --name=DNS_NAME. \
            --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
            --zone=ZONE_NAME \
            --ttl=300
        
  4. 방금 추가한 A 레코드를 가리키도록 다음 DNS CNAME 레코드를 추가합니다. 그러면 도메인과 일치하는 모든 트래픽이 이전 단계에서 나열한 IP 주소로 리디렉션됩니다.

        gcloud dns record-sets transaction add \
            --name=\*.DNS_NAME. \
            --type=CNAME DNS_NAME. \
            --zone=ZONE_NAME \
            --ttl=300
        
  5. 트랜잭션을 실행합니다.

        gcloud dns record-sets transaction execute --zone=ZONE_NAME
        
  6. 다음 도메인 각각에 이 단계를 반복합니다. 반복할 때마다 ZONE_NAMEDNS_NAME을 해당 도메인에 적절한 값으로 변경합니다. 매번 PROJECT_IDNETWORK_NAME을 동일하게 유지합니다. *.notebooks.googleapis.com에는 이미 이러한 단계를 완료했습니다.

    • *.notebooks.googleapis.com
    • *.notebooks.cloud.google.com
    • *.notebooks.googleusercontent.com
    • *.googleapis.com: 다른 Google API 및 서비스와 상호작용하는 코드 실행

관리형 노트북 인스턴스의 IP 범위 예약

서비스 프로듀서를 위해 IP 범위를 예약하면 관리형 노트북 인스턴스 및 기타 서비스에서 해당 범위를 사용할 수 있습니다. 동일한 범위를 사용하여 다른 서비스 프로듀서에 연결하려는 경우 IP가 소진되지 않도록 범위를 넓혀 충분히 할당하는 것이 좋습니다.

gcloud compute addresses create 명령어를 사용하여 예약된 범위를 설정합니다.

gcloud compute addresses create PEERING_RANGE_NAME \
    --global \
    --prefix-length=16 \
    --description="Managed notebooks range" \
    --network=NETWORK_NAME  \
    --purpose=VPC_PEERING

다음을 바꿉니다.

  • PEERING_RANGE_NAME: 범위의 이름입니다.
  • NETWORK_NAME: 네트워크의 이름입니다.

prefix-length 값이 16이면 서브넷 마스크가 /16인 CIDR 블록이 Vertex AI Workbench 관리형 노트북과 같은 Google Cloud 서비스용으로 예약된다는 의미입니다.

잘못된 서비스 네트워킹 구성을 방지하려면 /24 이하의 서브넷 마스크를 사용하세요.

다음 명령어를 사용하여 주소를 확인합니다.

gcloud compute addresses list

피어링 연결 설정

gcloud services vpc-peerings connect를 사용하여 VPC 호스트 프로젝트와 Google 서비스 네트워킹 간의 피어링 연결을 설정합니다.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --network=NETWORK_NAME \
    --ranges=PEERING_RANGE_NAME \
    --project=PROJECT_ID

피어링을 나열하려면 다음 명령어를 사용합니다.

gcloud services vpc-peerings list --network=NETWORK_NAME

관리형 노트북 인스턴스 만들기

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • USER_ACCOUNT: 이메일 주소 형식의 사용자 계정
  • MACHINE_TYPE: 머신 유형(예: n1-standard-1)
  • PROJECT_ID: 관리형 노트북 인스턴스의 프로젝트 ID
  • NETWORK_NAME: VPC 네트워크 이름
  • LOCATION: VPC 네트워크의 리전
  • NOTEBOOK_NAME: 관리형 노트북 인스턴스의 이름
  • SUBNET_NAME: VPC 네트워크의 서브넷 이름
  • PEERING_RANGE_NAME: (선택사항) 피어링 범위를 지정하는 경우 피어링 범위의 이름

HTTP 메서드 및 URL:

POST https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME

JSON 요청 본문:

{
  "access_config": {
    "access_type": "SINGLE_USER",
    "runtime_owner": "USER_ACCOUNT"
  },
  "virtual_machine": {
    "virtual_machine_config": {
      "machine_type": "MACHINE_TYPE",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "subnet":  "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_NAME",
      "internal_ip_only": true,
      "reserved_ip_range": "PEERING_RANGE_NAME" # Optional
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME" | Select-Object -Expand Content
 

연결 확인

관리형 노트북 인스턴스가 VPC 네트워크에 연결되어 있는지 확인하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.

    VPC 네트워크 피어링으로 이동

  2. VPC 네트워크 피어링 페이지에서 연결을 찾습니다.

커스텀 경로 내보내기

커스텀 경로를 사용하는 경우 Vertex AI Workbench 관리형 노트북이 커스텀 경로를 가져올 수 있도록 내보내야 합니다.

커스텀 경로를 내보내려면 VPC에서 피어링 연결을 업데이트합니다. 커스텀 경로를 내보내면 온프레미스 네트워크 경로 등 VPC 네트워크에 있는 모든 이용 가능한 고정 경로와 동적 경로가 서비스 프로듀서의 네트워크(여기에서는 관리형 노트북)로 전송됩니다. 이렇게 하면 필요한 연결이 설정되고 관리형 노트북 인스턴스가 온프레미스 네트워크로 트래픽을 다시 보낼 수 있습니다.

업데이트할 피어링 연결의 이름을 나열하려면 다음 명령어를 사용합니다. 여러 피어링 연결이 있는 경우 --format 플래그를 생략합니다.

gcloud services vpc-peerings list \
    --network=NETWORK_NAME \
    --service=servicenetworking.googleapis.com \
    --project=PROJECT_ID \
    --format "value(peering)"

커스텀 경로를 내보내도록 피어링 연결을 업데이트하려면 다음 명령어를 사용합니다.

gcloud compute networks peerings update PEERING_NAME \
    --network=NETWORK_NAME \
    --export-custom-routes \
    --project=PROJECT_ID

PEERING_NAME을 피어링 연결의 이름으로 바꿉니다.

피어링 연결 상태 확인

피어링 연결이 활성 상태인지 확인하려면 다음 명령어를 사용하여 피어링 연결을 나열하면 됩니다.

gcloud compute networks peerings list --network NETWORK_NAME

방금 만든 피어링 연결의 상태가 ACTIVE인지 확인합니다. 활성 피어링 연결에 대해 자세히 알아보세요.

공유 VPC 네트워크에 인스턴스 연결

관리형 노트북 인스턴스를 액세스 권한이 있는 공유 VPC 네트워크에 연결하려면 다음 단계를 완료합니다.

이 옵션을 사용하려면 비공개 서비스 액세스를 구성해야 합니다.

시작하기 전에

  1. 관리형 노트북 인스턴스가 위치할 Google Cloud 프로젝트를 생성하거나 선택합니다.

    프로젝트 선택기로 이동

  2. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  3. API Compute Engine, Notebooks, and Service Networking 사용 설정

    API 사용 설정

  4. 공유 VPC를 사용하는 경우 관리형 노트북 인스턴스를 VPC 호스트 프로젝트와 별도의 Google Cloud 프로젝트에서 실행합니다. 이전 단계를 반복하여 VPC 호스트 프로젝트에서 Compute Engine, Notebooks, Service Networking API를 사용 설정합니다. 공유 VPC를 프로비저닝하는 방법을 자세히 알아보세요.

  5. 이 가이드의 gcloud 명령줄 예시를 실행하려면 gcloud CLI를 설치합니다.

VPC의 비공개 서비스 액세스 설정

비공개 서비스 액세스를 설정하면 네트워크와 Google 또는 타사 서비스(서비스 프로듀서) 소유 네트워크 간에 비공개 연결이 설정됩니다. 이 경우 관리형 노트북 인스턴스는 서비스 프로듀서입니다. 비공개 서비스 액세스를 설정하려면 서비스 프로듀서의 IP 범위를 예약한 다음 관리형 노트북 인스턴스와 피어링 연결을 생성합니다.

프로젝트 ID 구성

프로젝트 ID를 구성하려면 다음 명령어를 사용합니다.

gcloud config set project PROJECT_ID
PROJECT_ID를 VPC 호스트 프로젝트의 프로젝트 ID로 바꿉니다. 아직 VPC를 만들지 않은 경우 생성 후 프로젝트 ID를 사용합니다.

API 사용 설정

VPC 호스트 프로젝트와 관리형 노트북 인스턴스가 위치할 Google Cloud 프로젝트 모두에서 필수 API를 사용 설정했는지 확인하세요.

VPC 만들기 또는 선택

  1. 관리형 노트북 인스턴스와 함께 사용할 지원되는 관리형 노트북 리전에서 기존 VPC를 선택하거나 새로 만듭니다.

    비공개 서비스 액세스가 구성된 기존 VPC를 사용하여 관리형 노트북 인스턴스와 피어링하려면 관리형 노트북 인스턴스 만들기로 건너뜁니다.

    새 VPC를 만들어야 하는 경우 다음 gcloud CLI 명령어를 실행합니다.

    gcloud compute networks create VPC_NAME \
        --project=PROJECT_ID --subnet-mode=auto \
        --mtu=1460 --bgp-routing-mode=regional
    
    gcloud compute firewall-rules create VPC_NAME-allow-icmp \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ ICMP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=icmp
    
    gcloud compute firewall-rules create VPC_NAME-allow-internal \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ connections\ from\ any\ source\ in\ the\ network\ IP\ range\ to\ any\ instance\ on\ the\ network\ using\ all\ protocols. \
        --direction=INGRESS --priority=65534 --source-ranges=10.128.0.0/9 \
        --action=ALLOW --rules=all
    
    gcloud compute firewall-rules create VPC_NAME-allow-rdp \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ RDP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network\ using\ port\ 3389. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=tcp:3389
    
    gcloud compute firewall-rules create VPC_NAME-allow-ssh \
        --project=PROJECT_ID \
        --network=projects/PROJECT_ID/global/networks/VPC_NAME \
        --description=Allows\ TCP\ connections\ from\ any\ source\ to\ any\ instance\ on\ the\ network\ using\ port\ 22. \
        --direction=INGRESS --priority=65534 --source-ranges=0.0.0.0/0 \
        --action=ALLOW --rules=tcp:22
    

    VPC_NAME을 VPC의 이름으로 바꿉니다.

DNS 항목 만들기 및 구성

Vertex AI Workbench 관리형 노트북 인스턴스는 Virtual Private Cloud 네트워크가 기본적으로 처리하지 않는 도메인 여러 개를 사용합니다. VPC 네트워크에서 이러한 도메인으로 전송된 요청을 올바르게 처리하도록 하려면 Cloud DNS를 사용하여 DNS 레코드를 추가합니다. VPC 경로에 대한 자세한 내용은 경로 개요를 참조하세요.

도메인의 관리형 영역을 만들려면 요청을 라우팅할 DNS 항목을 추가하고 트랜잭션을 실행한 후 다음 단계를 완료합니다. 요청을 처리해야 하는 *.notebooks.googleapis.com으로 시작하는 여러 도메인 각각에 이러한 단계를 반복합니다.

Cloud Shell에서 또는 Google Cloud CLI가 설치된 환경에서 다음 Google Cloud CLI 명령어를 입력합니다.

  1. VPC 네트워크에서 처리해야 하는 도메인 중 하나의 비공개 관리 영역을 만들려면 다음을 실행합니다.

        gcloud dns managed-zones create ZONE_NAME \
            --visibility=private \
            --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
            --dns-name=DNS_NAME \
            --description="Description of your managed zone"
        

    다음을 바꿉니다.

    • ZONE_NAME: 만들 영역의 이름. 도메인마다 별도의 영역을 사용해야 합니다. 이 영역 이름은 다음 각 단계에서 사용됩니다.
    • PROJECT_ID: VPC 네트워크를 호스팅하는 프로젝트의 ID
    • NETWORK_NAME: 이전에 만든 VPC 네트워크의 이름
    • DNS_NAME: *. 뒤에 오는 도메인 이름의 일부로서 끝에 마침표가 있음. 예를 들어 *.notebooks.googleapis.comnotebooks.googleapis.com.DNS_NAME입니다.
  2. 트랜잭션을 시작합니다.

        gcloud dns record-sets transaction start --zone=ZONE_NAME
        
  3. 다음 DNS A 레코드를 추가합니다. 이렇게 하면 트래픽이 Google의 제한된 IP 주소로 다시 라우팅됩니다.

        gcloud dns record-sets transaction add \
            --name=DNS_NAME. \
            --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
            --zone=ZONE_NAME \
            --ttl=300
        
  4. 방금 추가한 A 레코드를 가리키도록 다음 DNS CNAME 레코드를 추가합니다. 그러면 도메인과 일치하는 모든 트래픽이 이전 단계에서 나열한 IP 주소로 리디렉션됩니다.

        gcloud dns record-sets transaction add \
            --name=\*.DNS_NAME. \
            --type=CNAME DNS_NAME. \
            --zone=ZONE_NAME \
            --ttl=300
        
  5. 트랜잭션을 실행합니다.

        gcloud dns record-sets transaction execute --zone=ZONE_NAME
        
  6. 다음 도메인 각각에 이 단계를 반복합니다. 반복할 때마다 ZONE_NAMEDNS_NAME을 해당 도메인에 적절한 값으로 변경합니다. 매번 PROJECT_IDNETWORK_NAME을 동일하게 유지합니다. *.notebooks.googleapis.com에는 이미 이러한 단계를 완료했습니다.

    • *.notebooks.googleapis.com
    • *.notebooks.cloud.google.com
    • *.notebooks.googleusercontent.com
    • *.googleapis.com: 다른 Google API 및 서비스와 상호작용하는 코드 실행

관리형 노트북 인스턴스의 IP 범위 예약

서비스 프로듀서를 위해 IP 범위를 예약하면 관리형 노트북 인스턴스 및 기타 서비스에서 해당 범위를 사용할 수 있습니다. 동일한 범위를 사용하여 다른 서비스 프로듀서에 연결하려는 경우 IP가 소진되지 않도록 범위를 넓혀 충분히 할당하는 것이 좋습니다.

gcloud compute addresses create 명령어를 사용하여 예약된 범위를 설정합니다.

gcloud compute addresses create PEERING_RANGE_NAME \
    --global \
    --prefix-length=16 \
    --description="Managed notebooks range" \
    --network=NETWORK_NAME  \
    --purpose=VPC_PEERING

다음을 바꿉니다.

  • PEERING_RANGE_NAME: 범위의 이름입니다.
  • NETWORK_NAME: 네트워크의 이름입니다.

prefix-length 값이 16이면 서브넷 마스크가 /16인 CIDR 블록이 Vertex AI Workbench 관리형 노트북과 같은 Google Cloud 서비스용으로 예약된다는 의미입니다.

잘못된 서비스 네트워킹 구성을 방지하려면 /24 이하의 서브넷 마스크를 사용하세요.

다음 명령어를 사용하여 주소를 확인합니다.

gcloud compute addresses list

피어링 연결 설정

gcloud services vpc-peerings connect를 사용하여 VPC 호스트 프로젝트와 Google 서비스 네트워킹 간의 피어링 연결을 설정합니다.

gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --network=NETWORK_NAME \
    --ranges=PEERING_RANGE_NAME \
    --project=PROJECT_ID

피어링을 나열하려면 다음 명령어를 사용합니다.

gcloud services vpc-peerings list --network=NETWORK_NAME

관리형 노트북 인스턴스 만들기

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • USER_ACCOUNT: 이메일 주소 형식의 사용자 계정
  • MACHINE_TYPE: 머신 유형(예: n1-standard-1)
  • PROJECT_ID: 관리형 노트북 인스턴스의 프로젝트 ID
  • NETWORK_NAME: VPC 네트워크 이름
  • LOCATION: VPC 네트워크의 리전
  • NOTEBOOK_NAME: 관리형 노트북 인스턴스의 이름
  • SUBNET_NAME: VPC 네트워크의 서브넷 이름
  • PEERING_RANGE_NAME: (선택사항) 피어링 범위를 지정하는 경우 피어링 범위의 이름

HTTP 메서드 및 URL:

POST https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME

JSON 요청 본문:

{
  "access_config": {
    "access_type": "SINGLE_USER",
    "runtime_owner": "USER_ACCOUNT"
  },
  "virtual_machine": {
    "virtual_machine_config": {
      "machine_type": "MACHINE_TYPE",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "subnet":  "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_NAME",
      "internal_ip_only": true,
      "reserved_ip_range": "PEERING_RANGE_NAME" # Optional
    }
  }
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/runtimes?runtimeId=NOTEBOOK_NAME" | Select-Object -Expand Content
 

연결 확인

관리형 노트북 인스턴스가 공유 VPC 네트워크에 연결되어 있는지 확인하려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔에서 VPC 네트워크 피어링 페이지로 이동합니다.

    VPC 네트워크 피어링으로 이동

  2. VPC 네트워크 피어링 페이지에서 연결을 찾습니다.

커스텀 경로 내보내기

커스텀 경로를 사용하는 경우 Vertex AI Workbench 관리형 노트북이 커스텀 경로를 가져올 수 있도록 내보내야 합니다.

커스텀 경로를 내보내려면 VPC에서 피어링 연결을 업데이트합니다. 커스텀 경로를 내보내면 온프레미스 네트워크 경로 등 VPC 네트워크에 있는 모든 이용 가능한 고정 경로와 동적 경로가 서비스 프로듀서의 네트워크(여기에서는 관리형 노트북)로 전송됩니다. 이렇게 하면 필요한 연결이 설정되고 관리형 노트북 인스턴스가 온프레미스 네트워크로 트래픽을 다시 보낼 수 있습니다.

업데이트할 피어링 연결의 이름을 나열하려면 다음 명령어를 사용합니다. 여러 피어링 연결이 있는 경우 --format 플래그를 생략합니다.

gcloud services vpc-peerings list \
    --network=NETWORK_NAME \
    --service=servicenetworking.googleapis.com \
    --project=PROJECT_ID \
    --format "value(peering)"

커스텀 경로를 내보내도록 피어링 연결을 업데이트하려면 다음 명령어를 사용합니다.

gcloud compute networks peerings update PEERING_NAME \
    --network=NETWORK_NAME \
    --export-custom-routes \
    --project=PROJECT_ID

PEERING_NAME을 피어링 연결의 이름으로 바꿉니다.

피어링 연결 상태 확인

피어링 연결이 활성 상태인지 확인하려면 다음 명령어를 사용하여 피어링 연결을 나열하면 됩니다.

gcloud compute networks peerings list --network NETWORK_NAME

방금 만든 피어링 연결의 상태가 ACTIVE인지 확인합니다. 활성 피어링 연결에 대해 자세히 알아보세요.

다음 단계