メインコンテンツへスキップ
このガイドは、すべての種類の W&B デプロイメントに適用されます:
  • Multi-tenant Cloud:チームレベルの BYOB
  • Dedicated Cloud:インスタンスおよびチームレベルの BYOB
  • Self-Managed:インスタンスおよびチームレベルの BYOB
このガイドで説明するバケットのプロビジョニング手順は、デプロイメントの種類に関わらず同一です。

概要

BYOB(Bring Your Own Bucket)を使用すると、W&B のアーティファクトやその他の機密データを、ユーザー自身のクラウド環境またはオンプレミス環境に保存できます。Dedicated CloudMulti-tenant Cloud の場合、ユーザーのバケットに保存したデータは、W&B 管理インフラストラクチャ側にコピーされません。
  • W&B SDK / CLI / UI とユーザーのバケット間の通信は、事前署名付き URL を使用して行われます。
  • W&B ではガーベジコレクション処理を使用して W&B Artifacts を削除します。詳細については、Deleting Artifacts を参照してください。
  • バケットを設定する際にサブパスを指定することで、W&B がバケットのルート直下のフォルダにファイルを保存しないようにできます。これにより、組織のバケットガバナンス・ポリシーにより適合させるのに役立ちます。

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

BYOB 機能を使用する場合、特定の種類のデータは W&B の中央データベースに保存され、その他の種類のデータはお使いのバケットに保存されます。

データベース

  • ユーザー、Teams、アーティファクト、Experiments、プロジェクトに関するメタデータ
  • Reports
  • 実験ログ
  • システムのメトリクス
  • コンソールのログ

バケット

  • 実験ファイルとメトリクス
  • アーティファクトファイル
  • メディアファイル
  • run ファイル
  • Parquet 形式でエクスポートされた履歴メトリクスおよびシステムイベント

バケットのスコープ

ストレージバケットには、次の 2 種類のスコープを設定できます。
ScopeDescription
Instance levelDedicated Cloud および Self-Managed では、組織またはインスタンス内で必要な権限を持つユーザーは、そのインスタンスのストレージバケットに保存されているファイルにアクセスできます。Multi-tenant Cloud には適用されません。
Team levelW&B Team が Team level のストレージバケットを使うように設定されている場合、そのチームメンバーはそこに保存されているファイルにアクセスできます。Team level のストレージバケットは、高機密データや厳格なコンプライアンス要件を持つチーム向けに、よりきめ細かいデータアクセス制御とデータ分離を可能にします。

Team level のストレージは、同じインスタンスを共有する異なる事業部門や部局が、インフラストラクチャと管理リソースを効率的に利用するのに役立ちます。また、異なる顧客案件向けに AI ワークフローを管理する別々のプロジェクトチームを分離することもできます。すべてのデプロイメントタイプで利用可能です。Team level の BYOB は、チームをセットアップするときに構成します。
この柔軟な設計により、組織のニーズに応じて多様なストレージトポロジーを構成できます。例えば次のような構成が可能です。
  • 同じバケットを、インスタンスと 1 つ以上のチームで共用する。
  • 各チームが別々のバケットを使う、一部のチームはインスタンスバケットに書き込む、または複数のチームがサブパスに書き込むことで 1 つのバケットを共有する。
  • 異なるチーム向けのバケットを、異なるクラウドインフラ環境やリージョンにホスティングし、異なるストレージ管理チームが運用する。
例えば、組織内に Kappa というチームがあるとします。組織 (および Team Kappa) はデフォルトで Instance level のストレージバケットを使用しています。次に、Omega というチームを作成します。Team Omega を作成するときに、そのチーム用の Team level のストレージバケットを構成します。Team Omega によって生成されたファイルには、Team Kappa からはアクセスできません。しかし、Team Kappa によって作成されたファイルには、Team Omega からアクセスできます。Team Kappa のデータを分離したい場合は、Team Kappa 向けにも Team level のストレージバケットを構成する必要があります。

可用性マトリックス

W&B は、次のストレージプロバイダに接続できます。
  • CoreWeave AI Object Storage: AI ワークロード向けに最適化された高性能な S3 互換オブジェクトストレージサービス。
  • Amazon S3: 業界トップクラスのスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを備えたオブジェクトストレージサービス。
  • Google Cloud Storage: 非構造化データを大規模に保存するためのマネージドサービス。
  • Azure Blob Storage: テキスト、バイナリデータ、画像、動画、ログなど、大量の非構造化データを保存するためのクラウドベースのオブジェクトストレージソリューション。
  • MinIO Enterprise (AIStor) などの S3 互換ストレージ、またはお使いのクラウドやオンプレミスインフラストラクチャ上でホストされる、他のエンタープライズグレードのソリューション。
