Cloud Storage バケットへの接続

このページでは、機械学習データを保存の選択肢として Cloud Storage を紹介し、Cloud Storage 上のデータ オブジェクトに Cloud TPU からアクセスできるようにする方法について説明します。

始める前に

Cloud TPU クイックスタート ガイドまたはTPU の作成と削除で説明している手順に従って、Google Cloud プロジェクトを構成し、Compute Engine VM と Cloud TPU を作成します。

Cloud Storage へのデータの書き込み

Console

  1. Cloud Console で、[Cloud Storage] ページに移動します。

    Cloud Storage ページに移動

  2. 次のオプションを指定して新しいバケットを作成します。

    • 任意の一意な名前
    • デフォルトのストレージ クラス: Standard
    • ロケーション: us-central1

gsutil

  1. Cloud Storage バケットの作成には、gsutil mb コマンドを使用します。

    gsutil mb -l ${TPU_REGION} gs://YOUR-BUCKET-NAME/

    ここで

    • TPU_REGION は、Cloud TPU を作成したリージョンです。Cloud TPU は、次のリージョンで利用できます。

      米国

      Cloud TPU v2 およびプリエンプティブル v2 us-central1
      Cloud TPU v3 およびプリエンプティブル v3 us-central1
      Cloud TPU v2 Pod(ベータ版) us-central1

      ヨーロッパ

      Cloud TPU v2 およびプリエンプティブル v2 europe-west4
      Cloud TPU v3 およびプリエンプティブル v3 europe-west4
      Cloud TPU v2 Pod(ベータ版) europe-west4
      Cloud TPU v3 Pod(ベータ版) europe-west4

      アジア太平洋

      Cloud TPU v2 およびプリエンプティブル v2 asia-east1
    • YOUR-BUCKET-NAME は、作成するバケットの名前です。

  2. Cloud Storage バケットにファイルを書き込むには、gsutil cp コマンドを使用します。

    gsutil cp -r ${LOCAL_DATA_DIR} ${CLOUD_DATA_DIR}

    ここで

    • LOCAL_DATA_DIR は、データへのローカルパスです。例: $HOME/your-data
    • CLOUD_DATA_DIR は、Cloud Storage 内のパスです。例: gs://YOUR-BUCKET-NAME

Cloud TPU に Cloud Storage へのアクセス権の付与

Cloud TPU に Cloud Storage オブジェクトに対する読み取りと書き込みのアクセス権を付与する必要があります。そのためには、Cloud TPU で使用するサービス アカウントに必要なアクセス権を付与します。Cloud TPU サービス アカウントを探して、必要なアクセス権を付与するには、次の手順を使用します。

Cloud TPU サービス アカウントの検索

Cloud TPU サービス アカウントの名前を特定します。名前の形式は次のとおりです。

    service-[PROJECT_NUMBER]@cloud-tpu.iam.gserviceaccount.com

プロジェクト番号の検索方法をご覧ください。

サービス アカウントを承認する

Cloud Storage にトレーニング データを保存する場合、Cloud TPU サービス アカウントにはバケットに対する読み取りと書き込みの権限が必要です。

Console

  1. Cloud Storage のブラウザページに移動して、所有するバケットを表示します。

    Cloud Storage ブラウザに移動

  2. ACL を変更するバケットに移動します。

  3. そのバケットで、Edit Bucket Permissions を選択します。

  4. このバケットから読み取りを行う場合、リソースから読み取りを行う権限を TPU サービス アカウントに付与する必要があります。これは、サービス アカウントに Storage Legacy > Storage Legacy Bucket Reader 役割を付与することで行います。

  5. このバケットへの書き込みを行う場合、リソースへの書き込みを行う権限を TPU サービス アカウントに付与する必要があります。これは、サービス アカウントに Storage Legacy > Storage Legacy Bucket Writer 役割を付与することで行います。

gsutil

  1. このバケットから読み取る場合は、TPU サービス アカウントに読み取り権限を付与します。

    gsutil acl ch -u [SERVICE_ACCOUNT]:READER gs://[BUCKET_NAME]

  2. このバケットに書き込む場合は、TPU サービス アカウントに書き込み権限を付与します。

    gsutil acl ch -u [SERVICE_ACCOUNT]:WRITER gs://[BUCKET_NAME]

Cloud TPU に IAM 権限を使用(代替の方法)

各バケットへのアクセスを明示的にホワイトリストに登録するのではなく、より広範な権限を付与する場合は、Identity Access Management(IAM)の Storage Admin 役割を Cloud TPU サービス アカウントに付与できます。

  1. プロジェクトの Cloud IAM ページに移動します。

    Cloud IAM に移動

  2. [+ 追加] ボタンをクリックして、メンバーをプロジェクトに追加します。

  3. [メンバー] テキスト ボックスに Cloud TPU サービス アカウントの名前を入力します。

  4. [役割] プルダウン リストをクリックします。

  5. 次の役割を有効にします。

    • プロジェクト > 閲覧者

    • ストレージ > ストレージ管理者

次のステップ

  • Cloud Storage バケットの作成とこれらのバケットへのデータの書き込みの詳細については、Cloud Storage のドキュメントをご覧ください。
  • Google Cloud のサービス アカウントの詳細については、認証の概要をご覧ください。