Skip to main content
このガイドは、すべての W&B のデプロイタイプに適用されます。
  • マルチテナントクラウド: チームレベルの BYOB
  • 専用クラウド: インスタンスレベルとチームレベルの BYOB
  • セルフマネージド: インスタンスレベルとチームレベルの BYOB
このガイドのバケットのプロビジョニング手順は、デプロイタイプにかかわらず共通です。
このページは W&B Platform のセキュアストレージコネクタ (BYOB) に関する内容であり、Weave には適用されません。ご自身のクラウド bucket に保存されている画像や動画を、バイトデータを Weave に取り込むことなく Weave で表示する方法については、Weave BYOB リファレンスをご覧ください。

概要

Bring your own bucket (BYOB) を使用すると、W&B のアーティファクトやその他の機密データを、お客様自身のクラウドまたはオンプレミスのインフラストラクチャーに保存できます。専用クラウド または マルチテナントクラウド では、W&B はお客様のバケットに保存されたデータを W&B 管理のインフラストラクチャーにコピーしません。このページは、データガバナンス、データレジデンシー、またはコンプライアンス要件を満たすために、アーティファクトストレージの所有権を維持する必要がある W&B 管理者およびプラットフォームエンジニアを対象としています。
  • W&B SDK / CLI / UI とお客様のバケットの間の通信は、事前署名付き URL を使用して行われます。
  • W&B は、ガベージコレクションおよび関連プロセスによって、削除された アーティファクト と run data を時間の経過とともにお客様のバケットから削除します。アーティファクトの削除については、アーティファクトを削除する を参照してください。Dedicated Cloud および セルフマネージド環境のデプロイメントで削除された run data については、環境変数を設定する で説明されている GORILLA_DATA_RETENTION_PERIOD にも依存します。W&B はクリーンアップのタイミングを保証しません。バケットの使用状況とコストの全体像については、バケットストレージとコストを管理する を参照してください。
  • バケットの設定時にサブパスを指定すると、W&B がバケットのルート直下のフォルダーにファイルを保存しないようにできます。これにより、お客様の組織のバケットガバナンスポリシーにより適切に準拠できます。

中央データベースとバケットに保存されるデータ

BYOB 機能を使用すると、W&B は一部の種類のデータを W&B の中央データベースに保存し、それ以外の種類のデータはお使いのバケットに保存します。以下の一覧では、どのデータが W&B 管理のインフラストラクチャーに保持され、どのデータが W&B によってお客様自身のストレージに書き込まれるかを確認できます。

データベース

W&B の中央データベースには、次のデータが保存されます。
  • Users、Teams、アーティファクト、Experiments、Projects のメタデータ。
  • Reports。
  • Experiments のログ。
  • システムメトリクス。
  • コンソールログ。

バケット

ストレージバケットには、次のデータが保存されます:
  • 実験ファイルとメトリクス。
  • Artifact ファイル。
  • メディアファイル。
  • run ファイル。
  • エクスポートされた history メトリクスおよび Parquet 形式のシステムイベント。

バケットのスコープ

ストレージバケットに設定できるスコープは 2 つあります。 この設計は、組織のニーズに応じたさまざまなストレージトポロジをサポートします。たとえば、次のようなものがあります。
  • 同じバケットをインスタンスと 1 つ以上のチームで使用できます。
  • 各チームが個別のバケットを使用することも、一部のチームがインスタンスのバケットに書き込むことを選ぶことも、複数のチームがサブパスに書き込んで 1 つのバケットを共有することもできます。
  • チームごとのバケットを、異なるクラウドインフラストラクチャー環境やリージョンに配置し、異なるストレージ管理チームが管理することもできます。
たとえば、組織内に Kappa というチームがあるとします。組織 (および team Kappa) は、デフォルトで インスタンス レベル のストレージバケットを使用します。次に、Omega というチームを作成します。team Omega を作成するときに、そのチーム用の チームレベル のストレージバケットを設定します。team Kappa は、team Omega が生成したファイルにアクセスできません。一方、team Omega は、team Kappa が作成したファイルにアクセスできます。team Kappa のデータを分離するには、そのチームについても チームレベル のストレージバケットを設定する必要があります。

利用可否マトリクス

開始する前に、お使いのデプロイメントタイプとストレージプロバイダーでBYOBが利用可能であることを確認してください。W&Bは、以下のストレージプロバイダーに接続できます。
  • CoreWeave AI Object Storage: AIワークロード向けに最適化された、高パフォーマンスのS3互換オブジェクトストレージサービス。
  • Amazon S3: スケーラビリティ、データ可用性、セキュリティ、パフォーマンスを備えたオブジェクトストレージサービス。
  • Google Cloud Storage: 非構造化データを大規模に保存するためのマネージドサービス。
  • Azure Blob Storage: テキスト、バイナリデータ、画像、動画、ログなど、大量の非構造化データを保存するためのクラウドベースのオブジェクトストレージソリューション。
  • MinIO Enterprise (AIStor) などのS3互換ストレージや、お使いのクラウドまたはオンプレミスのインフラストラクチャーでホストされる、その他のエンタープライズ向けソリューション。
