Cloud TPU へのネットワーキングとアクセスを構成する
このページでは、Cloud TPU のカスタム ネットワークとアクセス構成を設定する方法について説明します。以下の内容が含まれます。
- カスタム ネットワークとサブネットワークの指定
- 内部 IP アドレスの指定
- TPU への SSH アクセスの有効化
- カスタム サービス アカウントの TPU への接続
- カスタム SSH メソッドの有効化
前提条件
これらの手順を実行する前に、Google Cloud CLI をインストールし、Google Cloud プロジェクトを作成して、Cloud TPU API を有効にする必要があります。手順については、Cloud TPU 環境を設定するをご覧ください。
カスタム ネットワークとサブネットワークを指定する
必要に応じて、TPU に使用するネットワークとサブネットワークを指定できます。ネットワークが指定されていない場合、TPU は default
ネットワークに配置されます。サブネットワークは、TPU を実行するゾーンと同じリージョンに存在する必要があります。
次のいずれかの有効な形式に一致するネットワークを作成します。
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 ネットワークの作成と管理をご覧ください。
次のいずれかの有効な形式に一致するサブネットワークを作成します。
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 ネットワークの作成と管理をご覧ください。
カスタム ネットワークとサブネットワークを指定して TPU を作成します。
gcloud
gcloud
CLI を使用してネットワークとサブネットワークを指定するには、作成リクエストに--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
呼び出しでネットワークとサブネットワークを指定するには、network
フィールドとsubnetwork
フィールドをリクエスト本文に追加します。$ 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.18.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.18.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.18.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.18.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