Cloud Storage バケットへの接続

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

始める前に

Cloud TPU クイックスタート ガイドまたはカスタム設定ガイドに従って、Google Cloud Platform プロジェクトを構成し、Compute Engine VM を作成して、Cloud TPU リソースを作成します。

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

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

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

    ここで

    • TPU_ZONE は、Cloud TPU を作成したゾーンです。Cloud TPU は、次のゾーンで使用できます。

      • 米国(US)
      • ヨーロッパ(EU)
        • europe-west4-a
      • アジア太平洋(APAC)
        • asia-east1-c

    • YOUR-BUCKET-NAME は、作成するバケットの名前です。

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

    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 サービス アカウントの検索

  1. Cloud TPU サービス アカウントの名前を特定します。名前の形式は次のとおりです。 service-[PROJECT_NUMBER]@cloud-tpu.iam.gserviceaccount.com.

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

コンピューティング サービス アカウントの検索

2018 年 6 月 27 日より前に作成した Cloud TPU はすべて、コンピューティング サービス アカウントを介して Cloud Storage リソースにアクセスします。この日付まで、このコンピューティング サービス アカウントを承認せずに、読み取り / 書き込みアクセスを行うことはできません。

Console

  1. Cloud TPU ページに移動して、現在実行中のノードを表示します。

    Cloud TPU ページに移動

  2. いずれかの Cloud TPU をクリックすると、詳細な説明が表示されます。

  3. Service account 見出しの下にあるフィールドから、サービス アカウントの名前をコピーします。名前は、12345-compute@developer.gserviceaccount.com ようなメールアドレス形式です。

gcloud

  1. TPU を一覧表示して、名前を検索します。

    $ gcloud compute tpus list

  2. YOUR-TPU-NAME を Cloud TPU の名前に置き換えて、describe コマンドを使用して Cloud TPU のサービス アカウントを検索します。

    $ gcloud compute tpus describe YOUR-TPU-NAME

  3. describe コマンドの出力から、サービス アカウントの名前をコピーします。名前は、12345-compute@developer.gserviceaccount.com ようなメールアドレス形式です。

サービス アカウントの承認

Cloud Storage にトレーニング データを保存する場合は、Cloud TPU サービス アカウントに、バケットからのデータの読み取りを許可する必要があります。

Console

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

    Cloud Storage ブラウザに移動

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

  3. 該当のバケットで、[Edit Bucket Permissions] を選択します。

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

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

gsutil

  1. このバケットから読み取る場合は、各サービス アカウントに対して次を実行します。

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

  2. このバケットに書き込む場合は、各サービス アカウントに対して次を実行します。

    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 のドキュメントをご覧ください。
  • GCP サービス アカウントの詳細については、認証の概要をご覧ください。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...