次の表は、各 W&B デプロイメントタイプにおける各スコープでの BYOB の可用性を示します。
W&B deployment typeInstance levelTeam levelAdditional information
Dedicated CloudInstance レベルおよび Team レベルの BYOB は、CoreWeave AI Object Storage、Amazon S3、Google Cloud Storage、Microsoft Azure Blob Storage、またはお使いのクラウドやオンプレミスインフラストラクチャ上でホストされる MinIO Enterprise (AIStor) などの S3 互換ストレージでサポートされます。
Multi-tenant CloudNot Applicable1Team レベルの BYOB は、CoreWeave AI Object Storage、Amazon S3、および Google Cloud Storage でサポートされます。
Self-ManagedInstance レベルおよび Team レベルの BYOB は、CoreWeave AI Object Storage、Amazon S3、Google Cloud Storage、Microsoft Azure Blob Storage、またはお使いのクラウドやオンプレミスインフラストラクチャ上でホストされる MinIO Enterprise (AIStor) などの S3 互換ストレージでサポートされます。
1.Azure Blob Storage は、Multi-tenant Cloud での Team レベル BYOB ではサポートされません。 以下のセクションでは、BYOB をセットアップする手順を説明します。

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

利用可能性を確認したら、ストレージバケットをアクセスポリシーや CORS 設定とあわせてプロビジョニングする準備が整います。続行するにはタブを選択してください。
要件:
  • マルチテナント クラウド、または
  • Dedicated Cloud v0.73.0 以降、または
  • Self-Managed v0.73.0 以上を Helm チャート v0.33.14+ でデプロイしていること
  • AI Object Storage が有効になっていて、バケット、API アクセスキー、およびシークレットキーを作成する権限を持つ CoreWeave アカウント。
  • W&B インスタンスから CoreWeave のネットワークエンドポイントに接続できる必要があります。
