Cloud TPU에 대한 네트워킹 및 액세스 구성

이 페이지에서는 다음을 포함하여 Cloud TPU의 커스텀 네트워크 및 액세스 구성을 설정하는 방법을 설명합니다.

  • 커스텀 네트워크 및 서브네트워크 지정
  • 내부 IP 주소 지정
  • TPU에 대한 SSH 액세스 사용 설정
  • TPU에 커스텀 서비스 계정 연결
  • 커스텀 SSH 메서드 사용 설정

기본 요건

이 절차를 실행하기 전에 Google Cloud CLI를 설치하고, Google Cloud 프로젝트를 만들고, Cloud TPU API를 사용 설정해야 합니다. 자세한 내용은 Cloud TPU 환경 설정을 참조하세요.

커스텀 네트워크 및 서브네트워크 지정

원하는 경우 TPU에 사용할 네트워크 및 서브네트워크를 지정할 수 있습니다. 네트워크가 지정되지 않은 경우 TPU는 default 네트워크에 배치됩니다. 서브네트워크는 TPU가 실행되는 영역과 동일한 리전에 있어야 합니다.

  1. 다음의 유효한 형식 중 하나와 일치하는 네트워크를 만듭니다.

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
    • compute/{version}/projects/{proj-id}/global/networks/{network}
    • compute/{version}/projects/{proj-##}/global/networks/{network}
    • projects/{proj-id}/global/networks/{network}
    • projects/{proj-##}/global/networks/{network}
    • global/networks/{network}
    • {network}

    자세한 내용은 VPC 네트워크 만들기 및 관리를 참조하세요.

  2. 다음의 유효한 형식 중 하나와 일치하는 서브네트워크를 만듭니다.

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • regions/{region}/subnetworks/{subnetwork}
    • {subnetwork}

    자세한 내용은 VPC 네트워크 만들기 및 관리를 참조하세요.

  3. 커스텀 네트워크 및 서브네트워크를 지정하여 TPU를 만듭니다.

    gcloud

    gcloud CLI를 사용하여 네트워크 및 서브네트워크를 지정하려면 create 요청에 --network--subnetwork 플래그를 추가합니다.

        $ gcloud compute tpus tpu-vm create TPU_NAME \
            --zone=us-central2-b \
            --accelerator-type=v4-8 \
            --version=TPU_SOFTWARE_VERSION
            --network=NETWORK
            --subnetwork=SUBNETWORK

    curl

    curl 호출에서 네트워크와 서브네트워크를 지정하려면 요청 본문에 networksubnetwork 필드를 추가합니다.

        $ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
            runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
            network_config: {network: 'NETWORK', subnetwork: 'SUBNETWORK', enable_external_ips: true}, \
            shielded_instance_config: { enable_secure_boot: true }}" \
            https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

내부 IP 주소 사용 설정

TPU를 만들 때 각 TPU VM에 대해 기본적으로 외부 IP 주소가 생성됩니다.

대신 TPU VM의 내부 IP 주소를 만들려면 TPU를 만들 때 --internal-ips 플래그를 사용하세요.

gcloud

큐에 추가된 리소스를 사용하는 경우:

gcloud compute tpus queued-resources create your-queued-resource-id \
  --node-id your-node-id \
  --project your-project \
  --zone us-central2-b \
  --accelerator-type v4-8 \
  --runtime-version tpu_software_version \
  --internal-ips

Create Node API를 사용하는 경우:

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=v4-8 \
    --version=tpu_software_version \
    --internal-ips

curl

요청 본문에서 enable_external_ips 필드를 false로 설정합니다.

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
    network_config: {enable_external_ips: false}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

커스텀 SSH 메서드 사용 설정

SSH를 사용하여 TPU에 연결하려면 TPU의 외부 IP 주소를 사용 설정하거나 TPU VM이 연결된 서브네트워크에 대해 비공개 Google 액세스를 사용 설정해야 합니다.

비공개 Google 액세스 사용 설정

외부 IP 주소가 없는 TPU는 비공개 Google 액세스를 사용하여 Google API 및 서비스에 액세스할 수 있습니다. 비공개 Google 액세스 사용 설정에 대한 자세한 내용은 비공개 Google 액세스 구성을 참조하세요.

비공개 Google 액세스를 구성한 후 SSH를 사용하여 VM에 연결합니다.

커스텀 서비스 계정 연결

각 TPU VM에는 사용자를 대신하여 API 요청을 수행하는 데 사용되는 서비스 계정이 연결되어 있습니다. TPU VM은 이 서비스 계정을 사용하여 Cloud TPU API를 호출하고 Cloud Storage 및 기타 서비스에 액세스합니다. 기본적으로 TPU VM은 기본 Compute Engine 서비스 계정을 사용합니다.

서비스 계정은 TPU VM을 만드는 동일한 Google Cloud 프로젝트에 정의되어야 합니다. TPU VM에 사용되는 커스텀 서비스 계정에 Cloud TPU API를 호출하려면 TPU 뷰어 역할이 있어야 합니다. TPU VM에서 실행 중인 코드가 다른 Google Cloud 서비스를 호출하는 경우 해당 서비스에 액세스하는 데 필요한 역할이 있어야 합니다.

서비스 계정에 대한 자세한 내용은 서비스 계정을 참조하세요.

커스텀 서비스 계정을 지정하려면 다음 명령어를 사용합니다.

gcloud

TPU를 만들 때 --service-account 플래그를 사용합니다.

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=TPU_TYPE \
    --version=tpu-vm-tf-2.17.0-pjrt \
    --service-account=SERVICE_ACCOUNT

curl

요청 본문에 service_account 필드를 설정합니다.

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
    network_config: {enable_external_ips: true}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    service_account: {email: 'SERVICE_ACCOUNT'} \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

커스텀 SSH 메서드 사용 설정

기본 네트워크는 모든 TPU VM에 대한 SSH 액세스를 허용합니다. 기본 이외의 네트워크를 사용하거나 기본 네트워크 설정을 변경하는 경우 방화벽 규칙을 추가하여 SSH 액세스를 명시적으로 사용 설정해야 합니다.

$ gcloud compute tpus tpu-vm compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22