このガイドは、W&B のすべてのデプロイメントタイプに適用されます。
- Multi-tenant Cloud:チームレベルの BYOB
- 専用クラウド:インスタンスレベルおよびチームレベルの BYOB
- セルフマネージド:インスタンスレベルおよびチームレベルの BYOB
概要
Bring your own bucket (BYOB) を使用すると、W&B のアーティファクトやその他のセンシティブデータを、お客様独自のクラウドまたはオンプレミスのインフラストラクチャーに保存できます。専用クラウドまたは Multi-tenant Cloud の場合、お客様のバケットに保存されたデータが W&B の管理するインフラストラクチャーにコピーされることはありません。このページは、データガバナンス、データレジデンシー、またはコンプライアンスの要件を満たすために、アーティファクトのストレージの所有権を保持する必要がある W&B 管理者およびプラットフォームエンジニアを対象としています。- W&B SDK / CLI / UI とお客様のバケット間の通信には、事前署名付き URL が使用されます。
- W&B は、ガベージコレクションとその関連プロセスによって、削除されたアーティファクトと run データをバケットから順次削除します。アーティファクトの削除については、アーティファクトを削除するを参照してください。専用クラウドおよびセルフマネージドのデプロイでは、削除された run データの扱いは、環境変数を設定するで説明されている
GORILLA_DATA_RETENTION_PERIODの設定にも左右されます。クリーンアップのタイミングは保証されません。バケットの使用量とコストの概要については、バケットのストレージとコストを管理するを参照してください。 - バケットを設定する際にサブパスを指定すると、W&B がバケットのルート直下のフォルダーにファイルを保存しないようにできます。これにより、組織のバケットガバナンスポリシーにより確実に準拠できます。
中央データベースに保存されるデータとバケットに保存されるデータ
BYOB 機能を使用する場合、W&B は一部のタイプのデータを W&B の中央データベースに保存し、それ以外のタイプのデータをお客様のバケットに保存します。以下のリストで、W&B が管理するインフラストラクチャーに保持されるデータと、W&B がお客様自身のストレージに書き込むデータを確認してください。データベース
W&B の中央データベースには、次のデータが保存されます。- ユーザー、チーム、アーティファクト、実験、project のメタデータ
- Reports
- 実験のログ
- システムメトリクス
- コンソールログ
バケット
ストレージバケットには、次のデータが保存されます。- 実験ファイルとメトリクス
- アーティファクトファイル
- メディアファイル
- run ファイル
- Parquet 形式でエクスポートされた履歴メトリクスとシステムイベント
バケットのスコープ
ストレージバケットのスコープは、次の 2 つのいずれかに設定できます。
この設計により、組織のニーズに応じてさまざまなストレージトポロジーをサポートできます。例:
- 1 つのバケットを、インスタンスと 1 つ以上のチームで共用できます。
- チームごとに個別のバケットを使用する、一部のチームはインスタンスのバケットに書き込む、複数のチームがそれぞれサブパスに書き込んで 1 つのバケットを共有する、といった構成が可能です。
- チームごとのバケットを異なるクラウドインフラストラクチャー環境やリージョンに配置し、それぞれ別のストレージ管理チームが管理することもできます。
可用性マトリクス
始める前に、ご利用のデプロイメントタイプとストレージプロバイダーで BYOB が利用可能かどうかを確認してください。W&B は以下のストレージプロバイダーに接続できます。- CoreWeave AI Object Storage: AI ワークロード向けに最適化された、高パフォーマンスな S3互換オブジェクトストレージサービスです。
- Amazon S3: スケーラビリティ、データの可用性、セキュリティ、パフォーマンスに優れたオブジェクトストレージサービスです。
- Google Cloud Storage: 大規模な非構造化データを保存するためのマネージドサービスです。
- Azure Blob Storage: テキスト、バイナリデータ、画像、動画、ログなど、大量の非構造化データを保存するためのクラウドベースのオブジェクトストレージソリューションです。
- MinIO Enterprise (AIStor) をはじめとする、ご利用のクラウドまたはオンプレミスのインフラストラクチャーでホストされる S3互換ストレージやその他のエンタープライズグレードのソリューション。
1.Multi-tenant Cloud のチームレベルの BYOB では、Azure Blob Storage はサポートされていません。
以下のセクションでは、BYOB の設定手順について説明します。
Provision your bucket
可用性を確認したら、ストレージバケットをアクセスポリシーおよび CORS とあわせてプロビジョニングします。プロビジョニングを行うと、W&B の書き込み先となるバケットが作成され、W&B プラットフォームがユーザーに代わって事前署名付き URL を生成するために必要な権限が付与されます。続行するには、いずれかのタブを選択してください。- CoreWeave
- AWS
- Google Cloud
- Azure
- S3互換
要件:
- Multi-tenant Cloud、または
- 専用クラウド v0.73.0 以降、または
- Helm チャート v0.33.14 以降でデプロイされた セルフマネージド v0.73.0 以降
- AI Object Storage が有効になっており、バケット、API アクセスキー、シークレットキーを作成する権限を持つ CoreWeave アカウント。
- W&B インスタンスから CoreWeave のネットワークエンドポイントに接続できる必要があります。
- Multi-tenant Cloud: バケットポリシーの設定に必要な組織 ID を取得します。
-
専用クラウド / セルフマネージド: バケットポリシーの設定に必要な customer namespace を取得します。
- W&B App でユーザープロフィールアイコンをクリックし、System Console をクリックします。
- Authentication タブをクリックします。
- ページ下部にある Customer Namespace の値をコピーします。この値はバケットポリシーの設定に使用するので、控えておいてください。
- System Console は閉じてかまいません。
- CoreWeave で、任意の名前のバケットを希望する CoreWeave Availability Zone に作成します。必要に応じて、W&B のすべてのファイルのサブパスとして使用するフォルダーを作成します。バケット名、アベイラビリティゾーン、API アクセスキー、シークレットキー、サブパスを控えておいてください。
-
バケットに次のクロスオリジンリソース共有 (CORS) ポリシーを設定します。
CoreWeave のストレージは S3互換です。CORS の詳細については、AWS ドキュメントの Configuring cross-origin resource sharing (CORS) を参照してください。
-
W&B デプロイメントがバケットにアクセスし、事前署名付き URL を生成するのに必要な権限を付与するバケットポリシーを設定します。事前署名付き URL は、クラウドインフラストラクチャー内の AI ワークロードやユーザーのブラウザーがバケットにアクセスする際に使用します。詳しくは、CoreWeave ドキュメントの Bucket Policy Reference を参照してください。
"Sid": "AllowUsersInOrg"で始まるブロックは、組織内のユーザーにバケットへの直接アクセスを許可します。このアクセスが不要な場合は、ポリシーからこのブロックを削除してもかまいません。 -
バケットポリシー内の次のプレースホルダーを置き換えます。
<cw-bucket>: お使いのバケット名。<cw-wandb-principal>:- Multi-tenant Cloud:
arn:aws:iam::wandb:static/wandb-integration-public - 専用クラウド または セルフマネージド:
arn:aws:iam::wandb:static/wandb-integration
- Multi-tenant Cloud:
<wb-org-id>:- Multi-tenant Cloud: Provision your bucket で確認した組織 ID。
- 専用クラウド または セルフマネージド: Provision your bucket で確認したお客様の namespace。
- 専用クラウド: 追加の手順を完了するには、サポートにお問い合わせください。
-
セルフマネージド: W&B デプロイメントを更新し、環境変数
GORILLA_SUPPORTED_FILE_STORESに文字列cw://をそのまま設定してから、W&B を再起動してください。この設定を行わないと、チームのストレージを設定する際に CoreWeave が選択肢として表示されません。
ストレージアドレスを決定する
バケットをプロビジョニングしたら、W&B がバケットの場所を特定して認証するためのストレージアドレスが必要です。以下のセクションでは、W&B チームを BYOB ストレージバケットに接続するための構文について説明します。例の中の山かっこ (<>) で囲まれたプレースホルダーは、お使いのバケットの情報に置き換えてください。詳しい手順については、該当するタブを選択してください。
- CoreWeave
- AWS
- Google Cloud
- Azure
- S3互換
W&B を設定する
バケットをプロビジョニングしてそのアドレスを特定したら、インスタンスレベルまたはチームレベルで BYOB を設定できます。この最後のステップで、アーティファクト、run ファイル、その他のサイズの大きいオブジェクトをお使いのバケットに保存するよう W&B に指示します。インスタンス レベルの BYOB
インスタンス レベルで CoreWeave AI Object Storage を使用する場合は、以下の手順ではなく、W&B support にお問い合わせください。セルフサービスでの設定はまだサポートされていません。
adminロールを持つユーザーとして W&B にログインします。- 上部のユーザーアイコンをクリックし、System Console をクリックします。
- Settings > System Connections にアクセスします。
- Bucket Storage で Provider を選択し、バケットの詳細を入力します。Azure の場合は Azure Blob Storage (az) を選択し、Storage account と Blob container をそれぞれ入力します。
- オプション: 新しいバケットで使用する Path を入力します。
- 選択したプロバイダーのアイデンティティまたは認証情報に、バケットへのアクセス権があることを確認します。Azure の場合は、Authentication 方式を選択します。
- Storage account key: Storage account key を入力します。
- Workload identity (user-delegation SAS): デプロイメント管理者が設定したアイデンティティを使用します。このオプションを選択できない場合は、アイデンティティの設定 を完了してください。
- Save をクリックします。
Azure ワークロード アイデンティティを設定する
ワークロード アイデンティティを使用すると、W&B はストレージアカウントキーを使わずに Azure バケットにアクセスできます。お使いのデプロイメントタイプを選択して、セットアップ手順を確認してください。- 専用クラウド
- セルフマネージド
デプロイメントは W&B が設定します。お客様は Azure ストレージアカウントへのアクセスを設定してください。
- W&B チームにストレージアカウントのテナント ID を伝え、使用するマネージド ID を確認します。
- アイデンティティがお客様の Azure テナント内にある場合は、以降のロール割り当てにそのプリンシパル ID を使用します。そうでない場合は、お客様のテナントでマネージド ID を作成または選択し、W&B から提供された発行者、サブジェクト、オーディエンスの値を使用してフェデレーション認証情報を設定します。マネージド ID は別のテナントのストレージに直接アクセスできません。
- BYOB ストレージアカウントで、ストレージアカウントのスコープにおいて、アイデンティティのプリンシパルに Reader と Storage Blob Data Contributor を付与します。
- ストレージアカウント名、コンテナー名、パス (任意)、およびアイデンティティのテナント ID とクライアント ID を W&B チームに共有します。
チームレベル BYOB
チームレベル BYOB は、W&B アプリでチームを作成するとき、または SCIM API (オプションのstorageBucket を指定した POST Groups) でチームを作成するときに設定できます。次の 2 つの方法があります。
- 既存のバケットを使用する: 事前にバケットのストレージの場所を確認する必要があります。
- 新しいバケットを作成する (Multi-tenant Cloud のみ) : チームの作成時に、W&B がクラウドプロバイダーにバケットを自動作成できます。この機能は CoreWeave、AWS、Google Cloud でサポートされています。
- チームの作成後にストレージを変更することはできません。
- インスタンスレベルの BYOB については、インスタンス レベルの BYOB を参照してください。
- チームに CoreWeave ストレージを設定する場合は、チームの作成後にストレージの詳細を変更できないため、CoreWeave の要件を確認したうえで サポート に連絡し、CoreWeave でバケットが正しく設定されているかの確認と、チームの設定の検証を依頼してください。
- Multi-tenant Cloud
- 専用クラウドとセルフマネージド
-
以前に新しいチームの作成を開始したブラウザーウィンドウに切り替えて、W&B の組織 ID を確認します。そのウィンドウがない場合は、
adminロールを持つユーザーとして W&B にログインし、左上のアイコンをクリックして左側のナビゲーションを開き、Create a team to collaborate をクリックします。 - チームの名前を入力します。
- Storage Type を External storage に設定します。
- Bucket location をクリックします。
- 既存のバケットを使用するには、一覧から選択します。
-
新しいバケットを作成するには、下部の Add bucket をクリックし、次の操作を行います。
- Cloud provider をクリックし、CoreWeave、AWS、または Google Cloud を選択します。
- バケットの詳細を入力します。
- Name: バケット名を入力します。
- Path (オプション): バケット内で使用するサブパスを入力します。
- 選択したクラウドプロバイダーに応じて、追加の接続設定を入力します。
- CoreWeave: 追加の設定は不要です。
- AWS: 必要に応じて、暗号化用の KMS key ARN を入力します。
- Google Cloud: 追加の設定は不要です。
Create team をクリックすると、W&B は指定された設定でクラウドプロバイダーにバケットを自動的に作成します。 - チームにメンバーを招待します。Invite team members に、メールアドレスをカンマ区切りで指定します。メンバーはチームの作成後に招待することもできます。
- Create team をクリックします。
トラブルシューティング
バケットの検証時または接続時に W&B がエラーを報告した場合は、以下のセクションを使用して、よくある原因をストレージプロバイダー別に診断してください。CoreWeave
このセクションでは、CoreWeave AI Object Storage への接続に関する問題のトラブルシューティングについて説明します。- 接続エラー
- W&B インスタンスが CoreWeave のネットワークエンドポイントに接続できることを確認してください。
- CoreWeave では仮想ホスト形式のパスを使用します。この形式では、バケット名がパスの先頭にサブドメインとして配置されます。たとえば、
cw://bucket-name.cwobject.comは正しい形式ですが、cw://cwobject.com/bucket-name/は正しくありません。 - バケット名には、アンダースコア (
_) など、DNS ルールに適合しない文字を含めることはできません。 - バケット名は、CoreWeave のすべてのロケーションを通じてグローバルに一意である必要があります。
cw-とvip-は予約済みの接頭辞であるため、バケット名をこれらで始めることはできません。
- CORS 検証の失敗
- CORS ポリシーは必須です。CoreWeave は S3互換です。CORS の詳細については、AWS ドキュメントの Configuring cross-origin resource sharing (CORS) を参照してください。
AllowedMethodsには、GET、PUT、HEADの各メソッドを含める必要があります。ExposeHeadersにはETagを含める必要があります。- CORS ポリシーの
AllowedOriginsには、W&B のフロントエンドドメインを含める必要があります。このページで紹介している CORS ポリシーの例では、*を使用してすべてのドメインを許可しています。
- LOTA エンドポイントの問題
- W&B は現時点では LOTA エンドポイントへの接続をサポートしていません。ご要望がある場合は、サポートにお問い合わせください。
- アクセスキーと権限のエラー
- CoreWeave API のアクセスキーの有効期限が切れていないことを確認してください。
- CoreWeave API のアクセスキーとシークレットキーに、
GetObject、PutObject、DeleteObject、ListBucketの必要な権限が付与されていることを確認してください。このページの例はこの要件を満たしています。詳しくは、CoreWeave ドキュメントの Create and Manage Access Keys を参照してください。
Google Cloud
このセクションでは、Google Cloud Storage への接続で発生する問題のトラブルシューティング方法を説明します。Bucket does not have soft deletion enabledGoogle Cloud Storage のバケットで論理削除が有効になっていることを確認してください。詳しくは、バケットの論理削除ポリシーを編集するを参照してください。