

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Marketplace의 AMI 제품 요금
<a name="pricing-ami-products"></a>

AWS Marketplace에는 Amazon Machine Image(AMI) 제품에 대한 여러 요금 모델이 있습니다. 판매자 비공개 제안을 사용하는 경우 다년 및 사용자 지정 기간 계약에 사용할 수 있는 몇 가지 옵션이 있습니다. 다년 및 사용자 지정 기간 계약에 대한 자세한 내용은 [AWS Marketplace 제품에 대한 비공개 제안 준비](private-offers-overview.md) 및 [비공개 제안 할부 플랜](installment-plans.md) 단원을 참조하세요. 다음 섹션에서는 AMI 기반 제품의 요금 모델에 대한 정보를 제공합니다.

**참고**  
[에서 판매자로 등록 AWS Marketplace](seller-account-registering.md)에 설명된 대로 W-9 세금 신고서(미국 내 사업체인 경우) 또는 W-8 양식(EU 내 사업체인 경우)을 제공할 수 있어야 합니다.

**Topics**
+ [AMI 요금 모델](#pricing-models-for-ami-products)
+ [AWS 요금과 소프트웨어 요금](#aws-charges-vs-software-charges)
+ [AWS Marketplace Metering Service를 통한 AMI 제품에 대한 사용자 지정 측정 요금](custom-metering-pricing-ami-products.md)
+ [AWS Marketplace의 AMI 제품 계약 요금](ami-contracts.md)
+ [를 사용하여 AMI 기반 제품과 라이선스 연결 AWS License Manager](ami-license-manager-integration.md)

## AMI 요금 모델
<a name="pricing-models-for-ami-products"></a>

다음 표에서는 AMI 기반 제품의 요금 모델에 대한 일반 정보를 제공합니다.


|  요금 모델  |  설명  | 
| --- | --- | 
|  무료  | 고객은 추가 소프트웨어 요금 없이 Amazon Elastic Compute Cloud(Amazon EC2)가 지원하는 수만큼 인스턴스를 실행할 수 있습니다. 무료 평가판 및 연간 요금은 월별 요금과 결합할 수 없습니다.  | 
| 기존 보유 라이선스 사용(BYOL)  | AWS Marketplace는 소프트웨어의 사용에 대해 고객에게 요금을 부과하지 않지만, 고객은 제품을 활성화하기 위한 라이선스 키를 제공해야 합니다. 이 키는 AWS Marketplace 외부에서 구매합니다. 권한 부여 및 라이선스 집행과 모든 요금 및 청구 업무는 판매자가 처리합니다. | 
| 시간당 또는 시간당-연간 요금 |  **시간당** - 시간을 기준으로 소프트웨어 요금이 부과됩니다. 각 인스턴스 유형에 다른 요금을 책정할 수 있으며(필수 사항은 아님) 사용량은 가장 근접한 전체 시간으로 올림됩니다. **무료 평가판 포함 시간당** - 고객은 요금 부과 없이 정확하게 1개의 소프트웨어 인스턴스를 실행하도록 제한됩니다. 판매자가 5일에서 30일 사이로 기간을 정의합니다. 무료 평가판은 실행 중인 가장 비싼 인스턴스 유형에 적용되며, 인스턴스 1개 이외의 동시 사용은 시간당 요금으로 청구됩니다. 참고: 고객에게 매달 750시간의 무료 사용량이 제공되는 Amazon EC2용 AWS 프리 티어와 다른 모델입니다. **시간당 월별** - 시간당 요금과 월별 요금이 독립적으로 적용됩니다. 월 사용료는 사용량에 관계없이 매달 청구되며, 시간당 요금은 시간당 사용을 기준으로만 적용됩니다. **연간 시간당** - 고객은 인스턴스 유형 1개의 Amazon EC2 인스턴스 하나에 대해 연간 사용량을 선결제로 구매할 수 있습니다. 판매자는 각 인스턴스 유형에 대한 요금을 설정하며, 시간당 가격에 대한 순 절감을 제공할 수 있습니다. 구매한 연간 구독 수를 초과하는 고객 사용은 판매자가 해당 인스턴스 유형에 대해 설정한 시간당 요금으로 청구됩니다. **다년 및 사용자 지정 기간 포함 시간당** - 이 유형의 제안은 판매자 비공개 제안을 통해서만 사용할 수 있습니다. 판매자 비공개 제안을 사용하면 사용자 지정 계약 기간을 최대 3년까지 지정할 수 있습니다. 선결제를 지정하거나 유연한 결제 일정을 포함할 수 있습니다. 판매자가 각 인스턴스 유형의 요금을 설정합니다. 제안이 유연한 결제 일정을 포함하는 경우 인보이스 날짜, 결제 금액, 제안에 포함된 각 인스턴스 유형의 인스턴스 수도 설정합니다. 유연한 결제 일정을 포함하는 활성 판매자 비공개 제안의 경우 고객이 지정된 수의 인스턴스를 시작한 후 추가로 시작하는 추가 인스턴스는 판매자 비공개 제안에 지정된 시간당 요금이 부과됩니다. 다년 및 사용자 지정 기간 계약에 대한 자세한 내용은 [AWS Marketplace 제품에 대한 비공개 제안 준비](private-offers-overview.md) 및 [비공개 제안 할부 플랜](installment-plans.md) 단원을 참조하세요. **연간 시간당(무료 평가판 포함)** - 연간 옵션이 있는 시간당 모델과 동일합니다. 단, 이 모델에는 고객이 사용자가 결정한 일수에 대해 모든 인스턴스 유형 중 1개의 인스턴스를 무료로 실행할 수 있는 무료 평가판이 포함되어 있습니다. 연간 구독은 언제든지 구매할 수 있으며, 무료 평가판 구독과 결합됩니다. **시간당 연간** - 연간 시간당 요금 모델과 동일합니다. 고객은 인스턴스 유형 1개의 Amazon EC2 인스턴스 하나에 대해 연간 사용량을 선결제로 구매할 수 있습니다. 판매자는 각 인스턴스 유형에 대한 요금을 설정하며, 시간당 가격에 대한 순 절감을 제공할 수 있습니다. 그러나 절감 제공은 필수 사항이 아닙니다. 구매한 연간 구독 수를 초과하는 고객 사용은 판매자가 해당 인스턴스 유형에 대해 설정한 시간당 요금으로 청구됩니다. **시간당 포함 다년 및 사용자 지정 기간** - [AWS Marketplace 제품에 대한 비공개 제안 준비](private-offers-overview.md)을 통해서만 사용할 수 있습니다. 판매자 비공개 제안을 사용하면 최대 3년까지 사용자 지정 기간 계약을 지정할 수 있습니다. 고객에게 선결제를 요구하거나 유연한 결제 일정을 제공할 수 있습니다. 계약 기간 동안 각 인스턴스 유형의 요금과 추가로 시작되는 인스턴스에 대한 시간당 요금을 설정합니다. 유연한 결제 일정을 제공하는 경우 인보이스 날짜, 결제 금액, 제안에 포함된 각 인스턴스 유형의 인스턴스 수도 설정합니다. 유연한 결제 일정을 포함하는 활성 비공개 제안의 경우 고객이 지정된 수의 인스턴스를 시작한 후 추가로 시작하는 추가 인스턴스는 비공개 제안에 지정된 시간당 요금이 부과됩니다. 다년 및 사용자 지정 기간 계약에 대한 자세한 내용은 [AWS Marketplace 제품에 대한 비공개 제안 준비](private-offers-overview.md) 및 [비공개 제안 할부 플랜](installment-plans.md) 단원을 참조하세요.  무료 평가판 및 연간 요금은 월별 요금과 결합할 수 없습니다.   | 
| 월별 결제  |  **월별** - 고객이 실행하는 인스턴스의 수에 관계없이 고정된 월별 기준으로 소프트웨어의 요금을 지불합니다. 월별 요금은 가입 및 취소 시 비례 할당됩니다. 예: 한 달 중 하루를 구독한 고객에게는 한 달의 1/30에 대해 요금이 부과됩니다. **시간당 월별** - 시간당 요금과 월별 요금이 독립적으로 적용됩니다. 월 사용료는 사용량에 관계없이 매달 청구되며, 시간당 요금은 시간당 사용을 기준으로만 적용됩니다.  무료 평가판 및 연간 요금은 월별 요금과 결합할 수 없습니다.   | 
| 유료 사용 요금 |  사용자, 데이터, 대역폭 또는 호스트의 네 가지 사용량 범주 중 하나와 함께 판매자가 제공하는 가치에 해당하는 요금이 소프트웨어에 직접 부과됩니다. 제품에 대해 최대 24개의 차원을 정의할 수 있습니다. 모든 요금은 고객에 의해 시간당 발생합니다. 기존 AWS Marketplace 소프트웨어와 동일한 메커니즘을 사용하여 월별로 모든 사용을 계산하고 요금을 청구합니다. 사용 요금을 AWS Marketplace 측정 서비스라고도 합니다.  | 
|  계약 요금 모델  |  **계약 요금이 적용되는 AMI** - 구매자가 요금을 선결제하는 단일 AMI 제품 또는 AWS CloudFormation 스택이 포함된 단일 AMI.  | 

## AWS 요금과 소프트웨어 요금
<a name="aws-charges-vs-software-charges"></a>

Amazon Machine Image(AMI) 기반 상품의 요금은 다음과 같은 두 가지 범주로 나뉩니다.
+ **인프라 요금 세부 정보** - 모든 AMI 기반 제품은 사용하는 서비스와 인프라에 따라 관련 AWS 인프라 요금이 발생합니다. 이러한 요금과 수수료는 AWS에서 정의하고 제어하며, AWS 리전마다 다를 수 있습니다. 자세한 내용은 [Amazon EC2 요금](https://aws.amazon.com/ec2/pricing/)을 참조하세요.
+ **소프트웨어 요금 세부 정보** - 유료 제품의 경우 판매자가 소프트웨어 사용 요금을 정의합니다.

이러한 두 가지 제품 요금 범주는 구매자가 제품을 사용할 때 발생할 수 있는 잠재적 비용을 이해할 수 있도록 AWS Marketplace 세부 정보 페이지에 별도로 표시됩니다.

### AMI 시간당 제품의 무료 평가판
<a name="free-trial"></a>

AMI 시간당 제품은 선택적 무료 평가판 프로그램을 이용할 수 있습니다. 무료 평가판에서 고객은 제품에 대한 소프트웨어 요금 없이 최대 31일 동안 제품을 구독하고 인스턴스 하나를 사용할 수 있습니다. 해당하는 AWS 인프라 요금은 계속 적용됩니다. 무료 평가판 기간이 만료되면 자동으로 유료 구독으로 전환됩니다. 제공된 무료 사용량을 초과하여 사용할 경우 추가 사용량에 대한 요금이 고객에게 부과됩니다. 시간당 제품 무료 평가판을 제공하려면 평가 기간을 정의하고 [AWS Marketplace 판매자 운영](https://aws.amazon.com/marketplace/management/contact-us/) 팀에 알려야 합니다. 가능한 평가 기간은 5\$131입니다.

고객이 무료 평가판 제품을 구독하면 무료 평가판의 조건, 계산된 만료 날짜 및 구독 해지에 대한 세부 정보가 포함된 환영 이메일 메시지가 고객에게 전송됩니다. 미리 알림 이메일 메시지는 만료 날짜 3일 전에 전송됩니다.

AWS Marketplace에 무료 평가판 제품을 제공하는 경우, **환급 정책**에서 설명하는 특정 환급 정책에 동의하게 됩니다.

### 추가 리소스
<a name="ami-products-pricing-resources"></a>

AMI 제품 요금에 대한 자세한 내용은 다음 주제를 참조하세요.
+ [AWS Marketplace Metering Service를 통한 AMI 제품에 대한 사용자 지정 측정 요금](custom-metering-pricing-ami-products.md)
+ [AWS Marketplace의 AMI 제품 계약 요금](ami-contracts.md)

AMI 기반 제품의 청구, 측정 및 라이선싱 통합에 대한 자세한 내용은 다음 항목을 참조하세요.

AMI 제품 요금에 대해서는 다음 주제를 참조하세요.
+ [를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md)
+ [를 사용하여 AMI 기반 제품과 라이선스 연결 AWS License Manager](ami-license-manager-integration.md)

# AWS Marketplace Metering Service를 통한 AMI 제품에 대한 사용자 지정 측정 요금
<a name="custom-metering-pricing-ami-products"></a>

AWS Marketplace Metering Service를 통해 측정 레코드를 엔드포인트에 전송하여 사용량을 캡처하도록 소프트웨어를 수정할 수 있습니다. 사용량 범주를 선택하고 한 범주에서 최대 24개의 차원을 정의할 수 있습니다. 이러한 차원은 시간당 한 번 측정되고 집계되며 사용자가 정의한 요금제에 대해 부과됩니다. 판매자로서 해야 할 일은 사용할 차원을 결정하는 것입니다. AMI가 게시된 이후에는 이를 변경할 수 없습니다. 다음 섹션에서는 AWS Marketplace Metering Service에 대한 정보를 제공합니다.

**Topics**
+ [측정 서비스 개념](#metering-service-concepts)
+ [소프트웨어 요금 책정](#pricing-your-software)
+ [에 제품 추가 AWS Marketplace](#listing-your-product-on-aws-marketplace)
+ [측정 서비스를 사용하도록 소프트웨어 수정](#modifying-your-software-to-use-the-metering-service)
+ [공급업체 측정 태깅(선택 사항)](#ami-vendor-metered-tagging)
+ [사용자 지정 측정 구성](#configure-custom-metering)
+ [를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md)

## 측정 서비스 개념
<a name="metering-service-concepts"></a>

AWS Marketplace Metering Service를 사용하기 전에 다음과 같은 중요한 서비스 개념에 유의하세요.
+  **사용 범주** - 측정 서비스를 사용하여 요금이 책정되는 소프트웨어 제품은 고객에게 요금을 청구하는 적절한 방법을 결정하는 한 가지 사용 범주에 따라 분류됩니다. 사용 범주에는 다음이 포함되지만 이에 국한되지는 않습니다.
  + **사용자** - 단일 식별자로 연결되어 있는 정의된 권한 세트입니다. 이 범주는 고객의 사용자가 소프트웨어에 직접 연결하는 소프트웨어에 적합합니다(예: 고객 관계 관리 또는 비즈니스 인텔리전스 보고).
  + **호스트** – 모든 서버, 노드, 인스턴스, 엔드포인트 또는 기타 컴퓨팅 시스템의 일부입니다. 이 범주는 여러 고객 소유 인스턴스를 모니터링 또는 스캔하는 소프트웨어에 적합합니다(예: 성능 또는 보안 모니터링).
  + **데이터** – MB, GB 또는 TB로 측정된 스토리지 또는 정보입니다. 이 범주는 저장된 데이터를 관리하거나 데이터를 배치로 처리하는 소프트웨어에 적합합니다.
  + **대역폭** - Mbps 또는 Gbps 단위로 측정됩니다. 이 범주는 고객이 프로비저닝할 대역폭의 양을 지정할 수 있는 소프트웨어에 적합합니다.
  + **단위** - 측정 단위입니다. 다음에 설명된 예제를 참조하세요.
+  **사용량 단위** – 소프트웨어 제품의 특정 사용량 단위는 선택한 사용 범주에 해당합니다. 이 사용량 단위는 소프트웨어가 요금을 부과하는 단위를 설명합니다. 그러한 예는 다음과 같습니다.
  + **NodesHrs**(호스트 범주에 해당)
  + **UserHrs**(사용자 범주에 해당)
  + **GBStored**(데이터 범주에 해당)
+  **소비** - 측정 서비스를 사용하여 가격이 책정되는 소프트웨어 제품은 다음 세 가지 방법 중 하나로 사용량에 따른 요금을 부과합니다.
  + 프로비저닝됨 - 고객은 소프트웨어를 통해 사용할 특정 리소스 수(예: 사용자 수 또는 고정 대역폭 수)를 구성할 수 있습니다. 매시간 고객은 프로비저닝한 서비스에 대해 비용을 지불합니다.
  + 동시 - 소프트웨어를 통해 구분된 호스트 또는 사용자는 수에 상관없이 소프트웨어에 연결할 수 있습니다. 매시간 고객은 소프트웨어에 액세스한 호스트 또는 사용자 수를 기준으로 비용을 지불합니다.
  + 누적 - 고객은 소프트웨어를 통해 처리되거나 저장된 모든 양의 데이터를 사용할 수 있습니다. 매시간 고객은 집계된 양에 대해 비용을 지불합니다.
+  **요금** - 측정 서비스를 사용하여 요금이 책정되는 소프트웨어 제품은 단일 요금을 지정하거나 최대 24개의 차원을 정의하고 각 요금을 지정해야 합니다. 다음은 요금 옵션에 대한 자세한 내용입니다.
  + 단일 차원 - 가장 단순한 요금 옵션입니다. 고객은 크기 또는 볼륨에 관계없이 시간당 리소스 단위마다 단일 가격을 지불합니다(예: 시간당 사용자마다 0.014 USD 또는 시간당 호스트마다 0.070 USD).
  + 여러 차원 - 이 요금 옵션은 선택한 사용 범주가 여러 축에 따라 다를 때 적합합니다. 예를 들어, 호스트 모니터링의 경우 호스트 크기에 따라 다른 가격이 설정될 수 있습니다. 또는 사용자 기반 요금의 경우 사용자 유형(예: 관리자, 파워 유저 및 읽기 전용 사용자)에 따라 다른 가격이 설정될 수 있습니다.
+  **측정** - 모든 사용량은 시간당 1회 측정 이벤트로 기록됩니다. 사용자 소프트웨어는 적합한 크기 및 사용량을 AWS Marketplace 전송하도록 구성되어야 합니다.
  + 할당 - 선택 사항으로, 추적하는 속성별로 사용량을 할당량에 분배할 수 있습니다. 이러한 할당량은 구매자에게 태그로 표시됩니다. 태그를 통해 구매자는 태그에 따라 사용량으로 분할된 비용을 볼 수 있습니다. 예를 들어 사용자별로 요금을 부과하고 사용자에게 "Department" 속성이 있는 경우 키가 "Department"인 태그와 값마다 하나의 할당을 사용하여 사용량 할당을 생성할 수 있습니다. 이 접근 방식은 판매자가 보고하는 가격, 차원 또는 총 사용량을 변경하지 않습니다. 하지만 고객은 제품에 적합한 범주별로 비용을 볼 수 있습니다.

## 소프트웨어 요금 책정
<a name="pricing-your-software"></a>

AWS Marketplace 측정 서비스로 소프트웨어의 요금을 책정하는 경우 먼저 사용 범주 및 소비 방식을 결정해야 합니다. 이 서비스는 6가지 요금 시나리오를 지원합니다. 제품에 대해 이러한 시나리오 중 하나만 선택해야 합니다.
+ 프로비저닝된 사용자(시간당) 
+ 동시 사용자(시간당) 
+ 프로비저닝된 호스트(시간당) 
+ 동시 호스트(시간당) 
+ 프로비저닝된 대역폭(시간당) 
+ 누적 데이터(시간당) 

그런 다음 선택한 사용 범주에 대해 가격을 책정하는 방식을 결정해야 합니다.
+ 단일 가격 
+ 다중 차원(최대 24개) 

[에 제품 추가 AWS Marketplace](#listing-your-product-on-aws-marketplace)에는 차원 및 요금에 대한 고객 친화적 설명을 제공하는 방법이 설명되어 있습니다.

### 예: 비선형 요금이 있는 프로비저닝된 대역폭
<a name="example-provisioned-bandwidth-with-non-linear-pricing"></a>

네트워크 어플라이언스 소프트웨어를 제공하는 경우를 생각해 봅니다. 프로비저닝된 대역폭을 기준으로 요금을 청구하도록 선택합니다. 사용 범주의 경우 **대역폭**을 선택합니다. 대역폭에 따라 요금을 청구하는 것 외에도 구매자가 확장할 때 다른 가격으로 청구하려고 합니다. 대역폭 범주 내에 여러 차원을 정의할 수 있습니다. 25Mbps, 100Mbps 및 1Gbps에 대해 구별된 가격을 정의할 수 있습니다.

### 예: 여러 차원이 있는 동시 호스트
<a name="example-concurrent-hosts-with-multiple-dimensions"></a>

다른 Amazon EC2 인스턴스를 모니터링하는 소프트웨어를 제공하는 경우를 생각해 봅니다. 모니터링되는 호스트 수를 기준으로 요금을 청구하도록 선택합니다. 사용 범주의 경우 **호스트**를 선택합니다. 호스트에 따라 요금을 청구하는 것 외에도 대형 호스트를 모니터링하기 위한 추가 값을 청구하려고 합니다. 호스트 범주 내에 여러 차원을 사용할 수 있습니다. 마이크로, 스몰, 중간, 라지, x-라지, 2XL, 4XL, 8XL 인스턴스에 대해 구별된 가격을 정의할 수 있습니다. 소프트웨어는 각 특정 호스트를 정의된 차원 하나에 매핑할 책임이 있습니다. 소프트웨어는 사용 범주의 각 차원에 대해 별도의 측정 레코드(있는 경우)를 전송할 책임이 있습니다.

## 에 제품 추가 AWS Marketplace
<a name="listing-your-product-on-aws-marketplace"></a>

측정 서비스를 활용하려면가 나열 AWS Marketplace 할 새 제품을 생성해야 합니다. 제품이 이미에 있는 경우 AWS Marketplace현재 제품 외에 새 AWS Marketplace 측정 서비스 제품을 사용할 수 있는지 또는 현재 제품을 새 사용자가 사용할 수 있는 유일한 버전으로 교체할지 결정해야 합니다. 교체를 선택하면 새 구매자가 더 이상 사용할 수 AWS Marketplace 없도록 기존 제품이에서 제거됩니다. 기존 고객은 이전 제품과 인스턴스에 계속 액세스할 수 있지만 편의를 위해 새 제품으로 마이그레이션할 수 있습니다. 새 제품은 [측정 서비스를 사용하도록 소프트웨어 수정](#modifying-your-software-to-use-the-metering-service)에 설명된 대로 AWS Marketplace 측정 서비스의 사용을 측정해야 합니다.

AMI를 보유한 경우 표준 프로세스에 따라 셀프 서비스 도구를 사용하여 AMI를 공유하고 스캔합니다. 또한 관리 포털에서 사용 가능한 템플릿을 사용하여 제품 로드 양식을 작성하고 업로드하여 수집 프로세스를 시작합니다.

다음 정의를 사용하여 AWS Marketplace 측정 서비스에 대한 제품 로드 양식의 필드를 작성합니다. 제품 로드 양식에서 이러한 필드는 시간당 및 월별 요금 제품과 구분하기 위해 **유연한 소비 요금(FCP)**으로 레이블이 지정됩니다.
+  **제목** -에 이미 제품이 AWS Marketplace 있고와 동일한 제품을 추가하는 경우 AWS Marketplace Metering Service괄호 안에 FCP 범주와 차원을 포함하여 구분합니다(예: “PRODUCT TITLE (Data)”).
+  **요금 모델** - 드롭다운 목록에서 **사용량**을 선택합니다.
+  **FCP 범주** - **사용량** 요금 구성 요소가 있는 유료 제품에 대해 고객에게 요금이 청구되는 범주입니다. 드롭다운 목록에서 **사용자**, **호스트**, **데이터** 또는 **대역폭**을 선택합니다.
+  **FCP 단위** - **사용** 요금 구성 요소로 유료 제품에 대해 고객에게 요금이 청구되는 측정 단위입니다. 옵션은 선택한 FCP 범주에 따라 드롭다운 목록에 나타납니다. 다음 표에는 각 범주에 대한 유효 단위가 나열되어 있습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/marketplace/latest/userguide/custom-metering-pricing-ami-products.html)
+  **FCP 차원 이름** - `MeterUsage` 작업을 호출하여 측정 레코드를 전송할 때 사용되는 이름입니다. 이 이름은 결제 보고서에 공개됩니다. 하지만 외부에 공개되지는 않으므로 사용자에게 친숙한 이름일 필요는 없습니다. 이름은 15자를 초과할 수 없으며 영숫자 및 밑줄만 포함할 수 있습니다. 이름을 설정하고 제품을 공개한 후에는 변경할 수 없습니다. 이름을 변경하려면 새 AMI가 필요합니다.
+  **FCP 차원 설명** - 제품에 대한 차원을 설명하는 고객용 설명문입니다. 설명은 70자를 초과할 수 없으며 사용자에게 친숙해야 합니다. 설명의 예로는 시간당 관리자 수, 프로비저닝된 Mbps당 대역폭 등이 있습니다. 제품을 게시한 후 이 설명을 변경할 수 있습니다.
+  **FCP 요금** - 이 제품의 단위당 소프트웨어 요금입니다. 이 필드는 소수점 여덟 자리까지 지원합니다.

**참고:**  
시간당 및 연간 요금 필드를 작성할 필요가 없습니다.
무료 평가판 및 연간 요금은 호환되지 않습니다.
AMI, 클러스터 및 AWS 리소스 기능을 사용하는 제품은 AWS Marketplace 측정 서비스를 사용할 수 없습니다.
가격, 인스턴스 유형 또는 AWS 리전 변경 사항은 다른 AWS Marketplace 제품과 동일한 프로세스를 따릅니다.
AWS Marketplace 측정 서비스가 있는 제품은 시간당, 월별 또는 기존 보유 라이선스 사용(BYOL)과 같은 다른 요금 모델로 변환할 수 없습니다.
AWS Marketplace 에서는 사용 지침 또는 문서에 IAM 정책 정보를 추가할 것을 권장합니다.
총 24개의 FCP 차원을 포함할 수 있습니다. 차원을 생성하고 게시한 후에는 기존 차원을 수정할 수 없지만 새 차원을 추가할 수 있습니다(최대 24개).

궁금한 점은 [AWS Marketplace 판매자 작업](https://aws.amazon.com/marketplace/management/contact-us/) 팀에 문의하세요.

## 측정 서비스를 사용하도록 소프트웨어 수정
<a name="modifying-your-software-to-use-the-metering-service"></a>

고객 사용을 기록하고, 시간당 사용 보고서를 측정 서비스에 전송하고, 새 실패 모드를 처리하려면 소프트웨어를 수정해야 합니다. 소프트웨어는 요금과 관계없이 작동하지만, 소프트웨어에서 사용 범주, 소비 방식 및 차원에 대해 알고 있어야 합니다.

### 소비 측정
<a name="measuring-consumption"></a>

소프트웨어에서는 선택한 사용 범주의 양과 고객이 소비한 차원을 결정해야 합니다. 이 값은 매 시간 한 번 측정 서비스로 전송됩니다. 어떤 경우에도 소프트웨어에 시간당 기준으로 측정 서비스에 리소스 소비를 전송하기 위해 리소스 소비를 측정, 기록 및 읽을 수 있는 기능이 있다고 가정합니다.

프로비저닝된 소비의 경우 일반적으로 소프트웨어 구성에서 샘플링된 값으로 판독되지만, 매 시간 기록된 최대 구성 값일 수도 있습니다. 동시 소비의 경우 주기적 샘플 또는 매 시간 기록되는 최대 값일 수 있습니다. 누적 소비의 경우 매 시간 누적되는 값입니다.

여러 차원에 대한 요금의 경우 여러 값을 측정하여 차원마다 하나를 측정 서비스로 전송해야 합니다. 이렇게 하려면 AMI를 제공할 때 알려진 차원 집합으로 소프트웨어를 프로그래밍하거나 구성해야 합니다. 제품을 생성한 후에는 차원 집합을 변경할 수 없습니다.

각 요금 시나리오와 관련하여 다음 표에는 시간당 사용량을 측정하는 권장 방식이 설명되어 있습니다.


|  **시나리오**  |  **측정 방법**  | 
| --- | --- | 
|  프로비저닝된 사용자   |  현재 프로비저닝된 사용자 수입니다(샘플링됨). -또는-  최대 프로비저닝된 사용자 수입니다(해당 시간 표시).  | 
|  동시 사용자   |  현재 동시 사용자 수입니다(샘플링됨). -또는-  최대 동시 사용자 수입니다(해당 시간 표시). -또는-  구분된 사용자의 총 수입니다(해당 시간 표시).  | 
|  프로비저닝된 호스트   |  현재 프로비저닝된 호스트 수입니다(샘플링됨). -또는-  최대 프로비저닝된 호스트 수입니다(해당 시간 표시).  | 
|  동시 호스트   |  현재 동시 호스트 수입니다(샘플링됨). -또는-  최대 동시 호스트 수입니다(해당 시간 표시). -또는-  구분된 호스트의 총 수입니다(해당 시간 표시).  | 
|  프로비저닝된 대역폭   |  현재 프로비저닝된 대역폭 설정입니다(샘플링됨). -또는-  최대 프로비저닝된 대역폭입니다(해당 시간 표시).  | 
|  누적 데이터   |  현재 저장된 데이터의 GB입니다(샘플링됨). -또는-  저장된 데이터의 최대 GB입니다(해당 시간 표시). -또는-  해당 시간에 추가 또는 처리된 데이터의 총 GB입니다. -또는-  해당 시간에 처리된 데이터의 총 GB입니다.  | 

## 공급업체 측정 태깅(선택 사항)
<a name="ami-vendor-metered-tagging"></a>

공급업체 측정 태깅을 사용하면 독립 소프트웨어 개발 판매 회사(ISV)는 구매자에게 소프트웨어 사용에 대한 보다 세밀한 통찰력을 제공하고 구매자의 비용 할당을 도와줄 수 있습니다.

구매자의 소프트웨어 사용에 태그를 지정하려면 비용 할당 방법을 결정해야 합니다. 먼저 구매자에게 비용 할당에서 보고 싶은 것이 무엇인지 물어봅니다. 그 후 구매자 계정에 대해 추적하는 모든 속성에 사용량을 분할할 수 있습니다. 속성의 예로는 `Account ID`, `Business Unit`, `Cost Centers` 및 기타 제품 관련 메타데이터가 있습니다. 이러한 속성은 구매자에게 태그로 노출됩니다. 구매자는 태그를 사용하여 AWS 결제 콘솔([https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/))의 태그 값을 기준으로 사용량으로 분할된 비용을 볼 수 있습니다. 공급업체 측정 태깅은 판매자가 신고한 가격, 크기 또는 총 사용량을 변경하지 않습니다. 이를 통해 고객은 제품에 적합한 범주별로 비용을 볼 수 있습니다.

일반적으로 구매자는 AWS 계정하나로 제품을 구독합니다. 또한 구매자의 수많은 사용자가 동일한 제품 구독에 연결됩니다. `Account ID` 키가 있는 태그를 사용하여 사용량 할당을 생성한 다음, 각 사용자에게 사용량을 할당할 수 있습니다. 이 경우 구매자는 과금 정보 및 비용 관리 콘솔에서 `Account ID` 태그를 활성화하고 개별 사용자 사용량을 분석할 수 있습니다.

### 판매자 환경
<a name="ami-vendor-metered-tag-seller"></a>

판매자는 모든 리소스 사용량을 집계하는 대신 동일한 태그 세트를 사용하여 리소스 측정 기록을 집계할 수 있습니다. 예를 들어 판매자는 `UsageAllocations`의 여러 버킷을 포함하는 측정 기록을 구성할 수 있습니다. 각 버킷은 태그 세트의 `UsageQuantity`(예: `AccountId`, `BusinessUnit`)를 나타냅니다.

다음 다이어그램의 **리소스 1**은 고유한 `AccountId` 및 `BusinessUnit` 태그 세트가 있으며 **Metering Record(측정 기록)**에 단일 항목으로 표시됩니다.

**리소스 2**와 **리소스 3**은 동일한 `AccountId`, `2222`, `BusinessUnit` 및 `Operations` 태그를 갖고 있습니다. 따라서 두 리소스는 **측정 기록**의 단일 `UsageAllocations` 항목으로 결합됩니다.

![\[공급업체 측정 태그가 사용량 데이터를 결합하는 방법을 보여주는 다이어그램입니다. AccountIds와 BusinessUnits 서로 다른 세 개의 리소스(리소스 1, 2, 3)는 AWS Marketplace 측정 서비스로 전송되기 전에 AccountId와 BusinessUnit별로 그룹화된 UsageAllocations가 포함된 단일 측정 레코드로 통합됩니다.\]](http://docs.aws.amazon.com/ko_kr/marketplace/latest/userguide/images/seller-vendor-meter-tag.png)


판매자는 태그가 없는 리소스를 사용량 수량이 할당된 단일 `UsageAllocation`으로 결합하고 `UsageAllocations`의 항목 중 하나로 전송할 수도 있습니다.

다음과 같은 제한이 있습니다.
+ 태그 수 - 5
+ `UsageAllocations` 크기(카디널리티) - 2,500

다음 사항을 확인합니다.
+ 태그 키 및 값에 허용되는 문자 – a-zA-Z0-9\$1 -=.\$1:\$1/@
+ `UsageAllocation` 목록의 최대 태그 수 - 5
+ 두 `UsageAllocations`의 태그가 같으면(즉, 동일한 태그 키와 값의 조합) 안 됩니다. 같을 경우 둘 다 동일한 `UsageAllocation`을 사용해야 합니다.
+ `UsageAllocation`의 `AllocatedUsageQuantity` 합계는 총 사용량인 `UsageQuantity`와 같아야 합니다.

### 구매자 경험
<a name="ami-vendor-metered-tag-buyer"></a>

다음 표는 구매자가 `AccountId` 및 `BusinessUnit` 공급업체 태그를 활성화한 이후의 구매자 경험 예시를 보여줍니다.

이 예에서 구매자는 **비용 사용 보고서**에서 할당된 사용량을 볼 수 있습니다. 공급업체 측정 태그는 `“aws:marketplace:isv”` 접두사를 사용합니다. 구매자는 과금 정보 및 비용 관리의 **비용 할당 태그** 아래에 있는 **AWS생성 비용 할당 태그**에서 태그를 활성화할 수 있습니다.

**비용 사용 보고서**의 첫 번째 행과 마지막 행은 [판매자 환경](container-metering-meterusage.md#container-vendor-metered-tag-seller) 예제처럼 판매자가 측정 서비스에 보내는 내용과 관련이 있습니다.


**비용 사용 보고서(단순)**  

| ProductCode  | 구매자 | UsageDimension | UsageQuantity | `aws:marketplace:isv:AccountId ` | `aws:marketplace:isv:BusinessUnit` | 
| --- | --- | --- | --- | --- | --- | 
| xyz | 111122223333 | 네트워크: 검사한 크기(GB)당  | 70 | 2222 | 운영 | 
| xyz | 111122223333 | 네트워크: 검사한 크기(GB)당  | 30 | 3333 | Finance | 
| xyz | 111122223333 | 네트워크: 검사한 크기(GB)당  | 20 | 4444 | IT | 
| xyz | 111122223333 | 네트워크: 검사한 크기(GB)당  | 20 | 5555 | 마케팅 | 
| xyz | 111122223333 | 네트워크: 검사한 크기(GB)당  | 30 | 1111 | 마케팅 | 

코드 예제는 [사용량 할당 태그 지정을 사용하는 `MeterUsage`(선택 사항)](custom-metering-with-mp-metering-service.md#ami-meterusage-code-example) 섹션을 참조하세요.

## 사용자 지정 측정 구성
<a name="configure-custom-metering"></a>

AWS Marketplace Metering Service 작업에 대한 자세한 내용은 [를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md) 섹션을 참조하세요.

# 를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service
<a name="custom-metering-with-mp-metering-service"></a>

**참고**  
사용자 지정 측정 요금이 적용되는 AMI 기반 제품의 경우 소프트웨어는 Amazon EC2 인스턴스에 연결된 Amazon Elastic Compute Cloud에 대한 IAM 역할의 임시 AWS 자격 증명을 사용하여 [MeterUsage API](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_MeterUsage.html)를 호출해야 합니다. 장기 액세스 키 사용은 지원되지 않습니다.

AWS Marketplace Metering Service는 사용 범주별로 소프트웨어에 직접 요금을 부과하는 데 사용할 수 있는 요금 및 측정 기능입니다. 사용자, 데이터, 대역폭, 호스트, 단위의 다섯 가지 사용 범주가 있습니다. Amazon Machine Image(AMI) 기반, 컨테이너 기반 및 서비스형 소프트웨어(SaaS) 기반 제품에서 측정 서비스를 사용할 수 있습니다. 다음 섹션에서는 AWS Marketplace Metering Service를 사용하여 사용자 지정 측정을 구성하는 방법에 대한 자세한 정보를 제공합니다.

AWS Marketplace 측정 서비스는 여러 가지 새로운 요금 시나리오를 활성화합니다. 예를 들어, 소프트웨어에서 호스트를 모니터링하는 경우, 모니터링된 각 호스트에 대해 요금을 부과합니다. 호스트 크기에 따라 다른 요금을 가질 수 있으며 매시간 모니터링되는 동시 호스트 수에 대해 요금을 부과할 수 있습니다. 마찬가지로 소프트웨어가 조직 전체에서 많은 사용자를 허용하는 경우 사용자 수에 따라 요금을 부과할 수 있습니다. 시간마다 고객에게 프로비저닝된 사용자의 총 수에 대해 요금이 부과됩니다.

자세한 내용은 [https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/Welcome.html)를 참조하세요.

AMI 기반 제품의 AWS Marketplace Metering Service API를 사용자 지정 측정 요금과 통합하는 방법에 대한 자세한 내용은 *AWS Marketplace 판매자 워크숍*의 사용자 [지정 단위 랩에서 가격이 책정된 AMI 제품 나열](https://catalog.workshops.aws/mpseller/en-US/ami/list-ami-custom-units)을 참조하세요.

**Topics**
+ [요구 사항](#metering-service-requirements)
+ [AWS Marketplace 측정 서비스 호출](#call-aws-marketplace-metering-service)
+ [장애 처리](#important-information-about-failure-handling)
+ [제한 사항](#limitations)
+ [코드 예제](#ami-metering-code-example)

## 요구 사항
<a name="metering-service-requirements"></a>

측정 서비스를 사용하는 모든 AMI 기반 소프트웨어는 다음 요구 사항을 충족해야 합니다.
+ 소프트웨어는 Amazon Machine Image(AMI)를 AWS Marketplace 통해에서 시작해야 합니다.
+ 에 기존 제품이 있는 경우 새 AMI를 제출하고 새 제품을 생성하여이 기능을 활성화해야 AWS Marketplace합니다.
+ 모든 소프트웨어는 AWS Identity and Access Management (IAM) 역할로 프로비저닝해야 합니다. 최종 고객은 사용자가 소프트웨어를 통해 프로비저닝하는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 IAM 역할을 추가해야 합니다. 소프트웨어를 배포할 때 IAM 역할 사용은 선택 사항입니다 AWS Marketplace. AWS Marketplace 측정 서비스 소프트웨어를 배포할 때에는 필수입니다.
+ 사용자 소프트웨어는 몇 가지 방식으로 소비를 결정할 수 있어야 합니다.

## AWS Marketplace 측정 서비스 호출
<a name="call-aws-marketplace-metering-service"></a>

 소프트웨어에서는 시간별로 측정 서비스를 호출하고 해당 시간에 대한 소비 값을 기록해야 합니다.

 소프트웨어가 시작할 때 시작된 시간-분을 기록해야 합니다. 이를 *시작-분*이라고도 합니다. 시작-분에서 매 시간마다 소프트웨어는 해당 시간의 소비 값을 확인하고 측정 서비스를 호출해야 합니다. 이 값을 구하는 방법에 대한 자세한 내용은 [측정 서비스를 사용하도록 소프트웨어 수정](https://docs.aws.amazon.com/marketplace/latest/userguide/custom-metering-pricing-ami-products.html#modifying-your-software-to-use-the-metering-service)을 참조하세요.

 시작-분에서 매시간 설정 상태로 유지하려면 소프트웨어에서 다음 접근 방식 중 하나를 사용해야 합니다.
+  소프트웨어 내의 스레드 
+  인스턴스 또는 소프트웨어로 시작하는 데몬 프로세스 
+  애플리케이션을 시작하는 동안 구성되는 cron 작업 
**참고**  
 소프트웨어는 고객 인스턴스에서 구성된 IAM 역할을 사용하여 AWS Marketplace 측정 서비스를 호출하고 소비 차원 및 양을 지정해야 합니다.

소프트웨어는 SDK를 사용하여 다음 예제 구현과 유사한 AWS Marketplace 측정 서비스를 AWS 호출할 수 있습니다.

1. 인스턴스 프로파일을 사용하여 서비스 클라이언트를 생성합니다. 이렇게 하려면 EC2 인스턴스에 대해 구성된 역할이 필요합니다. 역할 자격 증명은 SDK에 의해 자동으로 새고 고쳐집니다.

1. 매 시간 소프트웨어 구성 및 상태를 읽고 해당 시간에 대한 소비 값을 결정합니다. 여기에는 차원당 값 수집이 포함될 수 있습니다.

1. 다음과 같은 파라미터를 사용하여 SDK 클라이언트에서 `meterUsage` 메서드를 호출합니다(사용이 있는 각 차원에 대해 추가적으로 호출).
   + `timestamp` - 기록되는 시간의 타임스탬프(UTC)입니다.
   + `productCode` - 소프트웨어에 할당된 제품 코드입니다.
   + `dimension` - 소프트웨어에 할당된 차원입니다.
   + `quantity` - 시간의 소비 값입니다.
   + `allocations` - (선택 사항) 추적하는 속성 전체에 걸쳐 사용량을 할당할 수 있습니다. 이러한 할당량을 합산하여 레코드의 총 소비량을 구해야 합니다. 구매자에게 이러한 태그는 결제 도구(예: AWS 결제 및 비용 관리 콘솔)에 잠재적 비용 할당 태그로 표시됩니다. 구매자는 이러한 태그를 사용하여 비용을 추적하려면 계정에서 태그를 활성화해야 합니다.

또한 소프트웨어는 리전 내 AWS Marketplace 측정 서비스 엔드포인트를 호출해야 합니다. `us-east-1`이 레코드를 `us-east-1` 엔드포인트로 전송하고 `us-west-2`가 레코드를 `us-west-2` 엔드포인트로 전송하도록 제품의 리전 엔드포인트를 올바르게 설정해야 합니다. 리전 내 호출을 수행하면 구매자에게 더 안정적인 경험을 제공하며, 관련되지 않은 리전의 가용성이 다른 리전에서 실행되는 소프트웨어에 영향을 주는 상황을 방지합니다.

서비스에 측정 레코드를 전송할 때 사용자의 리전에 있는 AWS Marketplace 측정 서비스에 연결해야 합니다. `getCurrentRegion()` 헬퍼 메서드를 사용하여 EC2 인스턴스가 실행 중인 리전을 결정한 다음 이 리전 정보를 `MeteringServiceClient` 생성자로 전달합니다. SDK 생성자 AWS 리전 에서를 지정하지 않으면 기본 `us-east-1` 리전이 사용됩니다. 애플리케이션에서 서비스에 대해 교차 리전 호출을 수행할 경우 해당 호출이 거부됩니다. 자세한 내용은 [애플리케이션의 현재 리전 확인](https://java.awsblog.com/post/Tx3GBOIEN1JJMQ5/Determining-an-Application-s-Current-Region) 및 [getCurrentRegion()](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/regions/Regions.html#getCurrentRegion())을 참조하세요.

## 장애 처리
<a name="important-information-about-failure-handling"></a>

제품은 사용량을 캡처하고 요금을 청구할 수 있도록 퍼블릭 인터넷 엔드포인트인 서비스에 측정 레코드를 전송해야 합니다. 고객이 측정 레코드를 전달되지 않도록 하는 방식으로 네트워크 설정을 수정할 수 있으므로, 제품은 장애 모드를 선택하여 이를 설명해야 합니다.

**참고**  
일부 측정 실패는에 연결할 때 일시적인 문제일 수 있습니다 AWS Marketplace Metering Service. AWS Marketplace 에서는 단기 중단 또는 네트워크 문제를 방지하기 위해 지수 백오프를 통해 최대 30분 동안 재시도를 구현할 것을 적극 권장합니다.

일반적으로 소프트웨어는 장애 시 열림(경고 메시지를 제공하지만 전체 기능은 유지) 또는 장애 시 닫힘(연결이 다시 설정될 때까지 애플리케이션의 모든 기능을 비활성화)을 수행할 수 있습니다. 장애 시 열림, 장애 시 닫힘 또는 애플리케이션에 고유한 사항을 선택할 수 있습니다. 2시간 이내의 측정 실패 후에는 장애 시 닫힘을 사용하지 않는 것이 좋습니다.

장애 시 부분적으로 열림의 예로, 소프트웨어에 대한 액세스를 계속 허용할 수 있지만 구매자가 소프트웨어 설정을 수정하는 것을 허용하지 않을 수 있습니다. 또는 구매자가 계속 소프트웨어에 액세스할 수 있지만 추가 사용자를 생성할 수 없습니다. 소프트웨어는 이 장애 모드를 정의하고 적용할 책임이 있습니다. 소프트웨어의 장애 모드에는 AMI를 제출할 시기가 포함되어야 하며, 나중에 변경할 수 없습니다.

## 제한 사항
<a name="limitations"></a>

 측정 서비스 활성화 소프트웨어를 설계 및 제출할 때 이 제한 사항을 고려하세요.
+ **고객에 대한 IAM 역할 및 인터넷 게이트웨이 요구 사항** - 고객은 인터넷 게이트웨이를 보유해야 하고 특정 권한을 가진 IAM 역할로 소프트웨어를 시작해야 합니다. 자세한 내용은 [AWS Marketplace 측정 및 권한 부여 API 권한](iam-user-policy-for-aws-marketplace-actions.md) 단원을 참조하세요. 두 가지 조건을 충족하지 못하면 소프트웨어에서 측정 서비스에 연결할 수 없습니다.
+  **기존 측정 서비스 제품에 새로운 사용 범주를 추가하거나 사용 범주를 변경할 수 없음** - 고객이 소프트웨어 제품을 구독하는 경우 이용 약관에 동의하는 것으로 간주됩니다. 측정 서비스를 통해 제품의 차원을 변경하려면 새 제품과 새 구독이 필요합니다.
+ **기존 측정 서비스 제품의 차원을 수정할 수 없음** - 고객이 소프트웨어 제품을 구독하는 경우 이용 약관에 동의하는 것으로 간주됩니다. 측정 서비스를 통해 제품의 차원을 변경하려면 새 제품과 새 구독이 필요합니다. 기존 제품에 새 차원을 최대 24개까지 추가할 수 *있습니다*.
+  **무료 평가판 및 연간 구독 없음** - 측정 서비스 제품은 시작 시 무료 평가판 및 연간 구독을 지원하지 않습니다.
+  **다중 인스턴스 또는 클러스터 기반 배포 고려 사항** - 일부 소프트웨어는 다중 인스턴스 배포의 일환으로 배포됩니다. 소프트웨어 설계 시 사용량 측정 방식 및 위치, 측정 기록을 내보내는 위치를 고려하세요.

## 코드 예제
<a name="ami-metering-code-example"></a>

다음 코드 예제는 AMI 제품을 제품 게시 및 유지 관리에 필요한 AWS Marketplace API와 통합하는 데 도움이 되도록 제공됩니다.

### 사용량 할당 태그 지정을 사용하는 `MeterUsage`(선택 사항)
<a name="ami-meterusage-code-example"></a>

다음 코드 예제는 소비 요금 모델이 적용되는 AMI 제품과 관련이 있습니다. Python 예제에서는 적절한 사용량 할당 태그가 달린 측정 레코드를 AWS Marketplace 에 전송하여 고객에게 사용한 만큼만 지불 요금을 청구합니다.

```
# NOTE: Your application will need to aggregate usage for the 
#       customer for the hour and set the quantity as seen below. 
# AWS Marketplace can only accept records for up to an hour in the past. 
#
# productCode is supplied after the AWS Marketplace Ops team has 
# published the product to limited

# Import AWS Python SDK
import boto3
import time

usageRecord = [
    { 
        "AllocatedUsageQuantity": 2, 
        "Tags": 
            [ 
                { "Key": "BusinessUnit", "Value": "IT" },
                { "Key": "AccountId", "Value": "123456789" },
            ]

    },
    { 
        "AllocatedUsageQuantity": 1, 
        "Tags": 
            [ 
                { "Key": "BusinessUnit", "Value": "Finance" },
                { "Key": "AccountId", "Value": "987654321" },
            ]

    }
]

marketplaceClient = boto3.client("meteringmarketplace")

response = marketplaceClient.meter_usage(
    ProductCode="testProduct",
    Timestamp=int(time.time()),
    UsageDimension="Dimension1",
    UsageQuantity=3,
    DryRun=False,
    UsageAllocations=usageRecord 
)
```

`MeterUsage`에 대한 자세한 내용은 **AWS Marketplace 측정 서비스 API 참조의 [MeterUsage](https://docs.aws.amazon.com/marketplacemetering/latest/APIReference/API_MeterUsage.html)를 참조하세요.

### 응답의 예
<a name="ami-meterusage-code-response"></a>

```
{ "MeteringRecordId": "string" }
```

# AWS Marketplace의 AMI 제품 계약 요금
<a name="ami-contracts"></a>

Amazon Machine Image(AMI) 기반 제품의 계약 요금은 구매자가 AMI 제품 하나 또는 AWS CloudFormation 스택이 포함된 AMI 하나의 요금을 선결제하는 것을 의미합니다. 계약 요금이 적용되는 AMI 기반 제품의 경우 AWS Marketplace는 사용자와 고객 간의 계약을 기반으로 정의한 선결제 또는 결제 일정에 따라 고객에게 요금을 청구합니다. 그 이후 고객에게 해당 리소스를 사용할 권한이 부여됩니다. 이 주제에서는 계약 요금에 대한 자세한 정보를 제공합니다.

요금을 설정하려면 고객에게 제공하는 하나 이상의 계약 기간을 선택합니다. 각 계약 기간에 다른 요금을 입력할 수 있습니다. 1개월, 12개월, 24개월, 36개월 중에 선택할 수 있습니다. 비공개 제안의 경우 사용자 지정 기간을 월 단위로(최대 60개월) 지정할 수 있습니다.

**참고**  
계약 요금이 적용되는 AMI 제품에는 무료 평가판을 사용할 수 없습니다.

제품 요금을 가장 잘 설명하는 범주를 선택합니다. 요금 범주는 AWS Marketplace 웹 사이트에서 고객에게 표시됩니다. **대역폭**(GB/s, MB/s), **데이터**(GB, MB, TB), **호스트**, **요청**, **티어** 또는 **사용자** 중에서 선택할 수 있습니다. 미리 정의된 범주 중 요구 사항에 적합한 것이 없는 경우 더 일반적인 **단위** 범주를 선택할 수 있습니다.

이 제안에는 최대 24개 차원을 추가할 수 있습니다. 각 차원에는 다음 데이터가 필요합니다.
+ **계약 범주** - 사용량 기반 요금이 없는 계약 제품의 경우 계약의 차원 범주와 가장 유사한 범주를 선택하거나, 계약의 차원 단위와 유사한 값이 없으면 **단위**를 선택하면 됩니다.
+ **계약 단위** - 선택한 범주에 따라 차원과 가장 유사한 단위의 사용 가능한 값 중에서 하나를 선택합니다.
+ **계약 차원 복수 구매 허용** - 이 필드는 제안이 계층별 요금 제안인지 아니면 비계층 제안인지 나타내는 데 사용됩니다.

  계층형 제안 - 구매자가 제안에 제공된 차원 중에서 하나만 구독할 수 있습니다. 계층형 제안의 차원은 수량이라는 개념이 없습니다. 특정 차원이 포함된 계약을 체결한다는 것은 본질적으로 구매자가 해당 차원에 지정된 특정 기능을 선택했다는 뜻입니다.

  비계층형 제안 - 고객이 차원을 2개 이상 조달하고 각 차원의 여러 단위를 조달할 수 있도록 계약서에 허용합니다.

  이 필드에 값을 **true로 설정하면 해당 제안은 비계층형 제안이라는 뜻입니다. 이 필드에 값을 **false로 설정하면 해당 제안은 계층형 제안이라는 뜻입니다.

제품 로드 양식(PLF)을 사용하여 AMI 제품에 대한 계약을 생성할 때, 요금 차원에 대한 다음 필드를 정의해야 합니다.
+  **계약 DimensionX API 이름** - 구매자의 AWS License Manager 계정에서 생성된 라이선스에 표시되어야 하는 이름입니다. 이 이름은 `Checkoutlicense` API 직접 호출에서 `Entitlement`의 `Name` 값으로도 사용됩니다.
+  **계약 DimensionX 표시 이름** - AWS Marketplace 웹 사이트의 제품 세부 정보 페이자와 조달 페이지에 표시되는 차원의 고객용 이름입니다. 사용자에게 친숙한 이름을 지정합니다. 이름의 최대 길이는 24자입니다. 목록이 공개된 후에는 `Name` 값을 변경할 수 없습니다.
+  **계약 DimensionX 설명** - 특정 차원이 제공하는 기능과 같이 제품의 차원에 대한 추가 정보를 제공하는 차원의 고객용 설명입니다. 설명의 최대 길이는 70자입니다.
+  **계약 차원X 수량** - 제품 계약을 수정하는 경우 비례 배분을 계산하는 데 사용됩니다. 모든 계약 제안에서 이 필드의 값을 1로 설정해야 합니다. 편집하면 안 됩니다.
+  **계약 차원X **1개월 요율**** — 이 차원을 기준으로 1개월간의 자격에 대해 부과되는 계약 요율입니다. 비계층형 제안의 경우 조달되는 차원 1단위마다 이 요율로 부과됩니다. 이 필드는 소수점 세 자리를 지원합니다.
+  **계약 DimensionX **12개월 요율**** - 이 차원에 대한 권한을 12개월 동안 부여할 때 부과되는 계약 요율입니다. 비계층형 제안의 경우 조달되는 차원 1단위마다 이 요율로 부과됩니다. 이 필드는 소수점 세 자리를 지원합니다.
+  **계약 DimensionX **24개월 요율**** - 이 차원에 대한 권한을 24개월 동안 부여할 때 부과되는 계약 요율입니다. 비계층형 제안의 경우 조달되는 차원 1단위마다 이 요율로 부과됩니다. 이 필드는 소수점 세 자리를 지원합니다.
+  **계약 DimensionX **36개월 요율**** - 이 차원에 대한 권한을 36개월 동안 부여할 때 부과되는 계약 요율입니다. 비계층형 제안의 경우 조달되는 차원 1단위마다 이 요율로 부과됩니다. 이 필드는 소수점 세 자리를 지원합니다.


**예: 데이터 스토리지 애플리케이션**  

|   | 1개월 요금 | 12개월 요금  | 24개월 요금  | 36개월 요금  | 
| --- | --- | --- | --- | --- | 
| 암호화되지 않은 데이터(GB)  |  1.50 USD/GB  |  16.00 USD/GB  |  30.00 USD/GB  |  GB당 60.00 USD  | 
| 암호화된 데이터(GB)  |  1.55 USD/GB  |  16.60 USD/GB  |  31.20 USD/GB  |  GB당 61.20 USD  | 


**예제: 로그 모니터링 제품**  

|   | 1개월 요금 | 12개월 요금  | 24개월 요금 | 36개월 요금 | 
| --- | --- | --- | --- | --- | 
| 기본(10개의 호스트 모니터링, 5개의 컨테이너 모니터링)  |  100 USD  |  1,000 USD  | 2,000 USD  | 4,000 USD | 
| 스탠다드(20개의 호스트 모니터링, 10개의 컨테이너 모니터링)  |  200 USD  |  2,000 USD  | 4,000 USD  | 8,000 USD | 
| 프로(40개의 호스트 모니터링, 20개의 컨테이너 모니터링)  |  400 USD  |  4,000 USD  | 8,000 USD  | 16,000 USD | 
| 시간당 추가 호스트 모니터링  | 10 USD  | 100 USD  |  200 USD | 400 USD | 
| 시간당 추가 컨테이너 모니터링  | 10 USD  | 100 USD  |  200 USD | 400 USD | 

**참고**  
요금은 1개월, 12개월, 24개월, 36개월 기간일 수 있습니다. 제품에 대해 이러한 옵션을 하나 이상 제공하도록 선택할 수 있습니다. 기간은 각 차원에 대해 동일해야 합니다.  

**Example**  
예를 들어 `ReadOnlyUsers` 및 `AdminUsers` 차원이 있는 경우 ReadOnlyUsers에 대한 연간 가격을 제공하면 `AdminUsers`에 대해서도 연간 가격을 제공해야 합니다.

## 자동 갱신
<a name="ami-contracts-automatic-renewals"></a>

 고객은 AMI 계약을 사용하여 AWS Marketplace를 통해 제품을 구매할 때 계약 조건의 자동 갱신에 동의할 수 있습니다. 고객은 매달, 1년마다, 2년마다 또는 3년마다 권한 부여에 대한 요금을 계속 지불합니다.

고객은 언제든지 갱신 설정을 변경할 수 있습니다. 자세한 내용은 **AWS Marketplace 구매자 안내서의 [기존 계약 수정](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-ami-contracts.html#modify-existing-contract)을 참조하세요.

# 를 사용하여 AMI 기반 제품과 라이선스 연결 AWS License Manager
<a name="ami-license-manager-integration"></a>

계약 요금이 적용되는 Amazon Machine Image(AMI) 기반 제품의 경우 AWS License Manager를 사용하여 라이선스를 제품과 연결할 수 있습니다. AWS License Manager 는 애플리케이션이 고객이 구매한 라이선스(권한이라고도 함)를 추적하고 업데이트할 수 있는 라이선스 관리 도구입니다. 통합이 완료되면 제품 목록을 AWS Marketplace에 게시할 수 있습니다. 다음 섹션에서는 AWS License Manager 를 사용하여 라이선스를 AMI 기반 제품과 연결하는 방법에 대한 자세한 정보를 제공합니다.

에 대한 자세한 내용은 [AWS License Manager 사용 설명서](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager.html) 및 *AWS CLI 명령* AWS License Manager참조의 [AWS License Manager](https://docs.aws.amazon.com/cli/latest/reference/license-manager/index.html) 섹션을 참조하세요.

AMI 기반 제품과 계약 요금 AWS License Manager 의 통합에 대한 자세한 내용은 *AWS Marketplace 판매자 워크숍*의 [선결제 랩에서 가격이 책정된 AMI 제품 나열](https://catalog.workshops.aws/mpseller/en-US/ami/list-ami-upfront-payment)을 참조하세요.

**참고**  
계약이 만료된 후에는 고객이 새 AMI 인스턴스를 시작할 수 없습니다. 하지만 계약 기간에는 인스턴스를 원하는 만큼 시작할 수 있습니다. 이러한 라이선스는 노드 잠금되거나 특정 인스턴스에 묶여 있지 않습니다.
**비공개 제안 생성** - 판매자는 AWS Marketplace Management Portal의 비공개 제안 생성 도구를 사용하여 제품에 대한 비공개 제안을 생성할 수 있습니다.
**보고** - AWS Marketplace Management Portal의 **보고서** 섹션에서 Amazon S3 버킷을 설정하여 데이터 피드를 설정할 수 있습니다. 자세한 내용은 [의 판매자 보고서, 데이터 피드 및 대시보드 AWS Marketplace](reports-and-data-feed.md) 단원을 참조하십시오.

**Topics**
+ [라이선스 모델](#license-models)
+ [통합 워크플로](#LM-workflow)
+ [License Manager 통합 사전 조건](#LM-prereqs)
+ [AMI 기반 제품을와 통합 AWS License Manager](#integrate-with-LM)
+ [라이선스 갱신 및 업그레이드](#lic-renew-upgrade)

## 라이선스 모델
<a name="license-models"></a>

AWS Marketplace 와의 통합은 두 가지 라이선스 모델을 AWS License Manager 지원합니다.
+ [구성 가능한 라이선스 모델](#config-lic-model)
+ [계층형 라이선스 모델](#tiered-lic-model)

### 구성 가능한 라이선스 모델
<a name="config-lic-model"></a>

구성 가능한 라이선스 모델(정량화 가능한 라이선스 모델이라고도 함)은 구매자가 라이선스를 조달한 후 구매자에게 특정 수량의 리소스를 부여합니다.

판매자는 요금 차원과 단가를 설정합니다. 그러면 구매자는 구매하려는 리소스 수량을 선택할 수 있습니다.

**Example 요금 차원 및 단가 예시**  
판매자는 요금 차원(예: 데이터 백업) 및 단가(예: 30 USD/단위)를 설정할 수 있습니다.  
구매자는 5, 10 또는 20단위를 구매하기로 선택할 수 있습니다.  
판매자의 제품은 사용량을 추적하고 측정하여 소비된 리소스 양을 측정합니다.

구성 모델의 경우 다음 두 가지 방법 중 하나로 권한이 계산됩니다.
+ [드로다운 라이선스](#drawndown-lic)
+ [플로팅 라이선스](#floating-lic) 

#### 드로다운 라이선스
<a name="drawndown-lic"></a>

 라이선스를 사용한 만큼 허용된 라이선스 수량 풀에서 차감됩니다. 해당 권한은 영구적으로 체크아웃되며 라이선스 풀로 반환할 수 없습니다.

**Example 제한된 양의 데이터 처리 예시**  
한 사용자에게 500GB의 데이터를 처리할 권한이 있습니다. 사용자가 데이터를 계속 처리하면 500GB 라이센스가 모두 소진될 때까지 500GB 풀에서 수량이 차감됩니다.

드로다운 라이선스의 경우 `CheckoutLicense` API 작업을 사용하여 소비된 라이선스 단위를 체크아웃할 수 있습니다.

**Example 연간 여러 단위에 대해 S3로 백업한 예시**  
Amazon Simple Storage Service에 1년 동안 데이터를 최대 1,024단위까지 백업할 수 있는 스토리지 제품을 보유하고 있습니다. Amazon EC2 인스턴스를 여러 개 사용하여 애플리케이션을 시작할 수 있습니다. 애플리케이션에는 데이터를 추적하고 집계하는 메커니즘이 있습니다. 소프트웨어는 백업이 발생할 때마다 또는 고정된 간격으로 제품 ID로 `CheckoutLicense` API 작업을 호출하여 소비량을 업데이트합니다.  
이 예시에서는 소프트웨어가 `CheckoutLicense`를 호출하여 데이터 10단위를 체크아웃합니다. 총 용량이 고객이 구매한 백업 한도에 도달하면 API 직접 호출이 실패합니다.

**요청**

```
linux-machine ~]$ aws license-manager checkout-license\
--product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \
--checkout-type "PERPETUAL" \
--key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \
--entitlements "Name=DataConsumption, Value=l0, Unit=Count" \
--client-token "AKIAIOSFODNN7EXAMPLE"
```

**응답**

```
{
  "CheckoutType": "PERPETUAL",
  "EntitlementsAllowed": [
    {      
      "Name": "DataConsumption", 
      "Count": 10,
      "Units": "Count",
      "Value": "Enabled"
    }
},
  "Expiration":    "2021-04-22Tl9:02: 36",
  "IssuedAt": "2021-04-22Tl8:02:36",
  "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...",
  "LicenseConsumptionToken":  "AKIAIOSFODNN7EXAMPLE"
}
```

#### 플로팅 라이선스
<a name="floating-lic"></a>

 라이선스가 사용 후 허용된 라이선스 수량 풀로 반환됩니다.

**Example 고정된 상한의 사용자 수 예시**  
사용자는 애플리케이션에서 동시 사용자 500명을 이용할 수 있습니다. 사용자가 로그인하고 로그아웃하면 사용자가 차감된 후 사용자 500명 풀로 반환됩니다. 하지만 고정된 상한은 동시 사용자 500명이기 때문에 애플리케이션이 풀에서 500명을 초과하는 사용자를 차감할 수 없습니다.

플로팅 라이선스의 경우 `CheckInLicense` API 작업을 사용하여 라이선스 단위를 권한 풀에 반환할 수 있습니다.

**Example 1년간 동시 사용자 수 예시**  
제품 요금은 동시 사용자 수를 기준으로 책정됩니다. 고객이 1년간 사용자 10명 라이선스를 구매합니다. 고객이 AWS Identity and Access Management (IAM) 권한을 제공하여 소프트웨어를 시작합니다. 사용자가 로그인하면 애플리케이션이 `CheckoutLicense` API 작업을 호출하여 수량을 1만큼 줄입니다. 사용자가 로그아웃하면 애플리케이션이 `CheckInLicense` API 작업을 호출하여 해당 라이선스를 풀에 반환합니다. `CheckInLicense`를 호출하지 않으면 1시간 후에 라이선스 단위가 자동으로 체크인됩니다.

**참고**  
다음 요청에서 `key-fingerprint`는 자리 표시자 값이 아니라 모든 라이선스를 게시하는 데 사용되는 fingerprint의 실제 값입니다.

**요청**

```
linux-machine ~]$ aws license-manager checkout-license\
--product-sku "2205b290-19e6-4c76-9eea-377d6bf7la47" \
--checkout-type "PROVISIONAL" \
--key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \
--entitlements "Name=ReadOnlyUSers, Value=l0, Unit=Count" \
--client-token "AKIAIOSFODNN7EXAMPLE"
```

**응답**

```
{
  "CheckoutType": "PROVISIONAL",
  "EntitlementsAllowed": [
    {
      "Name": "ReadOnlyUsers", 
      "Count": 10,
      "Units": "Count",
      "Value": "Enabled"
    }
},
  "Expiration": "2021-04-22Tl9:02: 36",
  "IssuedAt": "2021-04-22Tl8:02:36",
  "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...",
  "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE"
}
```

### 계층형 라이선스 모델
<a name="tiered-lic-model"></a>

계층형 라이선스 모델은 구매자가 라이선스를 조달한 후 특정 수준 또는 계층의 애플리케이션 기능을 이용할 수 있는 권한을 구매자에게 부여합니다.

판매자가 제품 계층(예: 기본, 중급, 프리미엄)을 생성합니다. 그 후 구매자가 사전 정의된 계층 중 하나를 선택합니다.

애플리케이션은 애플리케이션 사용량을 추적하거나 측정할 필요가 없습니다.

계층형 라이선스 모델의 경우 권한은 계산되지 않고, 대신 고객이 조달한 서비스 계층을 나타냅니다.

기능을 번들로 제공하려는 경우 계층형 라이선스 모델을 사용하는 것이 좋습니다.

**Example 기본, 중급 및 프리미엄 계층의 예시**  
고객은 세 가지 소프트웨어 티어인 기본, 중급 또는 프리미엄 중 하나를 계약할 수 있습니다. 티어마다 자체 요금이 책정되어 있습니다. 소프트웨어는 `CheckoutLicense` API 작업을 간접적으로 호출하고 가능한 모든 등급을 요청에서 지정하여 고객이 가입한 등급을 식별할 수 있습니다.  
요청 응답에는 고객이 구매한 계층에 해당하는 권한이 포함됩니다. 소프트웨어는 이 정보를 기반으로 적절한 고객 경험을 프로비저닝할 수 있습니다.

#### 요청
<a name="tiered-request"></a>

```
linux-machine  ~]$ aws  license-manager   checkout-license\
--product-sku  "2205b290-19e6-4c76-9eea-377d6bf7la47"  \
--checkout-type  "PROVISIONAL"  \
--key-fingerprint  "aws:294406891311:AWS/Marketplace:issuer-fingerprint" \
--entitlements  "Name=BasicTier,  Unit=None"   "Name=IntermediateTier,  Unit=None"	\ "Name=PremiumTier, Unit=None"
```

#### 응답
<a name="tiered-response"></a>

```
{ 
  "CheckoutType": "PROVISIONAL",
  "EntitlementsAllowed": [
    {
      "Name": "IntermediateTier", 
      "Units": "None"
    }
},
  "Expiration": "2021-04-22Tl9:02:36",
  "IssuedAt": "2021-04-22Tl8:02:36",
  "LicenseArn": "arn:aws:license-manager::294406891311:license:l-16bf01b...",
  "LicenseConsumptionToken": "AKIAIOSFODNN7EXAMPLE"
}
```

## 통합 워크플로
<a name="LM-workflow"></a>

다음 단계는 AMI 제품을 AWS License Manager와 통합하는 워크플로를 보여줍니다.

1. 판매자는 AWS License Manager 통합이 포함된 제품을 생성합니다.

1. 판매자가 제품을 나열합니다 AWS Marketplace.

1. 구매자가에서 제품을 찾아 AWS Marketplace 구매합니다.

1. 라이선스가 구매자의 AWS 계정에 전송됩니다.

1. 구매자가 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, Amazon Elastic Container Service(Amazon ECS) 작업 또는 Amazon Elastic Kubernetes Service(Amazon EKS) 포드 소프트웨어를 시작하여 소프트웨어를 사용하고, 고객은 IAM 역할을 사용하여 배포합니다.

1. 소프트웨어는 구매자 AWS License Manager 계정의 라이선스를 읽고, 구매한 권한을 검색하고, 그에 따라 기능을 프로비저닝합니다.
**참고**  
License Manager는 추적 또는 업데이트를 수행하지 않습니다. 추적 또는 업데이트는 판매자의 애플리케이션에서 수행됩니다.

## License Manager 통합 사전 조건
<a name="LM-prereqs"></a>

제품을 게시하기 전에 다음을 수행해야 합니다.

1. 에서 새 AMI 제품을 AWS Marketplace Management Portal생성하고 해당 제품 코드를 기록해 둡니다.

1. 필요한 가격 정보와 함께 제품 로드 양식(PLF)을 작성하고, AWS에 반환하여 처리합니다.

1. `CheckoutLicense`, `ExtendLicenseConsumption` 및 `CheckInLicense`를 호출하는 데 필요한 IAM 권한이 있는 애플리케이션을 실행하는 작업 또는 포드에 IAM 역할을 사용합니다.

   필요한 IAM 권한은 다음 IAM 정책에 자세히 설명되어 있습니다.

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Sid":"VisualEditorO",
            "Effect":"Allow",
            "Action":[
               "license-manager:CheckoutLicense",
               "license-manager:GetLicense",
               "license-manager:CheckInLicense",
               "license-manager:ExtendLicenseConsumption",
               "license-manager:ListReceivedLicenses"
            ],
            "Resource":"*"
         }
      ]
   }
   ```

------

1. 정의하는 모든 요금 차원에 대한 레코드를 사용하여 `RegisterUsage` API 작업 호출을 테스트합니다.

## AMI 기반 제품을와 통합 AWS License Manager
<a name="integrate-with-LM"></a>

[AWS License Manager](https://docs.aws.amazon.com/license-manager/latest/APIReference/Welcome.html) API를 사용하여 AMI 기반 제품을 License Manager와 통합할 수 있습니다. AWS Marketplace AMI 기반 제품을 사용하여 Amazon EC2 인스턴스를 시작합니다.

**참고**  
다음 절차를 수행하려면 먼저 [License Manager 통합 사전 조건](#LM-prereqs)을 완료해야 합니다.

**AMI 기반 제품을 License Manager와 통합하는 방법**

1. [License Manager에서 테스트 라이선스 생성](#creating-test-license)의 절차를 완료합니다. License Manager에서 통합을 테스트하는 데 사용할 테스트 라이선스를 생성해야 합니다.

1. 1단계에서 얻은 라이선스 Amazon 리소스 이름(ARN)을 사용하여 [GetLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_GetLicense.html) API 작업을 실행합니다. 나중에 사용할 수 있도록 `GetLicense` 응답의 `KeyFingerprint` 속성 값을 기록해 둡니다.

1. 최신 퍼블릭 AWS SDK를 다운로드하여 애플리케이션에 포함합니다.

1. 구매자가 애플리케이션용 라이선스를 사용할 자격이 있는지 확인하려면 [CheckoutLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CheckoutLicense.html) API 작업을 실행합니다. 1단계에서 얻은 테스트 라이선스의 자격 세부 정보와 key fingerprint를 사용합니다.

   라이선스에 대한 권한이 없거나 최대 권한 수를 초과한 경우 `CheckoutLicense` API 작업이 `NoEntitlementsAllowedException`을 반환합니다. 권한이 유효하거나 사용 가능한 경우 `CheckoutLicense` 작업은 요청된 권한 및 해당 값이 포함된 성공 응답을 반환합니다.

1. (플로팅 권한에만 필요) `CheckoutLicense` 응답에서 받은 `LicenseConsumptionToken`을 사용하여 [CheckInLicense](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CheckInLicense.html) API 작업을 실행합니다. 이 작업은 이전에 체크아웃한 권한을 사용 가능한 권한 풀로 해제합니다.

1. 1단계에서 생성한 테스트 라이선스로 License Manager 통합을 성공적으로 확인한 후에는 코드의 key fingerprint를 `aws:294406891311:AWS/Marketplace:issuer-fingerprint`로 업데이트합니다. 이제 AWS Marketplace에서 발급한 라이선스로 작업할 수 있습니다.

AMI 제품에 애플리케이션을 빌드하는 릴리스 프로세스를 수행한 다음 제품 게시 프로세스에 AWS Marketplace 따라에 제품을 제출합니다.

### License Manager에서 테스트 라이선스 생성
<a name="creating-test-license"></a>

 AWS Command Line Interface (AWS CLI) 버전 2를 사용하여에서 테스트 라이선스를 생성합니다 AWS License Manager. 이 테스트 라이선스는 AWS License Manager 통합 확인 및 테스트에만 사용됩니다. 테스트가 완료된 후에는 테스트 라이선스를 삭제해도 됩니다. 실제 라이선스는 AWS Marketplace 에서 다른 key fingerprint를 사용하여 생성됩니다.

AWS Marketplace 는에서 두 가지 유형의 권한을 지원합니다 AWS License Manager. 하지만 한 제품에 대해 한 가지 유형만 활성화할 수 있습니다. 테스트 라이선스를 포함하여 라이선스를 생성할 때 다음 자격 유형 중 하나를 지정해야 합니다.

**계층형 권한** - 계층형 라이선스 모델은 고객에게 특정 애플리케이션 기능에 대한 권한을 부여합니다. 고객은 구매하려는 단위의 수량을 정의할 수 없습니다. 하지만 사전 정의된 패키지 또는 계층을 하나 선택할 수 있습니다. 고객은 나중에 계약을 수정하여 다른 계층을 구독할 수 있습니다.

**구성 가능한 권한** - 구성 가능한 라이선스 모델은 고객이 라이선스를 구매할 때 특정 수량의 리소스에 대한 권한을 부여합니다. 고객은 구독 프로세스에서 구매하려는 수량 단위를 선택할 수 있으며 단가를 기준으로 요금이 청구됩니다. 고객은 여러 차원을 구독할 수도 있습니다.

`CheckoutLicense` API 작업에 꼭 사용해야 하는 필수 파라미터는 다음과 같습니다.
+ `CheckoutType` - 유효한 값은 `Perpetual` 또는 `Provisional`입니다.
  + `Perpetual` - 체크아웃된 권한 수량이 풀에서 모두 소진될 때 사용됩니다. 예: 구매자에게 500GB의 데이터를 처리할 권한이 있습니다. 구매자가 데이터를 계속 처리하다 보면 수량이 감소하고 500GB 풀이 모두 소진됩니다. 구매한 라이선스의 만료 또는 만료 임박 여부에 대한 상태를 가져와서 고객에게 알림을 보냅니다.
  + `Provisional` - 풀에서 권한을 체크아웃하고 사용 후 다시 반환하는 플로팅 라이선스 권한에 사용됩니다. 예: 사용자는 애플리케이션에서 동시 사용자 500명을 이용할 수 있습니다. 사용자가 로그인하고 로그아웃하면 사용자가 차감된 후 사용자 500명 풀로 반환됩니다. 유동 라이선스 권한에 대한 자세한 내용은 [AWS License Manager에서 판매자가 발급한 라이선스를 참조하세요.](https://docs.aws.amazon.com/license-manager/latest/userguide/seller-issued-licenses.html)
+ `ClientToken` - 대소문자를 구분하는 고유의 식별자로, 몇 번을 시도해도 항상 동일한 결과가 나옵니다. 각 요청에 임의의 범용 고유 식별자(UUID)를 사용하는 것이 좋습니다.
+ `Entitlements` - 체크아웃할 권한 목록입니다.
  + 계층형 권한의 경우 다음과 같이 `Name` 및 `Unit` 속성을 제공합니다.

    `{`

    `"Name": "<Entitlement_Name>",`

    `"Unit": "None"`

    `}`
  + 계층형 권한의 경우 다음과 같이 `Name`, `Unit` 및 `Value` 속성을 제공합니다.

    `{`

    `"Name": "<Entitlement_Name>",`

    `"Unit": "<Entitlement_Unit>",`

    `"Value": <Desired_Count>{`

    \$1
+ `KeyFingerprint` - 이 key fingerprint를 사용하여 라이선스를 AWS Marketplace에서 발급했는지 확인합니다. 에서 발급한 라이선스의 키 지문 AWS Marketplace 은 다음과 같습니다.

  `aws:294406891311:AWS/Marketplace:issuer-fingerprint`
+ `Product SKU` - 제품과 연결된 GUID(Globally Unique Identifier) 형식의 AWS Marketplace 제품 ID입니다.

**Example 구성 가능한 권한의 예시**  
다음은 `CheckoutLicense` API 작업을 사용하여 `PowerUsers`라는 구성 가능한 권한을 체크아웃하는 요청의 예입니다.  

```
aws license-manager checkout-license \
   product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \
   checkout-type "PROVISIONAL" \
   client-token "79464194dca9429698cc774587a603a1" \"Statement":[
   entitlements "Name=PowerUsers,Value=1,Unit=Count" \ 
   key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
```

**Example 계층형 자격의 예시**  
다음은 `CheckoutLicense` API 작업을 사용하여 `EnterpriseEdition`라는 기능 권한을 체크아웃하는 요청의 예입니다.  

```
aws license-manager checkout-license \
   --product-sku "2205b290-19e6-4c76-9eea-377d6bf71a47" \
   --checkout-type "PROVISIONAL" \
   --client-token "79464194dca9429698cc774587a603a1" \
   --entitlements "Name=EnterpriseEdition,Unit=None" \
   --key-fingerprint "aws:294406891311:AWS/Marketplace:issuer-fingerprint"
```

**AMI 기반 제품에 대한 테스트 라이선스를 생성하는 방법**

1.  AWS CLI v2가 설치된 로컬 환경에서 다음 스크립트를 실행합니다. 이 스크립트는 테스트 라이선스를 생성하고 적절한 제품 세부 정보를 구성합니다.
**참고**  
소프트웨어를 배포하고 테스트 AWS 계정 하는 테스트 AWS 계정 와 다른를 사용합니다. 동일한 AWS 계정에서 라이선스를 생성하고, 부여하고, 체크아웃할 수 없습니다.

   ```
   #!/bin/bash
   
   # Replace with intended product ID on AWS Marketplace
   PRODUCT_ID=<REPLACE-WITH-PRODUCT-ID>
   
   # Replace with license recipient's AWS Account ID
   BENEFICIARY_ACCOUNT_ID=<REPLACE-WITH-BENEFICIARY-ACCOUNT-ID>
   
   # Replace with your product's name
   PRODUCT_NAME="Test Product"
   
   # Replace with your seller name on AWS Marketplace
   SELLER_OF_RECORD="Test Seller" 
   
   # Replace with intended license name
   LICENSE_NAME="AWSMP Test License"
   
   # Replace the following with desired contract dimensions
   # More info here: https://docs.aws.amazon.com/license-manager/latest/APIReference/API_Entitlement.html
   # Example "configurable entitlement"
   ENTITLEMENTS='[
     {
       "Name": "ReadOnly",
       "MaxCount": 5,
       "Overage": false,
       "Unit": "Count",
       "AllowCheckIn": true
     }
   ]'
   # Example "tiered entitlement"
   # ENTITLEMENTS='[
   #   {
   #     "Name": "EnterpriseUsage", 
   #     "Value": "Enabled",
   #     "Unit": "None"
   #   }
   # ]'
   
   # Format "yyyy-mm-ddTHH:mm:ss.SSSZ"
   # This creates a validity period of 10 days starting the current day
   # Can be updated to desired dates
   VALIDITY_START=$(date +%Y-%m-%dT%H:%M:%S.%SZ)
   VALIDITY_END=$(date --date="+10 days" +%Y-%m-%dT%H:%M:%S.%SZ)
   
   # Configuration for consumption of the license as set on Marketplace products
   CONSUMPTION_CONFIG='{
    "RenewType": "None",
    "ProvisionalConfiguration": {
      "MaxTimeToLiveInMinutes": 60
    }
   }'
   
   # License's home Region
   HOME_REGION=us-east-1
   
   # License issuer's name
   ISSUER=Self  
   
   # Run AWS CLI command to create a license
   aws license-manager create-license \
     --license-name "${LICENSE_NAME}" \
     --product-name "${PRODUCT_NAME}" \
     --product-sku "${PRODUCT_ID}" \
     --issuer Name="${ISSUER}" \
     --beneficiary "${BENEFICIARY_ACCOUNT_ID}" \
     --validity 'Begin="'"${VALIDITY_START}"'",End="'"${VALIDITY_END}"'"' \
     --entitlements "${ENTITLEMENTS}" \
     --home-region "${HOME_REGION}" \
     --region "${HOME_REGION}" \
     --consumption-configuration "${CONSUMPTION_CONFIG}" \
     --client-token $(uuidgen)
   ```

1.  AWS License Manager 콘솔을 사용하여 라이선스를 부여합니다. 자세한 내용은 **License Manager 사용 설명서의 [권한 배포](https://docs.aws.amazon.com/license-manager/latest/userguide/granted-licenses.html#distribute-entitlement.)를 참조하세요.

1. 소프트웨어를 배포하고 테스트할 구매자 계정 역할을 AWS 계정 하는에 로그인합니다. 이는 라이선스를 생성하고 부여 AWS 계정 한와 AWS 계정 달라야 합니다.

1.  AWS License Manager 콘솔로 이동하여 부여된 라이선스를 수락하고 활성화합니다. 자세한 내용은 **License Manager 사용 설명서의 [부여된 라이선스 관리](https://docs.aws.amazon.com/license-manager/latest/userguide/granted-licenses.html#manage-granted-licenses)를 참조하세요.

1. 현재 환경에서 다음 명령을 실행합니다.

   ```
   # The following example uses a key fingerprint that should match the test license you created.
   # When checking out an actual AWS Marketplace created license, use the following fingerprint:
   # aws:294406891311:AWS/Marketplace:issuer-fingerprint
   aws license-manager checkout-license \
     --product-sku <REPLACE-WITH-PRODUCT-ID> \
     --checkout-type PROVISIONAL \
     --key-fingerprint "aws:<ACCOUNT-ID-WHERE-YOU-CREATED-TEST-LICENSE>:Self:issuer-fingerprint" \
     --entitlements "Name=ReadOnly,Value=1,Unit=Count" \
     --client-token $(uuidgen)
   ```

   이전 명령은 `PROVISIONAL`을 `CheckoutType` 파라미터의 값으로 사용합니다. 권한에 드로다운 라이선스가 사용되는 경우 `PERPETUAL`을 값으로 사용합니다.

### License Manager API 직접 호출
<a name="LM-API-calls"></a>

고객의 License Manager 계정에 저장된 라이선스를 관리하려면 소프트웨어에서 다음 API 직접 호출을 사용하면 됩니다.
+ `GetLicense` - 구매한 라이선스의 만료 또는 만료 임박 여부에 대한 상태를 가져와서 고객에게 알림을 보냅니다.
+ `CheckoutLicense` - 사용자가 구매한 라이선스를 검색합니다. 사용자가 라이선스를 어느 정도 사용한 경우 이 호출을 사용하여 라이선스 수량을 업데이트할 수도 있습니다. `CheckoutLicense`를 사용하면 고객이 사용한 라이선스의 수량을 계속 체크아웃할 수 있습니다. 고객이 라이선스를 모두 소진하면 이 호출에서 오류가 반환됩니다. `CheckoutLicense` 실행에 권장되는 케이던스에 대한 자세한 내용은 [라이선스 갱신 및 업그레이드](#lic-renew-upgrade) 섹션을 참조하세요.
+ `ExtendLicenseConsumption` - 플로팅 차원의 경우 소프트웨어는 라이선스를 체크아웃한 후 60분 후에 자동으로 라이선스를 풀에 반환합니다. 라이선스가 체크아웃된 상태로 유지되는 시간을 연장하려면 소프트웨어에서 `ExtendLicenseConsumption`을 호출하여 라이선스를 60분 더 연장할 수 있습니다.
+ `CheckInLicense` - 플로팅 차원의 경우 라이선스를 권한 풀에 반환하려면 `CheckInLicense`를 사용합니다.
+ `ListReceivedLicenses` - 구매자가 구매한 라이선스를 나열합니다.

## 라이선스 갱신 및 업그레이드
<a name="lic-renew-upgrade"></a>

고객은 AWS Marketplace Management Portal에서 라이선스를 갱신하거나 업그레이드할 수 있습니다. 추가 구매를 한 후는 새 권한을 반영하는 라이선스의 새 버전을 AWS Marketplace 생성합니다. 소프트웨어는 동일한 API 직접 호출을 사용하여 새 권한을 읽습니다. 갱신 및 업그레이드를 처리하기 위해 License Manager 통합과 관련하여 아무 것도 할 필요가 없습니다.

라이선스 갱신, 업그레이드, 취소 등으로 인해 제품이 사용되는 동안 제품에서 정기적으로 `CheckoutLicense` API 직접 호출을 수행하는 것이 좋습니다. `CheckoutLicense` API 작업을 정기적으로 사용하면 제품에서 업그레이드 및 만료와 같은 권한 변경을 감지할 수 있습니다.

15분마다 `CheckoutLicense` API 직접 호출을 수행하는 것이 좋습니다.