Weights & Biases는 W&B Multi-tenant Cloud 또는 W&B 전용 클라우드 배포 유형과 같은 완전 관리형 배포 옵션을 권장합니다. W&B 완전 관리형 서비스는 사용하기 간단하고 안전하며, 필요한 설정이 최소화되거나 전혀 없습니다.
필수 구성 요소를 배포합니다.
- 로드 밸런서
- AWS Identity & Access Management (IAM)
- AWS Key Management System (KMS)
- Amazon Aurora MySQL
- Amazon VPC
- Amazon S3
- Amazon Route53
- Amazon Certificate Manager (ACM)
- Amazon Elastic Load Balancing (ALB)
- Amazon Secrets Manager
- Redis용 Elastic Cache
- SQS
사전 필수 권한
Terraform을 실행하는 계정은 도입에서 설명된 모든 구성 요소를 생성할 수 있는 권한과 IAM 정책 및 IAM 역할을 생성하고 역할에 리소스를 할당할 수 있는 권한이 필요합니다.일반적인 단계
이 주제의 단계는 이 문서에서 다루는 모든 배포 옵션에 공통적입니다.-
개발 환경을 준비합니다.
- Terraform 설치
- W&B는 버전 관리를 위해 Git 저장소를 만드는 것을 권장합니다.
-
terraform.tfvars파일을 만듭니다.tvfars파일 내용은 설치 유형에 따라 사용자 정의할 수 있지만, 최소 권장 사항은 아래 예제와 같습니다.namespace변수는 Terraform이 생성한 모든 리소스의 접두사로 사용되는 문자열이므로 배포하기 전에tvfars파일에 변수를 정의해야 합니다.subdomain과domain의 조합은 W&B가 구성될 FQDN을 형성합니다. 위의 예에서 W&B FQDN은wandb-aws.wandb.ml이 되고, FQDN 레코드가 생성될 DNSzone_id가 됩니다.allowed_inbound_cidr및allowed_inbound_ipv6_cidr도 설정해야 합니다. 모듈에서 이는 필수 입력입니다. 이전 예제는 모든 소스에서 W&B 설치에 대한 엑세스를 허용합니다. -
versions.tf파일을 만듭니다. 이 파일에는 AWS에 W&B를 배포하는 데 필요한 Terraform 및 Terraform provider 버전이 포함됩니다.AWS provider를 구성하려면 Terraform 공식 문서를 참조하세요. 선택 사항이지만, 이 문서의 시작 부분에서 언급한 원격 백엔드 설정을 추가하는 것이 좋습니다. -
variables.tf파일을 만듭니다.terraform.tfvars에 구성된 모든 옵션에 대해 Terraform은 해당 변수 선언이 필요합니다.
권장 배포 옵션
이것은 모든필수 구성 요소를 생성하고 Kubernetes Cluster에 최신 버전의 W&B를 설치하는 가장 간단한 배포 옵션 구성입니다.
-
main.tf를 만듭니다.일반적인 단계에서 파일을 생성한 동일한 디렉터리에 다음 내용으로main.tf파일을 만듭니다. -
W&B 배포
W&B를 배포하려면 다음 코맨드를 실행합니다.
REDIS 활성화
다른 배포 옵션은Redis를 사용하여 SQL 쿼리를 캐시하고 Experiments에 대한 메트릭을 로드할 때 애플리케이션 응답 속도를 높입니다.
캐시를 활성화하려면 권장 배포 섹션에 설명된 동일한 main.tf 파일에 create_elasticache_subnet = true 옵션을 추가해야 합니다.
메시지 브로커(대기열) 활성화
배포 옵션 3은 외부message broker를 활성화하는 것으로 구성됩니다. W&B가 내장된 브로커를 제공하므로 이는 선택 사항입니다. 이 옵션은 성능 향상을 제공하지 않습니다.
메시지 브로커를 제공하는 AWS 리소스는 SQS이며, 이를 활성화하려면 권장 배포 섹션에 설명된 동일한 main.tf에 use_internal_queue = false 옵션을 추가해야 합니다.
기타 배포 옵션
동일한 파일에 모든 구성을 추가하여 세 가지 배포 옵션을 모두 결합할 수 있습니다. Terraform Module은 표준 옵션과배포 - 권장에서 찾을 수 있는 최소 구성과 함께 결합할 수 있는 여러 옵션을 제공합니다.
수동 구성
Amazon S3 버킷을 W&B의 파일 스토리지 백엔드로 사용하려면 다음을 수행해야 합니다. 버킷에서 오브젝트 생성 알림을 수신하도록 구성된 SQS 대기열과 함께 버킷을 만들어야 합니다. 인스턴스에는 이 대기열에서 읽을 수 있는 권한이 필요합니다.S3 버킷 및 버킷 알림 생성
아래 절차에 따라 Amazon S3 버킷을 만들고 버킷 알림을 활성화합니다.- AWS 콘솔에서 Amazon S3로 이동합니다.
- 버킷 만들기를 선택합니다.
- 고급 설정 내에서 이벤트 섹션 내에서 알림 추가를 선택합니다.
- 이전에 구성한 SQS 대기열로 전송되도록 모든 오브젝트 생성 이벤트를 구성합니다.