次の表は、各W&Bデプロイタイプにおける各スコープでのBYOBの利用可否を示しています。 1.マルチテナントクラウドのチームレベルBYOBでは、Azure Blob Storageはサポートされません。 以下のセクションでは、BYOBの設定手順を説明します。

バケットをプロビジョニングする

可用性を確認したら、アクセスポリシーと CORS を含むストレージバケットをプロビジョニングできます。プロビジョニングにより、W&B が書き込むバケットが作成され、W&B プラットフォームに、お客様に代わって事前署名付き URL を生成するために必要な権限が付与されます。続行するには、タブを選択してください。
要件:
  • Multi-tenant Cloud、または
  • 専用クラウド v0.73.0 以降、または
  • セルフマネージド v0.73.0 以降で、Helm チャート v0.33.14+ でデプロイ済み
  • AI Object Storage が有効で、バケット、API アクセスキー、シークレットキーを作成する権限がある CoreWeave アカウント。
  • W&B インスタンスから CoreWeave のネットワークエンドポイントに接続できる必要があります。
詳細については、CoreWeaveのドキュメントのCreate a CoreWeave AI Object Storage bucketを参照してください。
  1. Multi-tenant Cloud: バケットポリシーに必要な組織IDを取得します。
    1. W&B App にログインします。
    2. 左側のナビゲーションで、Create a new team をクリックします。
    3. 開いたドロワーで、Invite team members の上にある W&B 組織 ID をコピーします。
    4. このページは開いたままにしておきます。後で W&B を設定 する際に使用します。
  2. 専用クラウド / セルフマネージド: バケットポリシーに必要なカスタマーネームスペースを取得します。
    1. W&B App で、ユーザーのプロフィールアイコンをクリックし、System Console をクリックします。
    2. Authentication タブをクリックします。
    3. ページ下部で、Customer Namespace の値をコピーします。bucket ポリシーの設定で使用するため、この値は控えておいてください。
    4. System Console は閉じてかまいません。
  3. CoreWeave で、任意の名前のバケットを、希望する CoreWeave のアベイラビリティゾーンに作成します。必要に応じて、すべての W&B ファイルのサブパスとして W&B が使用するフォルダーも作成します。バケット名、アベイラビリティゾーン、API アクセスキー、シークレットキー、サブパスを控えておいてください。
  4. バケットに次のクロスオリン リソース共有 (CORS) ポリシーを設定します:
    CoreWeave のストレージは S3 互換です。CORS の詳細については、AWS ドキュメントの Configuring cross-origin resource sharing (CORS) を参照してください。
  5. W&B デプロイがバケットにアクセスし、クラウド インフラストラクチャー内の AI ワークロードやユーザーのブラウザーがバケットにアクセスする際に使用する事前署名付き URLを生成できるよう、必要な権限を付与するバケットポリシーを設定します。CoreWeave のドキュメントにあるBucket Policy Referenceを参照してください。
    "Sid": "AllowUsersInOrg" で始まる条項は、組織内のユーザーにそのバケットへの直接アクセスを許可します。このアクセスが不要な場合は、ポリシーからこの条項を省略できます。
  6. バケットポリシー内のプレースホルダーを置き換えます:
    • <cw-bucket>: お使いのバケット名。
    • <cw-wandb-principal>:
      • Multi-tenant Cloud: arn:aws:iam::wandb:static/wandb-integration-public
      • 専用クラウド または セルフマネージド: arn:aws:iam::wandb:static/wandb-integration
    • <wb-org-id>:
  7. 専用クラウド: 追加のstepを完了するには、サポートまでお問い合わせください。
  8. セルフマネージド: W&B のデプロイを更新して、環境変数 GORILLA_SUPPORTED_FILE_STORES を厳密に文字列 cw:// に設定し、W&B を再起動します。そうしないと、チームストレージの設定時に CoreWeave が選択肢として表示されません。
次に、W&B を設定します。
次に、ストレージアドレスを確認します。

ストレージアドレスを確認する

