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

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

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

기본 요건

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

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

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

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

    • 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. 다음의 유효한 형식 중 하나와 일치하는 서브네트워크를 만듭니다.

    • 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 VM을 만듭니다.

    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.1-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 VM을 만들면 항상 내부 IP 주소가 자동으로 할당됩니다. TPU VM이 gcloud CLI를 통해 생성된 경우 기본적으로 외부 IP 주소가 생성됩니다. Cloud TPU REST API(tpu.googleapis.com)를 통해 생성된 경우에는 기본적으로 외부 IP 주소가 할당되지 않습니다. 두 경우 모두 기본 동작을 변경할 수 있습니다.

외부 IP 주소

gcloud를 사용하여 TPU를 만들 때 각 TPU VM에 대해 기본적으로 외부 IP 주소가 생성됩니다. 외부 IP 없이 TPU VM을 만들려면 TPU VM을 만들 때 다음 예시에 표시된 --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.1-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

REST API(tpu.googleapis.com)를 사용할 때 외부 IP 주소를 사용하여 TPU VM을 만들려면 요청에서 networkconfig.enable_external_ips 필드를 true로 설정합니다.

내부 IP 주소

TPU VM에는 항상 내부 IP 주소가 포함됩니다. Cloud TPU 사용자는 다음과 같은 몇 가지 주요 이유로 TPU VM을 내부 IP 주소만 사용하도록 제한하고자 할 수 있습니다.

보안 강화: 내부 IP는 동일한 VPC 네트워크 내의 리소스만 액세스할 수 있으므로, TPU VM에 대한 외부 액세스를 제한함으로써 보안을 강화할 수 있습니다. 이는 특히 민감한 정보를 다루거나 네트워크 내 특정 사용자나 시스템만 TPU에 액세스할 수 있도록 제한하려는 경우에 중요합니다.

비용 절감: 내부 IP 주소를 사용하면 외부 IP 주소와 관련된 비용을 피할 수 있으며, 이는 많은 수의 TPU VM을 운영할 경우 상당한 절감 효과를 가져올 수 있습니다.

네트워크 성능 향상: 내부 IP를 사용하면 트래픽이 Google 네트워크 내부에서 처리되므로, 공개 인터넷을 통한 라우팅에 따른 오버헤드를 피할 수 있어 더 나은 네트워크 성능을 기대할 수 있습니다. 이는 특히 TPU VM 간에 고대역폭 통신이 필요한 대규모 머신러닝 워크로드에서 중요합니다.

커스텀 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.1-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.1-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 firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22

VPC 서비스 제어와 통합

Cloud TPU VPC 서비스 제어를 사용하면 Cloud TPU 리소스 주위에 보안 경계를 정의하고 경계를 넘는 데이터 이동을 제어할 수 있습니다. VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요. Cloud TPU를 VPC 서비스 제어와 함께 사용할 때의 제한사항을 알아보려면 지원되는 제품 및 제한사항을 참조하세요.