W&B は W&B マルチテナントクラウド または W&B 専用クラウド デプロイメントタイプのようなフルマネージドデプロイメントオプションを推奨しています。 W&B のフルマネージドサービスはシンプルで安全に利用でき、設定が最小限または不要です。
必須 コンポーネントをデプロイします:
- ロードバランサー
- AWS アイデンティティ & アクセスマネジメント (IAM)
- AWS キーマネジメントシステム (KMS)
- Amazon Aurora MySQL
- Amazon VPC
- Amazon S3
- Amazon Route53
- Amazon Certificate Manager (ACM)
- Amazon Elastic Load Balancing (ALB)
- Amazon Secrets Manager
- Redis 用のエラスティックキャッシュ
- SQS
前提条件の許可
Terraform を実行するアカウントは、イントロダクションで説明されたすべてのコンポーネントを作成できる必要があり、IAM ポリシー と IAM ロール を作成し、リソースにロールを割り当てる許可が必要です。一般的なステップ
このトピックのステップは、このドキュメントでカバーされる任意のデプロイメントオプションに共通です。-
開発環境を準備します。
- Terraform をインストールします。
- W&B はバージョンコントロール用の Git リポジトリを作成することを推奨します。
-
terraform.tfvarsファイルを作成します。tfvarsファイルの内容はインストールタイプに応じてカスタマイズできますが、推奨される最低限の内容は以下の例のようになります。変数をデプロイ前にtfvarsファイルで定義してください。namespace変数は Terraform によって作成される全てのリソースのプレフィックスとして使用される文字列です。subdomainとdomainの組み合わせにより W&B が設定される FQDN が形成されます。上記の例では、W&B の FQDN はwandb-aws.wandb.mlとなり、FQDN 記録が作成される DNSzone_idになります。allowed_inbound_cidrとallowed_inbound_ipv6_cidrも設定が必要です。このモジュールでは、これは必須の入力です。進行例では、W&B インストールへのアクセスを任意のソースから許可します。 -
versions.tfファイルを作成します。 このファイルは、AWS に W&B をデプロイするために必要な Terraformおよび Terraform プロバイダーのバージョンを含むものとします。AWS プロバイダーを設定するには Terraform 公式ドキュメントを参照してください。 オプションですが強く推奨されるのは、このドキュメントの最初で触れられているリモートバックエンド設定を追加することです。 -
variables.tfファイルを作成します。terraform.tfvarsで設定されたオプションごとに、Terraform は対応する変数宣言を必要とします。
推奨されるデプロイメントオプション
これは、全ての必須 コンポーネントを作成し、最新バージョンの W&B を Kubernetes クラスター にインストールする最も簡単なデプロイメントオプションの設定です。
-
main.tfを作成します。一般的なステップで作成したファイルと同じディレクトリに、以下の内容を持つmain.tfファイルを作成してください。 -
W&B をデプロイします。
W&B をデプロイするには、以下のコマンドを実行してください:
REDIS を有効にする
別のデプロイメントオプションでは、Redis を使用して SQL クエリをキャッシュし、実験のメトリクスを読み込む際のアプリケーションの応答をスピードアップさせます。
キャッシュを有効にするには、推奨されるデプロイメント Recommended deployment セクションで説明されている同じ main.tf ファイルに create_elasticache_subnet = true オプションを追加する必要があります。
メッセージブローカー(キュー)を有効にする
デプロイメントオプション3は、外部のメッセージブローカー を有効にすることを目的としています。これはオプションですが、W&B 内にブローカーが埋め込まれているため、これによってパフォーマンスが向上するわけではありません。
AWS リソースが提供するメッセージブローカーは SQS です。これを有効にするには、推奨されるデプロイメント Recommended deployment セクションで説明されている同じ main.tf に use_internal_queue = falseオプションを追加する必要があります。
その他のデプロイメントオプション
同じファイルにすべての設定を追加することで、これらの3つのデプロイメントオプションを組み合わせることができます。 Terraform Module は、標準オプションとデプロイメント - 推奨 に見つかる最小限の構成と共に組み合わせることができるいくつかのオプションを提供します。
手動設定
Amazon S3 バケットを W&B のファイルストレージバックエンドとして使用する場合は: バケットと、バケットからのオブジェクト作成通知を受け取るように設定された SQS キューを作成する必要があります。インスタンスにはこのキューを読み取る権限が必要です。S3 バケットとバケット通知の作成
以下の手順を実行して Amazon S3 バケットを作成し、バケット通知を有効化します。- AWS コンソールの Amazon S3 に移動します。
- バケットを作成 を選択します。
- 詳細設定 の中で、イベント セクション内の 通知を追加 を選択します。
- すべてのオブジェクト作成イベントを、先に設定した SQS キューに送信するように構成します。