バケットをプロビジョニングしたら、W&B がその場所の特定と認証に使用するストレージアドレスが必要です。このセクションでは、W&B Team を BYOB ストレージバケットに接続するための構文を説明します。例では、山かっこ (<>) で囲まれたプレースホルダーの値を、お使いのバケットの詳細に置き換えてください。 詳細な手順を表示するタブを選択してください。
このセクションは、専用クラウド または セルフマネージド でのチームレベル BYOB にのみ関連します。インスタンス レベルの BYOB または マルチテナントクラウド の場合は、W&B を設定 に進んでください。次の形式を使用して、完全なバケットパスを確認します。山かっこ (<>) で囲まれたプレースホルダーを、バケットの値に置き換えてください。バケット形式:
cwobject.com の HTTPS エンドポイントがサポートされます。TLS 1.3 が必須です。その他の CoreWeave エンドポイントをご希望の場合は、サポート までお問い合わせください。
ストレージアドレスを確認したら、チームレベル BYOB を設定 できます。

W&B を設定する

バケットをプロビジョニングし、そのアドレスを確認したら、インスタンス レベルまたはチームレベルで BYOB を設定できます。この最後の手順では、アーティファクト、run ファイル、その他の大きなオブジェクトの保存先をお使いのバケットにルーティングするよう W&B に指示します。
ストレージバケットの構成は慎重に計画してください。W&B 用のストレージバケットを設定した後で、そのデータを別のバケットに移行するのは複雑で、W&B の支援が必要です。これは、専用クラウドおよびセルフマネージドのストレージだけでなく、マルチテナントクラウド のチームレベルのストレージにも当てはまります。ご不明な点は、サポートまでお問い合わせください。

インスタンス レベルの BYOB

インスタンス レベルで CoreWeave AI オブジェクトストレージを使用する場合は、以下の手順ではなく W&B サポート にお問い合わせください。セルフサービスでの設定はまだサポートされていません。
専用クラウド の場合: バケットの詳細を W&B チームに共有してください。W&B チームがインスタンスを設定します。Azure ワークロード アイデンティティを使用する場合は、ストレージ アカウントへのアクセスを許可 し、ストレージ アカウント名、コンテナー名、および必要に応じてパスをお知らせください。 セルフマネージド の場合は、W&B System Console でインスタンス レベルの BYOB を設定します。Azure ワークロード アイデンティティを使用する場合は、先に アイデンティティのセットアップ を完了してください。
  1. admin ロールを持つユーザーとして W&B にログインします。
  2. 上部のユーザーアイコンをクリックし、System Console をクリックします。
  3. Settings > System Connections にアクセスします。
  4. Bucket Storage で Provider を選択し、バケットの詳細を入力します。Azure の場合は Azure Blob Storage (az) を選択し、Storage account と Blob container をそれぞれ入力します。
  5. 任意: 新しいバケットで使用する Path を入力します。
  6. 選択したプロバイダーのアイデンティティまたは認証情報がバケットにアクセスできることを確認します。Azure の場合は、Authentication の方式を選択します。
    • Storage account key: Storage account key を入力します。
    • Workload identity (user-delegation SAS): デプロイメント管理者が設定したアイデンティティを使用します。このオプションが表示されない場合は、アイデンティティのセットアップ を完了してください。
  7. Save をクリックします。
保存すると、W&B はインスタンス レベルで、新しい アーティファクト と run ファイルのデフォルトのストレージ送信先として、設定したバケットを使用します。 設定を編集できない場合は、デプロイメント管理者にお問い合わせください。

Azure ワークロード アイデンティティを設定する

ワークロード アイデンティティを使用すると、ストレージアカウントキーなしで W&B が Azure バケットにアクセスできます。設定手順を確認するには、デプロイメントタイプを選択してください。
デプロイメントは W&B が設定します。お客様は Azure ストレージアカウントへのアクセスを設定します。
  1. ストレージアカウントのテナント ID を添えて W&B チームに連絡し、使用するマネージド ID を確認します。
  2. その ID がお客様の Azure テナント内にある場合は、そのプリンシパル ID を以下のロール割り当てに使用します。テナント外にある場合は、お客様のテナント内でマネージド ID を作成または選択し、W&B から提供される issuer、subject、オーディエンスの値を使用してフェデレーション認証情報を設定します。マネージド ID から別のテナント内のストレージに直接アクセスすることはできません。
  3. BYOB ストレージアカウントに対して、ストレージアカウント スコープで ID のプリンシパルに Reader と Storage Blob Data Contributor を付与します。
  4. ストレージアカウント名、コンテナー名、パス (任意) 、および ID のテナント ID とクライアント ID を W&B チームに共有します。
W&B が接続を設定した後、run ファイルまたは アーティファクト のアップロードとダウンロードを実行して、アクセスできることを確認します。

チームレベル BYOB

