メインコンテンツへスキップ

概要

Bring your own bucket (BYOB) を使用すると、W&B の アーティファクト やその他の関連する機密データを、独自の クラウド または オンプレミス の インフラストラクチャー に保存できます。Dedicated Cloud または Multi-tenant Cloud の場合、バケットに保存したデータが W&B が管理する インフラストラクチャー にコピーされることはありません。
  • W&B SDK / CLI / UI とバケット間の通信は、署名付き URL を使用して行われます。
  • W&B は、W&B Artifacts を削除するためにガベージコレクション プロセス を使用します。詳細については、アーティファクトの削除 を参照してください。
  • バケットの 設定 時にサブパスを指定することで、W&B がバケットのルートにあるフォルダーにファイルを保存しないようにすることができます。これにより、組織のバケットガバナンスポリシーに、より適合させることができます。

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

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

データベース

  • ユーザー、チーム、Artifacts、Experiments、Projects の メタデータ
  • Reports
  • Experiment の ログ
  • システム メトリクス
  • コンソール ログ

バケット

  • Experiment のファイルと メトリクス
  • Artifact のファイル
  • メディアファイル
  • Run のファイル
  • Parquet 形式でエクスポートされた履歴 メトリクス とシステムイベント

バケットのスコープ

ストレージバケットは、次の 2 つのスコープのいずれかに 設定 できます。
スコープ説明
インスタンスレベルDedicated Cloud および Self-Managed において、組織またはインスタンス内の必要な権限を持つすべての ユーザー が、インスタンスレベルのストレージバケットに保存されたファイルに アクセス できます。Multi-tenant Cloud には適用されません。
チームレベルW&B チーム がチームレベルのストレージバケットを使用するように 設定 されている場合、チームメンバー はその中に保存されたファイルに アクセス できます。チームレベルのストレージバケットにより、非常に機密性の高い データ や厳格なコンプライアンス要件を持つチームに対して、より高度なデータアクセス制御とデータの分離が可能になります。

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

利用可能マトリクス

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 デプロイメント タイプインスタンスレベルチームレベル補足情報
Dedicated Cloudインスタンスおよびチームレベルの BYOB は、CoreWeave AI Object Storage、Amazon S3、Google Cloud Storage、Microsoft Azure Blob Storage、および ユーザー の クラウド や オンプレミス インフラストラクチャー でホストされている MinIO Enterprise (AIStor) などの S3 互換ストレージでサポートされています。
Multi-tenant Cloud該当なし1チームレベルの BYOB は、CoreWeave AI Object Storage、Amazon S3、Google Cloud Storage でサポートされています。
Self-Managedインスタンスおよびチームレベルの 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 でのチームレベルの BYOB ではサポートされていません。 以下のセクションでは、BYOB をセットアップする プロセス を ガイド します。

バケットのプロビジョニング

利用可能性を確認 したら、アクセス ポリシーと CORS を含むストレージバケットをプロビジョニングする準備が整いました。タブを選択して続行してください。
要件:
  • Multi-tenant Cloud、または
  • Dedicated Cloud v0.73.0 以降、または
  • Helm チャートの v0.33.14+ でデプロイされた Self-Managed v0.73.0 以降
  • 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. Dedicated Cloud / Self-Managed: バケットポリシーに必要な カスタマーネームスペースを取得します。
    1. W&B App で ユーザー プロファイルアイコンをクリックし、System Console をクリックします。
    2. Authentication タブをクリックします。
    3. ページの下部で、Customer Namespace の値をコピーします。バケットポリシーを 設定 するためにこの値を保管しておきます。
    4. System Console は閉じて構いません。
  3. CoreWeave で、任意の名前のバケットを任意の CoreWeave アベイラビリティゾーンに作成します。オプションで、W&B がすべての W&B ファイルのサブパスとして使用するフォルダーを作成します。バケット名、アベイラビリティゾーン、API アクセス キー、シークレット キー、およびサブパスをメモしておきます。
  4. バケットに以下の Cross-origin resource sharing (CORS) ポリシーを 設定 します。
    [
      {
        "AllowedHeaders": [
          "*"
        ],
        "AllowedMethods": [
          "GET",
          "HEAD",
          "PUT"
        ],
        "AllowedOrigins": [
          "*"
        ],
        "ExposeHeaders": [
          "ETag"
        ],
        "MaxAgeSeconds": 3000
      }
    ]
    
    CoreWeave ストレージは S3 互換です。CORS の詳細については、AWS ドキュメントの Configuring cross-origin resource sharing (CORS) を参照してください。
  5. ユーザー の クラウド インフラストラクチャー 内の AI ワークロードや ユーザー のブラウザがバケットに アクセス するために利用する 署名付き URL を生成し、W&B デプロイメント がバケットに アクセス するために必要な権限を付与するバケットポリシーを 設定 します。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: 追加の手順を完了するために、サポート に連絡してください。
  8. Self-Managed: W&B の デプロイメント を更新して、環境変数 GORILLA_SUPPORTED_FILE_STORES を正確な文字列 cw:// に 設定 し、W&B を再起動します。そうしないと、チームストレージを 設定 する際に CoreWeave がオプションとして表示されません。
