메인 콘텐츠로 건너뛰기
이 가이드는 모든 W&B 배포 유형에 적용됩니다.
  • 멀티 테넌트 클라우드: 팀 수준 BYOB
  • 디디케이티드 클라우드: 인스턴스 및 팀 수준 BYOB
  • 셀프 매니지드: 인스턴스 및 팀 수준 BYOB
이 가이드에서 설명하는 버킷 프로비저닝 지침은 배포 유형과 관계없이 동일합니다.

개요

BYOB(Bring your own bucket)를 사용하면 W&B Artifacts 및 기타 관련 민감한 데이터를 자체 클라우드 또는 온프레미스 인프라에 저장할 수 있습니다. Dedicated Cloud 또는 Multi-tenant Cloud를 사용하는 경우, 버킷에 저장된 데이터는 W&B에서 관리하는 인프라로 복사되지 않습니다.
  • W&B SDK / CLI / UI와 버킷 간 통신은 pre-signed URLs를 통해 이루어집니다.
  • W&B는 W&B Artifacts를 삭제하기 위해 가비지 컬렉션 프로세스를 사용합니다. 자세한 내용은 Deleting Artifacts를 참조하세요.
  • 버킷을 구성할 때 하위 경로(sub-path)를 지정하여, 버킷 최상위 경로에 있는 폴더에 W&B가 파일을 저장하지 않도록 할 수 있습니다. 이는 조직의 버킷 거버넌스 정책을 더 잘 준수하는 데 도움이 될 수 있습니다.

중앙 데이터베이스와 버킷에 저장되는 데이터

BYOB 기능을 사용하면 일부 데이터 유형은 W&B 중앙 데이터베이스에 저장되고, 다른 데이터 유형은 사용자 버킷에 저장됩니다.

데이터베이스

  • 사용자, 팀, 아티팩트, 실험, 프로젝트 메타데이터
  • Reports
  • 실험 로그
  • 시스템 메트릭
  • 콘솔 로그

버킷

  • 실험 파일 및 메트릭
  • 아티팩트 파일
  • 미디어 파일
  • Run 파일
  • Parquet 형식으로 내보낸 히스토리 메트릭 및 시스템 이벤트

버킷 범위

스토리지 버킷은 다음 두 가지 범위로 구성할 수 있습니다:
ScopeDescription
Instance levelDedicated CloudSelf-Managed 환경에서는 조직 또는 인스턴스 내에서 필요한 권한을 가진 모든 사용자가 인스턴스 스토리지 버킷에 저장된 파일에 접근할 수 있습니다. Multi-tenant Cloud에는 적용되지 않습니다.
Team levelW&B Team이 Team level 스토리지 버킷을 사용하도록 구성된 경우, 팀 구성원은 해당 버킷에 저장된 파일에 접근할 수 있습니다. Team level 스토리지 버킷은 고도의 민감한 데이터나 엄격한 규제·컴플라이언스 요구 사항이 있는 팀에 대해 더 강력한 데이터 접근 제어와 데이터 격리를 제공합니다.

Team level 스토리지는 하나의 인스턴스를 공유하는 서로 다른 비즈니스 유닛 또는 부서가 인프라와 관리 리소스를 효율적으로 활용하도록 돕습니다. 또한 서로 다른 고객 프로젝트를 위한 AI 워크플로를 각기 별도의 프로젝트 팀이 관리할 수 있게 해 줍니다. 모든 배포 유형에서 사용 가능합니다. Team level BYOB는 팀을 설정할 때 구성합니다.
이와 같은 유연한 설계는 조직의 요구 사항에 따라 다양한 스토리지 토폴로지를 구성할 수 있게 해 줍니다. 예를 들면 다음과 같습니다:
  • 동일한 버킷을 인스턴스와 하나 이상의 팀에서 함께 사용할 수 있습니다.
  • 각 팀이 별도의 버킷을 사용할 수도 있고, 일부 팀은 인스턴스 버킷에 기록하도록 선택할 수도 있으며, 여러 팀이 서브패스에 쓰는 방식으로 하나의 버킷을 공유할 수도 있습니다.
  • 서로 다른 팀의 버킷을 서로 다른 클라우드 인프라 환경이나 리전에서 호스팅할 수 있으며, 서로 다른 스토리지 관리자 팀이 관리할 수 있습니다.
