공유 VPC 네트워크

이 가이드에서는 중앙에서 관리되는 공유 VPC 네트워크를 사용하는 Cloud TPU를 설정하는 방법을 설명합니다. 공유 VPC 네트워크를 사용하면 조직에서 여러 프로젝트의 리소스를 공통 네트워크에 연결할 수 있습니다.

시작하기 전에

  1. Google Cloud CLI가 설치되지 않았으면 지금 설치합니다.
  2. Google Cloud CLI를 초기화합니다.
  3. 공유 VPC 개념을 숙지합니다.
  4. 공유 VPC 네트워크 한 개 이상이 포함된 호스트 프로젝트를 사용 설정합니다. 공유 VPC 관리자가 이 작업을 수행해야 합니다.
  5. VPC 네트워크에 서비스 프로젝트를 한 개 이상 연결합니다. 공유 VPC 관리자가 이 작업을 수행해야 합니다.
  6. 호스트 프로젝트에서 VPC 네트워크를 만듭니다.

비공개 서비스 액세스 구성

비공개 서비스 액세스는 개발자의 네트워크와 Cloud TPU 서비스 네트워크 간에 VPC 피어링을 만드는 데 사용됩니다. 공유 VPC와 함께 TPU를 사용하려면 먼저 네트워크에 비공개 서비스 액세스 연결을 구축해야 합니다.

  1. 공유 VPC 호스트 프로젝트의 프로젝트 ID를 가져온 후 다음과 같이 프로젝트 ID를 사용하여 Google Cloud CLI 명령어를 구성합니다.

      gcloud config set project project-id
    

    프로젝트 ID는 Google Cloud Console에서 가져올 수 있습니다.

  2. 다음 Google Cloud CLI 명령어를 사용하여 Service Networking API를 사용 설정합니다.

      gcloud services enable servicenetworking.googleapis.com
    

    Google Cloud Console에서도 Service Networking API를 사용 설정할 수 있습니다.

  3. 서비스 네트워킹에서 사용할 예약된 주소 범위를 할당합니다. prefix-length는 24 이하여야 합니다. 예를 들면 다음과 같습니다.

    gcloud compute addresses create SN-RANGE-1 --global \
    --addresses=10.110.0.0 \
    --prefix-length=16 \
    --purpose=VPC_PEERING \
    --network=network-name
  4. 비공개 서비스 액세스 연결을 구축합니다.

      gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=SN-RANGE-1 --network=network-name

  5. 네트워크에 비공개 서비스 액세스 연결이 구축되어 있는지 확인합니다. 이미 구축되어 있는 경우 공유 VPC와 함께 TPU를 사용할 수 있습니다.

비공개 서비스 액세스 확인

다음 명령어를 실행하여 네트워크에 비공개 서비스 액세스 연결이 구축되어 있는지 확인합니다.

gcloud services vpc-peerings list --network=network-name

공유 VPC 네트워크에서 TPU 사용

Google 서비스 네트워크로 VPC 네트워크를 구축한 후에는 Cloud TPU 프로비저닝을 시작할 수 있습니다.

Google Cloud CLI 구성

  1. 프로젝트 ID의 변수를 만듭니다.

    export PROJECT_ID=project-id
    
  2. Cloud TPU를 만들려는 위치의 프로젝트가 사용되도록 Google Cloud CLI를 구성합니다.

    gcloud config set project ${PROJECT_ID}
    

TPU API 활성화

Cloud TPU를 사용하려면 프로젝트에서 TPU API를 활성화해야 합니다. 다음 Google Cloud CLI 명령어를 실행하여 TPU API를 사용 설정합니다.

gcloud services enable tpu.googleapis.com

Google Cloud Console에서도 사용 설정할 수 있습니다.

Service Networking API 활성화

공유 VPC 네트워크에서 TPU를 만들려면 서비스 프로젝트에서 Service Networking API를 활성화해야 합니다. 이 작업을 Cloud Platform 프로젝트마다 한 번만 수행해야 합니다. 다음 Google Cloud CLI 명령어를 실행하여 Service Networking API를 사용 설정합니다.

gcloud services enable servicenetworking.googleapis.com

Google Cloud 콘솔에서도 사용 설정할 수 있습니다.

호스트 프로젝트에서 서비스 계정 권한 부여

TPU VM 아키텍처를 사용하는 경우 서비스 프로젝트의 호스트 프로젝트에 있는 리소스를 관리할 수 있는 TPU 서비스 계정 권한을 부여해야 합니다. 'TPU 공유 VPC 에이전트'(roles/tpu.xpnAgent) 역할을 사용하여 이 작업을 수행합니다. 다음 Google Cloud CLI 명령어를 실행하여 이 역할 결합을 부여합니다.

  1. 공유 VPC 호스트 프로젝트의 프로젝트 ID에 대한 변수를 만듭니다.

      export HOST_PROJECT_ID=host-project-id
    
  2. 서비스 프로젝트의 프로젝트 번호에 대한 변수를 만듭니다. TPU를 만드는 프로젝트입니다. Google Cloud 콘솔에서 이 안내에 따라 프로젝트 번호를 찾을 수 있습니다.

      export PROJECT_NUMBER=service-project-number
    
  3. 서비스 프로젝트의 TPU 서비스 계정에 대한 공유 VPC 호스트 프로젝트에 역할 결합을 추가합니다.

    gcloud projects add-iam-policy-binding $HOST_PROJECT_ID \
      --member=service-${PROJECT_NUMBER}@gcp-sa-tpu.iam.gserviceaccount.com \
      --role=roles/tpu.xpnAgent
    

TPU 만들기

Google Cloud CLI 명령어를 사용하여 Compute Engine VM 및 Cloud TPU를 실행할 수 있습니다. 사용하는 명령어는 TPU VM과 TPU 노드 중 무엇을 사용하는지에 따라 다릅니다. 자세한 내용은 시스템 아키텍처를 참조하세요.

TPU VM

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=zone \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.7.0 \
  --network=network-name

TPU 노드

$ gcloud compute tpus execution-groups create \
  --name=tpu-name \
  --zone=zone \
  --tf-version=2.7.0 \
  --machine-type=n1-standard-1 \
  --accelerator-type=v3-8 \
  --network=network-name \
  --use-service-networking
  • TPU 노드를 사용하는 경우 use-service-networkingtrue로 설정하여 공유 VPC 네트워크에 연결할 수 있는 Cloud TPU를 만듭니다.

  • 네트워크 필드에는 호스트 프로젝트 ID 또는 호스트 프로젝트 번호와 네트워크 이름이 포함되어야 합니다. 예를 들면 projects/my-host-project-id/global/networks/my-network입니다.

  • Cloud TPU를 지원하는 GCP 영역에 대한 자세한 내용은 사용 가능한 영역을 참조하세요.

TPU 작업에 대한 자세한 내용은 Cloud TPU 사용자 가이드를 참조하세요.

VPC 피어링 삭제

컴퓨팅 네트워킹 API를 사용하여 피어링 연결을 해제할 수 있습니다. 이러한 호출은 공유 VPC 호스트 프로젝트에서 수행되어야 합니다.

  1. 모든 VPC 피어링을 나열합니다.

    gcloud compute networks peerings list --network=network-name
    
  2. VPC 피어링을 삭제합니다.

    gcloud compute networks peerings delete peering-name --network=network-name