W&B App でチームを作成するとき、または SCIM API (storageBucket を省略可能な POST Groups) を使用するときに、チームレベル BYOB を設定できます。選択肢は 2 つあります。
  • 既存のバケットを使用する: まず、そのバケットのストレージの場所を特定する必要があります。
  • 新しいバケットを作成する (マルチテナントクラウド のみ) : チームの作成時に、W&B はクラウドプロバイダ内にバケットを自動的に作成できます。W&B はこれを CoreWeave、AWS、Google Cloud でサポートしています。
  • チームを作成した後、そのストレージは変更できません。
  • インスタンス レベルの BYOB については、代わりに Instance level BYOB を参照してください。
  • チーム用に CoreWeave ストレージを設定する予定がある場合は、CoreWeave requirements を確認し、バケットが CoreWeave で正しく設定されていることの確認と、チームの設定内容の検証のために サポート に連絡してください。チーム作成後はストレージの詳細を変更できないためです。
続行するには、デプロイ タイプを選択してください。
  1. 専用クラウド: チームでストレージバケットを使用するには、この後の手順を進める前に、アカウントチームがそのバケットパスをインスタンスのサポート対象ファイルストアに追加できるよう、必ずバケットパスをアカウントチームに共有してください。
  2. セルフマネージド: チームでストレージバケットを使用するには、この後の手順を進める前に、必ずバケットパスを GORILLA_SUPPORTED_FILE_STORES 環境変数に追加し、その後 W&B を再起動してください。
  3. admin ロールを持つユーザーとして W&B にログインし、左上のアイコンをクリックして左側のナビゲーションを開き、Create a team to collaborate をクリックします。
  4. チーム名を入力します。
  5. Storage Type を External storage に設定します。
    チームストレージとしてインスタンス レベルのストレージを使用する場合 (内部か外部かを問わず) 、インスタンス レベルのバケットが BYOB 用に設定されていても、Storage Type は Internal のままにしてください。チーム用に別の外部ストレージを使用する場合は、チームの Storage Type を External に設定し、次の手順でバケットの詳細を設定してください。
  6. Bucket location をクリックします。
  7. 既存のバケットを使用する場合は、リストから選択します。新しいバケットを追加する場合は、下部の Add bucket をクリックし、バケットの詳細を入力します。 Cloud provider をクリックし、CoreWeave、AWS、Google Cloud、または Azure を選択します。 クラウドプロバイダーが一覧に表示されない場合は、Provision your bucket の手順に従って、バケットパスをインスタンスのサポート対象ファイルストアに追加していることを確認してください。それでもストレージプロバイダーが表示されない場合は、サポートに連絡して支援を受けてください。
  8. バケットの詳細を指定します。
    • CoreWeave の場合は、バケット名のみを入力します。
    • Amazon S3、Google Cloud、または S3 互換ストレージの場合は、以前に確認した完全なバケットパスを入力します。
    • W&B Dedicated または セルフマネージドの Azure の場合は、Account name に Azure アカウント名、Container name に Azure blob storage コンテナー名を設定します。
    • 必要に応じて、追加の接続設定を指定します。
      • 該当する場合は、Path にバケットのサブパスを設定します。
      • CoreWeave: 追加の接続設定は不要です。
      • AWS: KMS key ARN に KMS 暗号化キーの ARN を設定します。
      • Google Cloud: 追加の接続設定は不要です。
      • Azure: Tenant ID と Managed Identity Client ID の値を指定します。GORILLA_SUPPORTED_FILE_STORES で接続文字列を設定していない限り、これらのフィールドは必須です。
  9. Create team をクリックします。
W&B がバケットへのアクセス時にエラーを検出した場合、または無効な設定を検出した場合は、ページ下部にエラーまたは警告が表示されます。問題がなければ、W&B がチームを作成します。

トラブルシューティング

W&B でバケットの検証時または接続時にエラーが発生する場合は、以下のセクションを参照して、ストレージプロバイダごとの最も一般的な原因を診断してください。

CoreWeave

このセクションでは、CoreWeave AI Object Storage への接続に関する問題のトラブルシューティング方法を説明します。
  • 接続エラー
    • W&B インスタンスが CoreWeave のネットワークエンドポイントに接続できることを確認してください。
    • CoreWeave は virtual-hosted スタイルのパスを使用します。この形式では、バケット名が先頭のサブドメインになります。たとえば、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 endpoint の問題
  • アクセスキーおよび権限エラー
    • CoreWeave API アクセスキーの有効期限が切れていないことを確認してください。
    • CoreWeave API アクセスキーとシークレットキーに、GetObject、PutObject、DeleteObject、ListBucket の実行に必要な権限があることを確認してください。このページの例は、この要件を満たしています。詳しくは、CoreWeave ドキュメントの Create and Manage Access Keys を参照してください。

Google Cloud

このセクションでは、Google Cloud Storage への接続に関する問題をトラブルシューティングする方法を説明します。