예를 들어, 조직 내에 Kappa라는 Team이 있다고 가정해 봅시다. 조직(및 Team Kappa)은 기본적으로 Instance level 스토리지 버킷을 사용합니다. 다음으로 Omega라는 Team을 생성합니다. Team Omega를 생성할 때 해당 팀에 대해 Team level 스토리지 버킷을 구성합니다. Team Omega에서 생성한 파일은 Team Kappa에서 접근할 수 없습니다. 그러나 Team Kappa에서 생성한 파일은 Team Omega에서 접근할 수 있습니다. 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 배포 유형인스턴스 수준팀 수준추가 정보
Dedicated CloudCoreWeave AI Object Storage, Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, 그리고 사용자의 클라우드 또는 온프레미스 인프라에 호스팅되는 MinIO Enterprise (AIStor)와 같은 S3 호환 스토리지에 대해 인스턴스 수준 및 팀 수준 BYOB가 지원됩니다.
Multi-tenant Cloud해당 없음1CoreWeave AI Object Storage, Amazon S3, Google Cloud Storage에 대해 팀 수준 BYOB가 지원됩니다.
Self-ManagedCoreWeave AI Object Storage, Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, 그리고 사용자의 클라우드 또는 온프레미스 인프라에 호스팅되는 MinIO Enterprise (AIStor)와 같은 S3 호환 스토리지에 대해 인스턴스 수준 및 팀 수준 BYOB가 지원됩니다.
1.Multi-tenant Cloud에서 팀 수준 BYOB에는 Azure Blob Storage가 지원되지 않습니다. 다음 섹션에서는 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 organization 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. 버킷에 다음 교차 출처 리소스 공유(CORS) 정책을 설정합니다:
    [
      {
        "AllowedHeaders": [
          "*"
        ],
        "AllowedMethods": [
          "GET",
          "HEAD",
          "PUT"
        ],
        "AllowedOrigins": [
          "*"
        ],
        "ExposeHeaders": [
          "ETag"
        ],
        "MaxAgeSeconds": 3000
      }
    ]
    
    CoreWeave 스토리지는 S3 호환 스토리지입니다. CORS에 대한 자세한 내용은 AWS 설명서의 교차 출처 리소스 공유(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. 셀프 매니지드: W&B 배포 환경에서 환경 변수 GORILLA_SUPPORTED_FILE_STOREScw://라는 문자열로 정확히 설정한 후 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 엔드포인트 사용을 원한다면 support로 연락하세요.
스토리지 주소를 결정했으면, 이제 팀 수준 BYOB를 구성할 준비가 되었습니다.

W&B 구성하기

bucket을 프로비저닝하고 주소를 확인했다면, 이제 인스턴스 수준 또는 팀 수준에서 BYOB를 구성할 수 있습니다.
스토리지 버킷 구조를 신중하게 계획하세요. W&B용 스토리지 버킷을 한 번 구성한 이후에는, 그 데이터를 다른 버킷으로 마이그레이션하는 작업이 복잡하며 W&B의 지원이 필요합니다. 이 내용은 Dedicated Cloud와 Self-Managed의 스토리지뿐 아니라 Multi-tenant Cloud의 팀 수준 스토리지에도 모두 해당합니다. 문의 사항이 있으면 support로 연락하세요.

인스턴스 수준 BYOB

인스턴스 수준에서 CoreWeave AI Object Storage를 사용하는 경우, 아래 지침을 따르지 말고 대신 W&B support에 문의하십시오. 셀프서비스 설정은 아직 지원되지 않습니다.
Dedicated Cloud의 경우: 버킷 정보를 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를 설정할 수 있습니다. 다음 두 가지 옵션 중에서 선택할 수 있습니다:
  • 기존 버킷 사용: 먼저 버킷의 스토리지 위치를 확인해야 합니다.
  • 새 버킷 생성 (멀티 테넌트 클라우드에서만 사용 가능): 팀을 생성할 때 W&B가 클라우드 제공자에 버킷을 자동으로 생성할 수 있습니다. 이는 CoreWeave, AWS, Google Cloud에서 지원됩니다.
  • 팀이 생성된 후에는 스토리지를 변경할 수 없습니다.
  • 인스턴스 수준 BYOB의 경우 Instance level BYOB를 참조하세요.
  • 팀에 대해 CoreWeave 스토리지를 설정할 계획이라면, CoreWeave 요구사항을 검토하고 support로 연락하여 버킷이 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를 클릭하고 CoreWeave, AWS, Google Cloud, 또는 Azure를 선택합니다. 클라우드 제공자가 목록에 없다면, 인스턴스의 지원 파일 스토어에 버킷 경로를 추가하기 위해 Provision your bucket의 지침을 모두 따랐는지 확인하십시오. 스토리지 제공자가 여전히 표시되지 않으면, 지원팀에 문의하여 도움을 받으십시오.
  8. 버킷 세부 정보를 지정합니다.
    • CoreWeave의 경우, 버킷 이름만 제공합니다.
    • Amazon S3, Google Cloud 또는 S3 호환 스토리지의 경우, 앞에서 확인한 전체 버킷 경로를 제공합니다.
    • Azure(W&B Dedicated 또는 Self-Managed 환경)의 경우, Account name에 Azure 계정을, Container name에 Azure Blob 스토리지 컨테이너를 설정합니다.
    • 선택적으로 추가 연결 설정을 제공합니다.
      • 필요한 경우 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는 버킷 이름이 경로의 시작 부분에 서브도메인으로 포함되는 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이 포함되어야 합니다.
    • W&B 프런트엔드 도메인은 CORS 정책의 AllowedOrigins에 포함되어야 합니다. 이 페이지에 제공된 예시 CORS 정책은 *를 사용하여 모든 도메인을 포함합니다.
  • LOTA 엔드포인트 문제
    • 현재 W&B에서 LOTA 엔드포인트로의 연결은 지원되지 않습니다. 관심이 있다면 지원팀에 문의하세요.
  • 액세스 키 및 권한 오류
    • CoreWeave API Access Key가 만료되지 않았는지 확인하세요.
    • CoreWeave API Access Key와 Secret Key에 GetObject, PutObject, DeleteObject, ListBucket 권한이 충분히 부여되어 있는지 확인하세요. 이 페이지의 예시는 이 요구 사항을 충족합니다. 자세한 내용은 CoreWeave 문서의 Create and Manage Access Keys를 참조하세요.

Google Cloud

이 섹션에서는 Google Cloud Storage 연결 문제를 해결하는 방법을 안내합니다.
  • Bucket does not have soft deletion enabled Google Cloud Storage 버킷에 소프트 삭제가 활성화되어 있는지 확인하세요. 자세한 내용은 버킷의 소프트 삭제 정책 편집을 참고하세요.