Cloud Storage バケットへの接続

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

始める前に

Cloud Storage バケットにアクセスするには、Cloud TPU サービス アカウントが必要です。

  1. プロジェクトの Cloud TPU サービス アカウントを作成します。

    gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    このコマンドでは、Cloud TPU サービス アカウントを次の形式で返します。

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    
  2. Cloud TPU クイックスタート ガイドまたは TPU の作成と削除に関するドキュメントの手順に従って、Google Cloud プロジェクトを構成し、Cloud TPU VM と TPU のリソースを作成します。

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

コンソール

  1. Google Cloud コンソールの [Cloud Storage] ページに移動します。

    [Cloud Storage] ページに移動

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

    • 任意の一意な名前
    • デフォルトのストレージ クラス: Standard
    • 地域: us-central1

CLI

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

    gcloud storage buckets create gs://bucket-name --location region

    ここで

    • region は、Cloud TPU を作成したリージョンです。リージョンと TPU の可用性の詳細については、TPU のリージョンとゾーンをご覧ください。

    • bucket-name は、作成するバケットの名前です。

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

    gcloud storage cp -r local-data-dir gs://bucket-name

    ここで、local-data-dir は、データへのローカルパスです。例: $HOME/your-data

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

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

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

Cloud TPU に詳細な ACL を使用(推奨)

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

コンソール

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

    Cloud Storage ブラウザに移動

  2. ACL を変更するバケットを選択します。

  3. [Permissions] タブを選択します。

  4. Add を選択して新しい権限を追加し、New Principals 編集ボックスに完全なサービス アカウント名を入力します。

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

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

CLI

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

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectViewer
     

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

     gcloud storage buckets add-iam-policy-binding gs://bucket-name --member=serviceAccount:service-account --role=roles/storage.objectCreator

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

各バケットへのアクセスを明示的に付与するのではなく、より広範な権限を付与する場合は、Identity Access Management(IAM)のストレージ管理者ロールを Cloud TPU サービス アカウントに付与できます。

  1. IAM に移動

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

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

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

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

    • プロジェクト > 閲覧者

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

Cloud Storage FUSE

Cloud Storage FUSE により、Cloud Storage バケットをマウントし、ローカル ファイル システムとしてアクセスできるようになります。これにより、標準のファイル システムのセマンティクスを使用して、バケット内のオブジェクトの読み取りと書き込みができます。

Cloud Storage FUSE の仕組みと、Cloud Storage FUSE オペレーションの Cloud Storage オペレーションへのマッピング方法について詳しくは、Cloud Storage FUSE のドキュメントをご覧ください。gcsfuse CLI をインストールし GitHub のバケットをマウントする方法など、Cloud Storage FUSE の使用方法の詳細を確認できます。

次のステップ