詳細については、CoreWeave ドキュメントのCreate a CoreWeave AI Object Storage bucketを参照してください。
  1. マルチテナントクラウド: バケットポリシーに必要な組織 ID を取得します。
    1. W&B App にログインします。
    2. 左側のナビゲーションで Create a new team をクリックします。
    3. 開いたドロワーで、Invite team members の上に表示されている W&B の組織 ID をコピーします。
    4. このページは開いたままにしておいてください。このページで W&B を設定 します。
  2. Dedicated Cloud / Self-Managed: バケットポリシーで必要となるお客様のネームスペースを取得してください。
    1. W&B アプリで、ユーザープロフィールアイコンをクリックし、System Console をクリックします。
    2. Authentication タブをクリックします。
    3. ページの一番下にある Customer Namespace の値をコピーします。この値はバケットポリシーを設定する際に使用するため、控えておいてください。
    4. System Console を閉じてかまいません。
  3. CoreWeave 上で、任意の名前を指定し、希望するアベイラビリティゾーンにバケットを作成します。必要に応じて、すべての W&B ファイルのサブパスとして W&B が使用するフォルダを作成します。バケット名、アベイラビリティゾーン、API アクセスキー、シークレットキー、サブパスをメモしておいてください。
  4. バケットに次のクロスオリジンリソース共有 (CORS) ポリシーを設定します。
    [
      {
        "AllowedHeaders": [
          "*"
        ],
        "AllowedMethods": [
          "GET",
          "HEAD",
          "PUT"
        ],
        "AllowedOrigins": [
          "*"
        ],
        "ExposeHeaders": [
          "ETag"
        ],
        "MaxAgeSeconds": 3000
      }
    ]
    
    CoreWeave ストレージは S3 互換です。CORS の詳細については、AWS のドキュメント「Configuring cross-origin resource sharing (CORS)」を参照してください。
  5. バケットに対して、W&B デプロイメントがそのバケットへアクセスし、クラウドインフラストラクチャ内の AI ワークロードやユーザーのブラウザがバケットへアクセスする際に利用する 事前署名付き URL を生成できるように、必要な権限を付与するバケットポリシーを構成します。CoreWeave のドキュメントにある Bucket Policy Reference を参照してください。
    {
      "Version": "2012-10-17",
      "Statement": [
      {
        "Sid": "AllowWandbUser",
        "Action": [
          "s3:GetObject*",
          "s3:GetEncryptionConfiguration",
          "s3:ListBucket",
          "s3:ListBucketMultipartUploads",
          "s3:ListBucketVersions",
          "s3:AbortMultipartUpload",
          "s3:DeleteObject",
          "s3:PutObject",
          "s3:GetBucketCORS",
          "s3:GetBucketLocation",
          "s3:GetBucketVersioning"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:s3:::<cw-bucket>/*",
          "arn:aws:s3:::<cw-bucket>"
        ],
        "Principal": {
          "CW": "arn:aws:iam::wandb:static/<wb-cw-principal>"
        },
        "Condition": {
          "StringLike": {
            "wandb:OrgID": [
              "<wb-org-id>"
            ]
          }
        }
      },
      {
        "Sid": "AllowUsersInOrg",
        "Action": "s3:*",
        "Effect": "Allow",
        "Resource": [
          "arn:aws:s3:::<cw-bucket>",
          "arn:aws:s3:::<cw-bucket>/*"
        ],
        "Principal": {
          "CW": "arn:aws:iam::<cw-storage-org-id>:*"
        }
      }]
    }
    
    "Sid": "AllowUsersInOrg" で始まるステートメントは、組織内のユーザーにバケットへの直接アクセス権を付与します。この権限が不要な場合は、ポリシーからこのステートメントを省略できます。
  6. バケットポリシー内のプレースホルダーを次の値に置き換えてください:
    • <cw-bucket>: 使用するバケット名。
    • <cw-wandb-principal>:
      • Multi-tenant Cloud: arn:aws:iam::wandb:static/wandb-integration-public
      • Dedicated Cloud または Self-Managed: arn:aws:iam::wandb:static/wandb-integration
    • <wb-org-id>:
  7. Dedicated Cloud:追加の手順の実施については、support までお問い合わせください。
  8. Self-Managed: Self-Managed デプロイメントで、W&B を更新して環境変数 GORILLA_SUPPORTED_FILE_STORES を文字列 cw:// に厳密に設定し、その後 W&B を再起動します。これを行わない場合、チームストレージを設定するときに CoreWeave がオプションとして表示されません。
次に、W&Bを設定します
次に、ストレージアドレスを決定します

ストレージアドレスを決定する

このセクションでは、W&B Team を BYOB ストレージバケットに接続する際に使用する構文について説明します。サンプル内の山かっこ(<>)で囲まれたプレースホルダーは、使用するバケットの情報に置き換えてください。 詳細な手順については、タブを選択してください。
このセクションは、Dedicated Cloud または Self-Managed におけるチームレベルの BYOB の場合にのみ該当します。インスタンスレベルの BYOB や Multi-tenant Cloud の場合は、すでに W&B の設定 に進む準備ができています。以下の形式を使用して、バケットのフルパスを決定します。山かっこ(<>)で囲まれたプレースホルダーを、バケットの値に置き換えてください。バケット形式:
cw://<accessKey>:<secretAccessKey>@cwobject.com/<bucketName>?tls=true
cwobject.com の HTTPS エンドポイントがサポートされています。TLS 1.3 が必須です。その他の CoreWeave エンドポイントに関心がある場合は、サポート までお問い合わせください。
ストレージアドレスを決定できたら、チームレベルの BYOB を設定 する準備が整います。

W&B を設定する

bucket をプロビジョニングし、そのアドレスを確認したら、インスタンスレベルまたはチームレベルで BYOB を設定する準備が整います。
ストレージ bucket のレイアウトは慎重に計画してください。W&B 用にストレージ bucket を設定した後、そのデータを別の bucket に移行する作業は複雑で、W&B の支援が必要になります。これは、Dedicated Cloud と Self-Managed のストレージに加えて、Multi-tenant Cloud のチームレベルのストレージにも該当します。ご質問がある場合は、support までお問い合わせください。

インスタンスレベルの BYOB

インスタンスレベルで CoreWeave AI Object Storage を利用する場合は、これらの手順には従わず、代わりに W&B サポート に連絡してください。セルフサービスでの設定はまだサポートされていません。
Dedicated Cloud の場合: バケットの詳細を W&B チームと共有してください。W&B チームが Dedicated Cloud インスタンスを設定します。 Self-Managed の場合は、W&B App を使用してインスタンスレベルの BYOB を設定できます。
  1. admin ロールを持つユーザーとして W&B にログインします。
  2. 画面上部のユーザーアイコンをクリックし、System Console をクリックします。
  3. Settings > System Connections に移動します。
  4. Bucket Storage セクションで、Identity フィールドに指定されているアイデンティティに、新しいバケットへのアクセス権が付与されていることを確認します。
  5. Provider を選択します。
  6. Bucket Name を入力します。
  7. 必要に応じて、新しいバケットで使用する Path を入力します。
  8. Save をクリックします。

チームレベルの BYOB

W&B App を使用してチームを作成する際に、チームレベルの BYOB を設定できます。オプションは 2 つあります:
  • 既存のバケットを使用する: まずはバケットのストレージの場所を確認する必要があります。
  • 新しいバケットを作成する(マルチテナントクラウドのみ): チームを作成するときに、W&B がクラウドプロバイダ上に自動的にバケットを作成できます。これは CoreWeave、AWS、Google Cloud でサポートされています。
  • チームが作成された後は、そのストレージは変更できません。
  • インスタンスレベルの BYOB については、代わりに Instance level BYOB を参照してください。
  • チーム用に CoreWeave ストレージを設定する予定がある場合は、CoreWeave requirements を確認し、バケットが CoreWeave で正しく設定されていることとチームの設定内容を確認してもらうために support に連絡してください。チーム作成後はストレージの詳細を変更できないためです。
続行するには、デプロイタイプを選択してください。
  1. Dedicated Cloud: チームでストレージバケットを使用するために残りの手順に進む前に、バケットパスをアカウントチームに共有し、インスタンスのサポート対象ファイルストアに追加してもらう必要があります。
  2. Self-Managed: チームでストレージバケットを使用するために残りの手順に進む前に、バケットパスを GORILLA_SUPPORTED_FILE_STORES 環境変数に追加し、その後 W&B を再起動する必要があります。
  3. admin ロールを持つユーザーとして W&B にログインし、左上のアイコンをクリックして左ナビゲーションを開き、Create a team to collaborate をクリックします。
  4. チーム名を入力します。
  5. Storage TypeExternal storage に設定します。
    チームのストレージとしてインスタンスレベルのストレージ(内部か外部かを問わない)を使用するには、インスタンスレベルのバケットが BYOB に設定されている場合でも、Storage TypeInternal のままにします。チーム専用の外部ストレージを使用する場合は、チームの Storage TypeExternal に設定し、次のステップでバケットの詳細を設定します。
  6. Bucket location をクリックします。
  7. 既存のバケットを使用する場合は、一覧から選択します。新しいバケットを追加する場合は、下部の Add bucket をクリックし、バケットの詳細を入力します。 Cloud provider をクリックし、CoreWeaveAWSGoogle Cloud、または Azure を選択します。 クラウドプロバイダーが一覧にない場合は、インスタンスのサポート対象ファイルストアにバケットパスを追加するために、Provision your bucket の手順に従ったことを確認してください。ストレージプロバイダーがそれでも表示されない場合は、contact support に連絡してサポートを受けてください。
  8. バケットの詳細を指定します。
    • CoreWeave の場合は、バケット名のみを指定します。
    • Amazon S3、Google Cloud、または S3 互換ストレージの場合は、前の手順 で確認した完全なバケットパスを指定します。
    • W&B Dedicated または Self-Managed 上の Azure の場合は、Account name に Azure アカウントを、Container name に Azure Blob Storage コンテナを設定します。
    • 必要に応じて、追加の接続設定を指定します:
      • 該当する場合は、Path にバケットのサブパスを設定します。
      • CoreWeave: 追加の接続設定は不要です。
      • AWS: KMS key ARN に KMS 暗号化キーの ARN を設定します。
      • Google Cloud: 追加の接続設定は不要です。
      • Azure: Tenant IDManaged Identity Client ID の値を指定します。GORILLA_SUPPORTED_FILE_STORES で接続文字列を設定していない限り、これらのフィールドは必須です。
  9. 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 には GETPUTHEAD メソッドを含める必要があります。
    • ExposeHeaders には ETag を含める必要があります。
    • CORS ポリシーの AllowedOrigins には、W&B フロントエンドのドメインを含める必要があります。このページで示す CORS ポリシーの例では、* を使用してすべてのドメインを許可しています。
  • LOTA エンドポイントの問題
    • W&B から LOTA エンドポイントへの接続は、まだサポートされていません。関心がある場合は、サポートまでご連絡ください。
  • アクセスキーおよび権限エラー
    • CoreWeave API Access Key の有効期限が切れていないことを確認します。
    • CoreWeave API Access Key と Secret Key に、GetObjectPutObjectDeleteObjectListBucket の十分な権限が付与されていることを確認します。このページの例は、この要件を満たしています。詳細は CoreWeave ドキュメントの Create and Manage Access Keys を参照してください。

Google Cloud

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