SQS 대기열 생성
SQS 대기열을 만들려면 아래 절차를 따르세요.- AWS 콘솔에서 Amazon SQS로 이동합니다.
- 대기열 만들기를 선택합니다.
- 세부 정보 섹션에서 표준 대기열 유형을 선택합니다.
- 엑세스 정책 섹션에서 다음 보안 주체에 대한 권한을 추가합니다.
SendMessageReceiveMessageChangeMessageVisibilityDeleteMessageGetQueueUrl
W&B를 실행하는 노드에 권한 부여
W&B 서버가 실행 중인 노드는 Amazon S3 및 Amazon SQS에 대한 엑세스를 허용하도록 구성해야 합니다. 선택한 서버 배포 유형에 따라 다음 정책 명령문을 노드 역할에 추가해야 할 수 있습니다.W&B 서버 구성
마지막으로 W&B 서버를 구성합니다.http(s)://YOUR-W&B-SERVER-HOST/system-admin에서 W&B 설정 페이지로 이동합니다.- **외부 파일 스토리지 백엔드 사용 옵션을 활성화합니다.
- 다음 형식으로 Amazon S3 버킷, 리전 및 Amazon SQS 대기열에 대한 정보를 제공합니다.
- 파일 스토리지 버킷:
s3://<버킷 이름> - 파일 스토리지 리전(AWS 전용):
<리전> - 알림 구독:
sqs://<대기열 이름>

- 설정 업데이트를 선택하여 새 설정을 적용합니다.
W&B 버전 업그레이드
다음 단계에 따라 W&B를 업데이트합니다.wandb_app모듈의 구성에wandb_version을 추가합니다. 업그레이드할 W&B 버전을 제공합니다. 예를 들어, 다음 줄은 W&B 버전0.48.1을 지정합니다.
또는
wandb_version을 terraform.tfvars에 추가하고 동일한 이름으로 변수를 만들고 리터럴 값을 사용하는 대신 var.wandb_version을 사용할 수 있습니다.- 구성을 업데이트한 후 권장 배포 섹션에 설명된 단계를 완료합니다.
운영자 기반 AWS Terraform 모듈로 마이그레이션
이 섹션에서는 terraform-aws-wandb 모듈을 사용하여 pre-operator 환경에서 post-operator 환경으로 업그레이드하는 데 필요한 단계를 자세히 설명합니다.이전 및 이후 아키텍처
이전에는 W&B 아키텍처에서 다음을 사용했습니다.post-operator.tf에서 module "wandb_app"이 필요하지 않습니다.
post-operator.tf에 .disabled 파일 확장명이 있고 pre-operator.tf가 활성 상태인지(확장명이 .disabled가 아닌지) 확인합니다. 해당 파일은 여기에서 찾을 수 있습니다.
전제 조건
마이그레이션 프로세스를 시작하기 전에 다음 전제 조건이 충족되었는지 확인합니다.- Egress: 배포가 에어 갭이 될 수 없습니다. Release Channel에 대한 최신 사양을 가져오려면 deploy.wandb.ai에 엑세스해야 합니다.
- AWS 자격 증명: AWS 리소스와 상호 작용하도록 구성된 적절한 AWS 자격 증명.
- Terraform 설치됨: 시스템에 최신 버전의 Terraform이 설치되어 있어야 합니다.
- Route53 호스팅 영역: 애플리케이션이 제공될 도메인에 해당하는 기존 Route53 호스팅 영역.
- Pre-Operator Terraform 파일:
pre-operator.tf및pre-operator.tfvars와 같은 관련 변수 파일이 올바르게 설정되었는지 확인합니다.
Pre-Operator 설정
다음 Terraform 코맨드를 실행하여 Pre-Operator 설정에 대한 구성을 초기화하고 적용합니다.pre-operator.tf는 다음과 유사해야 합니다.
pre-operator.tf 구성은 두 개의 모듈을 호출합니다.
Post-Operator 설정
pre-operator.tf에 .disabled 확장명이 있고 post-operator.tf가 활성 상태인지 확인합니다.
post-operator.tfvars에는 추가 변수가 포함되어 있습니다.

post-operator.tf에는 다음과 같은 단일 항목이 있습니다.
post-operator 구성의 변경 사항:
- 필수 Provider 업데이트: provider 호환성을 위해
required_providers.aws.version을3.6에서4.0으로 변경합니다. - DNS 및 로드 밸런서 구성: Ingress를 통해 DNS 레코드 및 AWS 로드 밸런서 설정을 관리하려면
enable_dummy_dns및enable_operator_alb를 통합합니다. - 라이선스 및 크기 구성: 새로운 운영 요구 사항에 맞게
license및size파라미터를wandb_infra모듈로 직접 전송합니다. - 사용자 지정 도메인 처리: 필요한 경우
kube-system네임스페이스 내에서 외부 DNS pod 로그를 확인하여 DNS 문제를 해결하려면custom_domain_filter를 사용합니다. - Helm Provider 구성: Kubernetes 리소스를 효과적으로 관리하려면 Helm provider를 활성화하고 구성합니다.