W&B は、W&B Multi-tenant Cloud または W&B 専用クラウド のデプロイメントタイプなどの完全管理されたデプロイメントオプションを推奨しています。W&B の完全管理サービスはシンプルで安全に使用でき、設定はほとんど必要ありません。
必須
コンポーネントをデプロイします:
- VPC
- Cloud SQL for MySQL
- Cloud Storage バケット
- Google Kubernetes Engine
- KMS 暗号キー
- ロードバランサ
- Redis のためのメモリストア
- Pub/Sub メッセージシステム
事前要件の許可
Terraform を実行するアカウントには、使用される GCP プロジェクトにおいてroles/owner
の役割が必要です。
一般的な手順
このトピックの手順は、このドキュメントでカバーされている任意のデプロイメントオプションに共通です。-
開発環境を準備します。
- Terraform をインストールします。
- 使用するコードを含む Git リポジトリを作成することをお勧めしますが、ファイルをローカルに保持することもできます。
- Google Cloud Console でプロジェクトを作成します。
- GCP に認証します(
gcloud
をインストール しておくことを確認してください)gcloud auth application-default login
-
terraform.tfvars
ファイルを作成します。tvfars
ファイルの内容はインストールタイプに応じてカスタマイズできますが、最低限の推奨事項は以下の例のようになります。ここで定義する変数はデプロイメントの前に決定する必要があります。namespace
変数は、Terraform によって作成されたすべてのリソースにプレフィックスとして付ける文字列になります。subdomain
とdomain
の組み合わせが W&B が設定される FQDN を形成します。上記の例では、W&B FQDN はwandb-gcp.wandb.ml
となります。 -
variables.tf
ファイルを作成します。terraform.tfvars
で設定されたすべてのオプションに対して、Terraform は対応する変数宣言を求めます。
デプロイメント - 推奨 (~20 分)
これはMandatory
コンポーネントをすべて作成し、Kubernetes Cluster
に W&B
の最新バージョンをインストールする最も単純なデプロイメントオプション設定です。
-
main.tf
を作成します。 一般的な手順 でファイルを作成したのと同じディレクトリに、次の内容のmain.tf
ファイルを作成します: -
W&B をデプロイします。
W&B をデプロイするには、次のコマンドを実行します:
REDIS キャッシュを使用したデプロイメント
別のデプロイメントオプションでは、Redis
を使用して SQL クエリをキャッシュし、実験のメトリクスをロードする際のアプリケーションの応答速度を向上させます。
推奨される Deployment option section に示されている同じ main.tf
ファイルに create_redis = true
のオプションを追加する必要があります。
外部キューを使用したデプロイメント
デプロイメントオプション 3 は外部のメッセージブローカー
を有効化することから成ります。これは W&B が組み込みのブローカーを提供しているため、オプションです。性能改善はもたらしません。
メッセージブローカーを提供する GCP リソースは Pub/Sub
であり、これを有効にするには、推奨される Deployment option section に示されている同じ main.tf
に use_internal_queue = false
のオプションを追加する必要があります。
その他のデプロイメントオプション
すべてのデプロイメントオプションを組み合わせて、すべての設定を同じファイルに追加することができます。 Terraform Module は、標準のオプションやDeployment - Recommended
で見つかる最小限の設定と共に組み合わせることができる複数のオプションを提供しています。
手動設定
GCP ストレージバケットを W&B のファイルストレージバックエンドとして使用するには、以下を作成する必要があります:PubSub Topic と Subscription の作成
以下の手順に従って、PubSub トピックとサブスクリプションを作成します:- GCP Console 内の Pub/Sub サービスに移動します。
- Create Topic を選択してトピックに名前を付けます。
- ページの下部で、Create subscription を選択します。 Delivery Type が Pull に設定されていることを確認します。
- Create をクリックします。
pubsub.admin
ロールを持っていることを確認します。 詳細については、https://cloud.google.com/pubsub/docs/access-control#console を参照してください。
ストレージバケットの作成
- Cloud Storage バケット ページに移動します。
- Create bucket を選択してバケットに名前を付けます。 Standard の ストレージクラス を選択していることを確認します。
- 前のステップで作成したバケットへのアクセス
- このバケットに対する
storage.objectAdmin
ロール。 詳細については、https://cloud.google.com/storage/docs/access-control/using-iam-permissions#bucket-add を参照してください。
インスタンスは署名付きファイル URL を作成するために GCP で
iam.serviceAccounts.signBlob
の権限も必要です。 サービスアカウントまたはインスタンスが実行する IAM メンバーに サービスアカウントトークンクリエーター
のロールを追加して、権限を有効にします。- CORS アクセスを有効化します。これはコマンドラインのみで実行できます。まず、以下の CORS 設定を含む JSON ファイルを作成します。
gcloud
が正しくインストールされ、適切な GCP プロジェクトにログインしていることを確認してください。- 次に、以下を実行します:
PubSub 通知の作成
コマンドラインで以下の手順に従って、ストレージバケットから Pub/Sub トピックへの通知ストリームを作成します。通知ストリームを作成するには CLI を使用する必要があります。
gcloud
がインストールされていることを確認してください。- GCP プロジェクトにログインします。
- ターミナルで次の操作を実行します:
W&B サーバーの設定
- 最後に、W&B の
System Connections
ページに http(s)://YOUR-W&B-SERVER-HOST/console/settings/system を開きます。 - プロバイダーとして
Google Cloud Storage (gcs)
を選択します。 - GCS バケットの名前を提供します。

- 設定を更新 を押して、新しい設定を適用します。
W&B サーバーのアップグレード
ここに示された手順に従って W&B を更新します:- あなたの
wandb_app
モジュールにwandb_version
を追加します。アップグレードしたい W&B のバージョンを指定します。例えば、以下の行は W&B バージョン0.48.1
を指定します:
代わりに、
wandb_version
を terraform.tfvars
に追加し、同じ名前の変数を作成して、リテラル値の代わりに var.wandb_version
を使用することができます。- 設定を更新した後、Deployment option section に記載されている手順を完了します。