SQS キューの作成
以下の手順に従って SQS キューを作成します:- AWS コンソールの Amazon SQS に移動します。
- キューの作成 を選択します。
- 詳細 セクションから 標準 キュータイプを選択します。
- アクセスポリシーセクション内で、以下の主体に許可を追加します:
SendMessageReceiveMessageChangeMessageVisibilityDeleteMessageGetQueueUrl
W&B を実行するノードへの権限付与
W&B サーバーが実行されているノードは、Amazon S3 および Amazon SQS へのアクセスを許可するように設定されている必要があります。選択したサーバーデプロイメントの種類に応じて、以下のポリシーステートメントをノードロールに追加する必要があります:W&B サーバーの設定
最後に、W&B サーバーを設定します。- W&B 設定ページに移動:
http(s)://YOUR-W&B-SERVER-HOST/system-admin. - **外部ファイルストレージバックエンド使用 オプションを有効化
- 以下の形式であなたの Amazon S3 バケット、リージョン、および Amazon SQS キューに関する情報を提供します:
- ファイルストレージバケット:
s3://<bucket-name> - ファイルストレージリージョン (AWS のみ):
<region> - 通知サブスクリプション:
sqs://<queue-name>

- 設定の更新 を選択して新しい設定を適用します。
W&B のバージョンをアップグレードする
W&B を更新するための手順をここに従ってください:wandb_appモジュール内の設定にwandb_versionを追加します。アップグレード先の W&B のバージョンを指定します。例えば、次の行は W&B バージョン0.48.1を指定します:
または、
wandb_version を terraform.tfvars に追加して、同じ名前の変数を作成し、リテラル値の代わりに var.wandb_version を使用することもできます。- 設定を更新したら、推奨デプロイメントセクションで説明されている手順を完了します。
オペレーターに基づくAWS Terraformモジュールへの移行
このセクションは、terraform-aws-wandb モジュールを使用して、プレオペレーター 環境から ポストオペレーター 環境へのアップグレードに必要な手順を詳細に説明します。アーキテクチャーのビフォーアフター
以前は、W&B アーキテクチャは以下のように使用されていました:post-operator.tf で module "wandb_app" は不要となります。
post-operator.tf に .disabled ファイル拡張子が付いていることを確認し、pre-operator.tf が有効であることを確認してください(.disabled 拡張子が付いていないもの)。これらのファイルはこちらで確認できます。
前提条件
移行プロセスを開始する前に、次の前提条件が満たされていることを確認してください:- アウトゴーイング接続: デプロイメントはエアギャップされていない必要があります。リリース チャンネル の最新の仕様を取得するために deploy.wandb.ai へのアクセスが必要です。
- AWS 資格情報: AWS リソースと対話するために適切に構成された AWS 資格情報が必要です。
- Terraform のインストール: 最新バージョンの Terraform がシステムにインストールされている必要があります。
- Route53 ホステッドゾーン: アプリケーションが提供されるドメインに対応した既存の Route53 ホステッドゾーン。
- プレオペレーターTerraformファイル:
pre-operator.tfとpre-operator.tfvarsのような関連変数ファイルが正しく設定されていることを確認してください。
プリアペレーター セットアップ
プレオペレーター設定の構成を初期化および適用するには、次の Terraform コマンドを実行します:pre-operator.tf は次のようになっています:
pre-operator.tf の構成は二つのモジュールを呼び出します:
ポストオペレーター設定
pre-operator.tf に .disabled 拡張子が付いていること、そして post-operator.tf がアクティブであることを確認してください。
post-operator.tfvars には追加の変数が含まれています:

post-operator.tf では一つの以下があります:
ポストオペレーター構成の変更:
- 必要なプロバイダーの更新:
required_providers.aws.versionを3.6から4.0に変更し、プロバイダー互換性を確保します。 - DNS およびロードバランサーの設定:
enable_dummy_dnsおよびenable_operator_albを統合して、DNS レコードおよび AWS ロードバランサー設定を Ingress 経由で管理します。 - ライセンスおよびサイズ構成: 新しいオペレーション要件に合わせて、
licenseおよびsizeパラメーターを直接wandb_infraモジュールに転送します。 - カスタムドメインの処理: 必要に応じて、
custom_domain_filterを使用してkube-system名前空間内の外部 DNS ポッドログをチェックし、DNS 問題のトラブルシューティングを行います。 - Helmプロバイダー構成: 効果的に Kubernetes リソースを管理するためにHelm プロバイダーを有効にし、構成します: