AWS Machine Learning

관리형 권한(managed entitlements)으로 Amazon Bedrock의 프라이빗 요금 제안 관리하기

수십 또는 수백 개의 AWS 계정에 걸쳐 AI 모델 액세스를 관리하는 것은 각 계정이 AWS Marketplace 프라이빗 요금 제안을 개별적으로 수락해야 할 때 마찰을 일으킵니다. 이 게시물에서는 AWS License Manager에서 MPPO 권한을 활성화하는 두 가지 방법을 보여줍니다. 일회성 수정을 위한 경량 스크립트와 지속적인 이벤트 기반 처리를 위한 CDK 자동화입니다.

Sequence diagram showing AWS Marketplace sending a Purchase Agreement Created - Acceptor event to Amazon EventBridge, which invokes an AWS Lambda function. The function verifies the seller, discovers the received license, creates a distributed grant, requests activation with CreateGrantVersion(Status=ACTIVE), and writes the outcome to Amazon CloudWatch Logs.
이미지 출처 · AWS Machine Learning

수십 또는 수백 개의 AWS 계정에 걸쳐 AI 모델 액세스를 관리하는 것은 각 워크로드 계정이 AWS Marketplace 프라이빗 요금 제안(MPPO)을 개별적으로 구독하고 수락해야 할 때 운영상의 마찰을 일으킵니다. 관리형 권한(managed entitlements)이 적용된 Amazon Bedrock은 여러 계정에서 서드파티 AI 모델에 액세스하는 과정을 단순화하여, 중앙 계정에서 한 번 구독하면 조직 전체에 액세스 권한을 배포할 수 있습니다.

이 게시물에서는 AWS License Manager에서 AWS Marketplace 프라이빗 요금 제안(MPPO) 권한을 활성화하는 두 가지 방법을 보여줍니다. 이미 신뢰하는 수신된 라이선스에 대해 일회성이며 인프라가 필요 없는 수정을 원한다면 경량 스크립트를 사용하십시오. 판매자를 검증하고 분산형 그랜트를 생성 및 활성화하는 지속적인 이벤트 기반 처리를 원한다면 CDK 자동화를 사용하십시오.

그랜트 활성화를 자동화해야 하는 이유

AWS Marketplace 프라이빗 요금 제안을 사용하면 Amazon Bedrock의 서드파티 모델에 대해 맞춤 요율을 협상할 수 있습니다. 적격한 프라이빗 제안이 수락되면 AWS Marketplace가 AWS License Manager에 라이선스를 생성합니다. 모든 기능이 활성화된 AWS Organizations에서는 조직 수준의 그랜트가 자동 수락되지만, 활성화하기 전까지는 Disabled 상태로 유지됩니다.

팀들은 보통 AWS License Manager 콘솔을 확인하고 그랜트를 수동으로 활성화하는 방식으로 이를 관리합니다. 수동 확인도 가능하지만, 노력이 들고 놓치기 쉽습니다. 누군가 그랜트를 활성화할 때까지 협상된 요금은 적용되지 않습니다. 팀이 새 모델을 도입하거나 조건을 갱신할 때 동일한 노력이 반복됩니다.

솔루션 개요

샘플 리포지토리는 두 가지 경로를 제공합니다:

  • 경로 1 – 경량 경로 은 수신된 라이선스를 나열하고 드라이런(dry-run) 계획을 출력하는 독립형 스크립트입니다. 이 스크립트는 --apply --confirm-account-id플래그와 함께 다시 실행할 때만 조직 전체 그랜트를 생성하고 활성화합니다. 판매자 허용 목록이 없으므로, 관리 계정의 모든 수신된 라이선스를 신뢰하는 경우에만 사용하십시오.
  • 경로 2 – 이벤트 기반 경로 는 AWS Cloud Development Kit(AWS CDK)를 사용하여 AWS 관리 계정에 지속적인 자동화를 배포합니다.

다음 구현 경로 중 하나를 선택하십시오. CDK 없이 일회성 활성화를 원한다면 경로 1을 사용하고, 지속적인 이벤트 기반 자동화를 원한다면 경로 2를 사용하십시오.

경로 1: 경량 스크립트 (일회성 활성화)

CDK를 배포하지 않고 일회성 활성화가 필요할 때 이 경로를 사용하십시오. 이 스크립트는 관리 계정의 모든 수신된 라이선스를 나열하므로, 변경 사항을 적용하기 전에 드라이런을 검토 게이트로 활용하십시오.

  1. 샘플 리포지토리를 로컬에 클론하고 프로젝트 디렉터리로 이동합니다.
    git clone https://github.com/aws-samples/sample-bedrock-managed-entitlements.git
    cd sample-bedrock-managed-entitlements
  2. 경량 스크립트를 드라이런 모드로 실행합니다.
    python3 lightweight/distribute_licenses.py
  3. 나열된 모든 라이선스를 검토하고 ISV Partner 발급자와 계정 범위가 예상한 프라이빗 제안과 일치하는지 확인합니다.
  4. 동일한 AWS Organizations 관리 계정에서 검토된 계획을 적용합니다.
    python3 lightweight/distribute_licenses.py --apply --confirm-account-id ACCOUNT_ID
  5. 그랜트가 활성화된 후, 프로덕션에서 프라이빗 제안에 의존하기 전에 청구 경로를 검증하십시오. AWS Cost Explorer의 청구 데이터는 지연될 수 있으므로, 청구가 나타난 후 대상 Amazon Bedrock 사용량에 대한 실제 청구액을 비교하는 데 사용하십시오. 반복 가능한 확인을 위해 샘플 scripts/bedrock_discount_check.py 유틸리티를 ISV Partner 발급자에 맞게 조정하고 예상되는 할인 경로를 확인하십시오.

경로 2: CDK 자동화 (지속적인 활성화)

새로운 프라이빗 요금 계약을 자동으로 처리하고 싶을 때 이 경로를 사용하십시오. CDK 스택은 적격한 AWS Marketplace 계약 이벤트를 수신하고, 판매자 허용 목록을 확인하고, 분산형 그랜트를 생성하며, License Manager에 더 많은 시간이 필요할 때 활성화를 재시도합니다. 이 솔루션은 세 가지 구성 요소로 이루어져 있습니다:

  • Amazon EventBridge 규칙: 스택은 us-east-1의 기본 이벤트 버스에서 AWS Marketplace 계약 이벤트를 수신합니다. 이 규칙은 source와 일치합니다 aws.agreement-marketplace 및 상세 유형 Purchase Agreement Created - Acceptor그런 다음 AWS Lambda 함수를 호출합니다.
  • AWS Lambda 함수: 이 함수는 AWS Marketplace 계약 이벤트를 수신하고, 판매자 허용 목록을 확인하고, 라이선스를 조회하고, 분산 그랜트를 생성하며, 다음과 함께 활성화를 요청합니다. CreateGrantVersion(Status=ACTIVE). 이 함수는 그 결과를 다음에 기록합니다 Amazon CloudWatch Logs 감사 가능성을 위해서입니다.
  • AWS License Manager 자격(entitlements): 이 그랜트는 귀 조직, 선택된 조직 단위(OU) 또는 특정 계정을 대상으로 합니다. 협상된 요금은 그랜트가 활성화되고 도달한 후에만 적용됩니다. ACTIVE 또는 WORKFLOW_COMPLETED.

다음 다이어그램은 이벤트 기반 흐름을 보여줍니다.

Sequence diagram showing AWS Marketplace sending a Purchase Agreement Created - Acceptor event to Amazon EventBridge, which invokes an AWS Lambda function. The function verifies the seller, discovers the received license, creates a distributed grant, requests activation with CreateGrantVersion(Status=ACTIVE), and writes the outcome to Amazon CloudWatch Logs.

그림 1: AWS Marketplace가 Amazon EventBridge로 Purchase Agreement Created – Acceptor 이벤트를 전송하고, EventBridge가 AWS Lambda 함수를 호출하는 과정을 보여주는 시퀀스 다이어그램. 이 함수는 판매자를 검증하고, 수신된 라이선스를 확인하며, 분산 그랜트를 생성하고, CreateGrantVersion(Status=ACTIVE)으로 활성화를 요청한 후, 그 결과를 Amazon CloudWatch Logs에 기록합니다.

이 접근 방식의 주요 이점:

  • 더 빠른 협상 가격 확보. 협상된 요금은 분배된 보조금이 도달한 후에 적용됩니다 ACTIVE 또는 WORKFLOW_COMPLETED, 수동 콘솔 확인을 기다리지 않고 말입니다.
  • 계정 전반에 걸친 일관된 처리. 서드파티 모델 권한을 부여받는 각 조직에 동일한 AWS Lambda 함수와 Amazon EventBridge 규칙 패턴을 배포할 수 있으므로, 활성화 로직이 운영자에 따라 달라지지 않습니다.
  • 내장 감사 추적. 모든 활성화 시도 또는 건너뛰기 결정은 CloudWatch Logs에 기록되므로 각 그랜트가 언제 활성화되고, 연기되고, 무시되었는지에 대한 기록을 확인할 수 있습니다.

전제 조건

이 경로를 배포하기 전에 다음 사전 요구 사항을 확인하세요:

  • 다음에서 AWS Organizations 관리 계정을 사용하세요: us-east-1 Python 3.12+, AWS Command Line Interface(AWS CLI), 그리고 AWS CDK v2가 구성되어 있는 상태.
  • AWS Organizations가 모든 기능을 사용하도록 설정되어 있고 해당 프라이빗 오퍼가 License Manager 기반 Bedrock 모델에 대한 것인지 확인하십시오. SaaS(Software as a Service) 제품은 이 자동화의 범위에서 제외됩니다.

구현 단계

  1. 샘플 리포지토리를 로컬에 클론하고 프로젝트 디렉터리로 이동합니다.
    git clone https://github.com/aws-samples/sample-bedrock-managed-entitlements.git
    cd sample-bedrock-managed-entitlements
  2. 조직 사전 요구 사항을 확인하거나 활성화하십시오.
    python3 scripts/bootstrap_prereqs.py --check --region us-east-1

    모든 항목 검토 APPLY 또는 MANUAL 변경을 수행하기 전에 항목을 확인합니다. 부트스트랩 스크립트는 License Manager 조직 통합, License Manager 신뢰할 수 있는 액세스, AWS Marketplace 라이선스 관리 신뢰할 수 있는 액세스, 그리고 필요한 서비스 연결 역할을 활성화할 수 있습니다.

    python3 scripts/bootstrap_prereqs.py --apply --region us-east-1 --confirm-account-id ACCOUNT_ID
  3. 배포 입력을 구성합니다.
    python3 scripts/setup_config.py

    리뷰 config/sellers.json. 조직 ID, 판매자 허용 목록, 알림 및 선택적 그랜트 대상을 구성하세요. 기본적으로 그랜트는 전체 조직을 대상으로 합니다. grantTargets (을)를 사용하여 그랜트 대상을 선택한 OU 또는 AWS 계정으로 범위를 지정하세요.

  4. CDK 스택을 배포합니다.
    cd cdk
    pip install -r requirements.txt
    cdk bootstrap aws://ACCOUNT_ID/us-east-1
    cdk deploy
  5. 다음에서 Amazon DynamoDB 판매자 허용 목록을 시드(seeding)합니다. config/sellers.json.
    cd ..
    python scripts/seed_sellers.py --config config/sellers.json

    판매자 허용 목록을 보안 경계로 취급하세요. 테이블을 시드하기 전에 각 판매자 계정 ID를 수락된 AWS Marketplace 프라이빗 오퍼 또는 수신한 License Manager 라이선스와 대조하여 확인하십시오. 일치하는 판매자가 구성된 그랜트 대상 전반에서 그랜트 생성 및 활성화를 트리거할 수 있으므로 광범위하거나 검증되지 않은 판매자 항목을 추가하지 마십시오.

    배포 및 판매자 시드가 완료되면 스택은 적격한 AWS Marketplace 계약 이벤트를 처리할 준비가 된 것입니다. 그랜트 생성 및 활성화는 허용 목록에 있는 검증된 판매자에 대해서만 발생하며, 활성화는 License Manager가 그랜트 워크플로 처리를 마칠 때까지 지연될 수 있습니다.

  6. 배포된 자동화를 검증합니다.
    python scripts/e2e_validate.py --org-id o-xxxxxxxxxx --seller-account SELLER_ACCOUNT_ID --simulate
  7. 적격한 AWS Marketplace 계약 이벤트 이후 그랜트 활성화를 확인합니다.
    aws logs tail /aws/lambda/mppo-grants-handler --follow --region us-east-1
    python scripts/bedrock_discount_check.py --issuer "ISV Partner"

    활성화 및 청구 가시성은 몇 시간 또는 며칠이 걸릴 수 있습니다. 이벤트 기반 워크플로가 그랜트를 수락하고 활성화한 후 AWS License Manager에서 그랜트 상태를 확인한 다음, 청구 데이터가 나타나면 AWS Cost Explorer에서 해당되는 Amazon Bedrock 사용량을 검증하십시오. 반복 가능한 확인을 위해 샘플 scripts/bedrock_discount_check.py 유틸리티를 귀하의 ISV Partner 발급자 및 대상 연결 계정에 맞게 조정하십시오.

정리

테스트 목적으로 이 스택을 배포했다면, 소액의 Lambda 및 Amazon EventBridge 지속 요금이 발생하지 않도록 제거하세요:

cdk destroy

고객의 목소리

“매주 수백만 건의 임상 상담을 지원하는 AI Care Partner로서, Heidi Health는 실제 규모에서 서드파티 파운데이션 모델을 활용하고 있습니다. AWS Marketplace의 프라이빗 가격 책정은 그 성장을 관리할 수 있는 비용 효율적이고 효율적인 방법을 제공합니다. AWS 계정 및 조직 단위 전반에 걸쳐 사용량과 가격을 세부적으로 귀속시키고, 새로운 모델을 도입할 때 그랜트 관리를 자동화할 수 있습니다. 이를 통해 플랫폼 팀은 수작업 없이도 비용 거버넌스를 확장할 수 있습니다.”

— Marcus Lau, Heidi Health 플랫폼 엔지니어링 책임자

결론

이 게시물에서는 Amazon Bedrock 프라이빗 가격 제안에 대한 관리형 자격을 활성화하는 두 가지 방법을 소개했습니다. 신뢰하는 수신 라이선스를 일회성으로 활성화하려면 경량 스크립트를 사용하고, 새로운 AWS Marketplace 계약에 대한 지속적인 이벤트 기반 처리가 필요하다면 CDK 자동화를 배포하세요. 두 접근 방식 모두 수작업을 줄이고, 분산된 그랜트가 활성화된 후 협상된 가격이 적용되도록 돕습니다.

시작하려면 AWS 관리 계정에서 코드 샘플 을 사용하여 모델 구독을 자동화해 보세요.

리소스


저자 소개

원문 출처

AWS Machine Learning

내용 안내

원문 발행 및 권리는 출처에 있습니다.

기계 번역 · 원문을 참고하세요