

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

# 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" }
```