次に、W&B を設定 します。
次に、ストレージアドレスを決定 します。

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

このセクションでは、W&B チーム を 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 を設定する

バケットをプロビジョニング し、その アドレスを決定 したら、インスタンスレベル または チームレベル で BYOB を 設定 する準備が整いました。
ストレージバケットのレイアウトは慎重に計画してください。W&B 用にストレージバケットを 設定 した後、そのデータを別のバケットに移行することは複雑であり、W&B の支援が必要になります。これは Dedicated Cloud や Self-Managed のストレージ、および Multi-tenant Cloud のチームレベルのストレージに適用されます。質問がある場合は、サポート に連絡してください。

インスタンスレベル 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 フィールドの ID に新しいバケットへの アクセス 権限が付与されていることを確認します。
  5. Provider を選択します。
  6. Bucket Name を入力します。
  7. オプションで、新しいバケットで使用する Path を入力します。
  8. Save をクリックします。
Self-Managed の場合、W&B は、必要な アクセス メカニズムと関連する IAM 権限とともにストレージバケットをプロビジョニングするために、W&B が管理する Terraform モジュールを使用することをお勧めします。

チームレベル BYOB

W&B App を使用して チーム を作成する際に、チームレベルの BYOB を 設定 できます。2 つのオプションがあります。
  • 既存のバケットを使用する: 最初にバケットの ストレージの場所を決定 する必要があります。
  • 新しいバケットを作成する (Multi-tenant Cloud のみ): チーム を作成する際に、W&B が クラウド プロバイダーにバケットを自動的に作成できます。これは CoreWeave、AWS、Google Cloud でサポートされています。
  • チーム が作成された後、そのストレージを変更することはできません。
  • インスタンスレベルの BYOB については、代わりに インスタンスレベル BYOB を参照してください。
  • チーム に CoreWeave ストレージを 設定 する予定がある場合は、CoreWeave の要件 を確認し、サポート に連絡して、CoreWeave でバケットが正しく 設定 されていること、およびチームの 設定 を検証してください。ストレージの詳細は チーム 作成後に変更できないためです。
デプロイメント タイプを選択して続行してください。
  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 を選択します。 クラウド プロバイダーがリストにない場合は、バケットのプロビジョニング の手順に従って、インスタンスのサポートされているファイルストアにバケットパスを追加したことを確認してください。それでもストレージプロバイダーがリストにない場合は、サポート にお問い合わせください。
  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 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 には GETPUT、および HEAD メソッドを含める必要があります。
    • ExposeHeaders には ETag を含める必要があります。
    • W&B のフロントエンドドメインを CORS ポリシーの AllowedOrigins に含める必要があります。このページで提供されている例の CORS ポリシーでは、* を使用してすべてのドメインを含めています。
  • LOTA エンドポイントの問題
    • W&B から LOTA エンドポイントへの接続はまだサポートされていません。関心がある場合は、サポート に連絡してください。
  • アクセスキーと権限のエラー
    • CoreWeave API アクセス キーが期限切れになっていないことを確認してください。
    • CoreWeave API アクセス キーとシークレット キーに、GetObjectPutObjectDeleteObjectListBucket の十分な権限があることを確認してください。このページの例は、この要件を満たしています。CoreWeave ドキュメントの Create and Manage Access Keys を参照してください。