W&Bでは、W&B Multi-tenant Cloud や W&B 専用クラウド などのフルマネージドデプロイメントオプションを推奨しています。W&Bのフルマネージドサービスは、設定をほとんど、あるいは全く必要とせず、シンプルかつ安全に利用できます。
- Azure Resource Group
- Azure Virtual Network (VPC)
- Azure MySQL Flexible Server
- Azure Storage Account & Blob Storage
- Azure Kubernetes Service
- Azure Application Gateway
- Azure Cache for Redis
- Azure Event Grid
事前定義された権限
AzureRM プロバイダーを構成する最も簡単な方法は Azure CLI を使用することですが、自動化を行う場合は Azure Service Principal を使用することも有用です。 使用する認証方法に関わらず、Terraform を実行するアカウントには、イントロダクションで説明したすべてのコンポーネントを作成できる権限が必要です。一般的な手順
このセクションの手順は、このドキュメントで扱うすべてのデプロイメントオプションに共通です。-
開発環境を準備します。
- Terraform をインストールします。
- 使用するコードを Git リポジトリで管理することを推奨しますが、ローカルにファイルを保持することも可能です。
-
terraform.tfvarsファイルを作成する:tvfarsファイルの内容はインストールタイプに応じてカスタマイズできますが、最小限の推奨構成は以下の例のようになります。ここで定義する変数は、デプロイ前に決定しておく必要があります。namespace変数は、Terraform によって作成されるすべてのリソースのプレフィックスとなる文字列です。subdomainとdomainの組み合わせによって、W&B が設定される FQDN が形成されます。上記の例では、W&B の FQDN はwandb-aws.wandb.mlになり、この FQDN レコードが作成される DNS のzone_idが使用されます。 -
versions.tfファイルを作成する このファイルには、W&B を AWS(Azure 用モジュールを使用する場合も同様の構造)にデプロイするために必要な Terraform および Terraform プロバイダーのバージョンを記述します。AWS プロバイダーの設定については、Terraform 公式ドキュメント を参照してください。 オプションとして、強く推奨されますが、このドキュメントの冒頭で言及した リモートバックエンド設定 を追加できます。 -
variables.tfファイルを作成する:terraform.tfvarsで設定した各オプションに対して、Terraform では対応する変数宣言が必要です。
推奨されるデプロイメント
これは最もシンプルなデプロイメントオプションの設定で、すべての「必須」コンポーネントを作成し、Kubernetes Cluster に最新バージョンの W&B をインストールします。
-
main.tfを作成する 「一般的な手順」でファイルを作成したのと同じディレクトリーに、以下の内容でmain.tfファイルを作成します。 -
W&B をデプロイする
W&B をデプロイするには、以下のコマンドを実行します。
REDIS キャッシュを使用したデプロイメント
別のデプロイメントオプションとして、Redis を使用して SQL クエリをキャッシュし、Experiments のメトリクスを読み込む際のアプリケーションのレスポンスを高速化する方法があります。
キャッシュを有効にするには、推奨されるデプロイメント で使用したのと同じ main.tf ファイルに create_redis = true オプションを追加します。
外部キューを使用したデプロイメント
デプロイメントオプション 3 は、外部のmessage broker を有効にすることです。W&B にはブローカーが内蔵されているため、これはオプションです。このオプションによってパフォーマンスが向上することはありません。
メッセージブローカーを提供する Azure リソースは Azure Event Grid です。これを有効にするには、推奨されるデプロイメント で使用したのと同じ main.tf に use_internal_queue = false オプションを追加します。