

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

# 를 사용한 컨테이너 제품의 계약 요금 AWS License Manager
<a name="container-license-manager-integration"></a>

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

License Manager를 Amazon EKS Anywhere, Amazon ECS Anywhere, Amazon Elastic Compute Cloud(Amazon EC2) 또는 온프레미스 인프라용 AWS Marketplace for Containers Anywhere 제품과 통합하는 경우의 지침을 따르세요[AWS Marketplace for Containers Anywhere와 License Manager 통합](container-anywhere-license-manager-integration.md).

에 대한 자세한 내용은 [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) 섹션을 참조하세요.

컨테이너 제품과 계약 요금 AWS License Manager 의 통합에 대한 자세한 내용은 *AWS Marketplace 판매자 워크숍*의 [선결제와 통합](https://catalog.workshops.aws/mpseller/en-US/container/integrate-contract) 실습을 참조하세요.

**Topics**
+ [컨테이너 제품의 계약 요금](#container-contracts)
+ [라이선스 모델](#container-LM-license-models)
+ [AWS License Manager 통합 사전 조건](#container-LM-prereqs)
+ [컨테이너 제품을 License Manager와 통합](#container-integrate-with-LM)
+ [License Manager API 작업](#container-LM-API-calls)
+ [라이선스 갱신 및 업그레이드](#container-LM-lic-renew-upgrade)
+ [AWS Marketplace for Containers Anywhere와 License Manager 통합](container-anywhere-license-manager-integration.md)

## 컨테이너 제품의 계약 요금
<a name="container-contracts"></a>

계약 요금이 적용되는 컨테이너 기반 제품의 경우는 사용자와 고객 간의 계약에 따라 사용자가 정의한 결제 일정에 따라 고객에게 선결제 요금을 AWS Marketplace 청구합니다. 그 이후 고객에게 해당 리소스를 사용할 권한이 부여됩니다.

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

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

이 제안에는 최대 24개 차원을 추가할 수 있습니다.


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

|   | 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  |  1000 USD  | 2000 USD  | 4000 USD | 
|  스탠다드(20개의 호스트 모니터링, 10개의 컨테이너 모니터링)  |  $200  |  2000 USD  | 4000 USD  | 8000 USD | 
|  프로(40개의 호스트 모니터링, 20개의 컨테이너 모니터링)  |  400 USD  |  4000 USD  | 8000 USD  | 16,000 USD | 
|  시간당 추가 호스트 모니터링  | 10 USD  | 100 USD  |  $200 | 400 USD | 
|  시간당 추가 컨테이너 모니터링  | 10 USD  | 100 USD  |  $200 | 400 USD | 

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

**Example 연간 여러 단위에 대해 S3로 백업한 예시**  
Amazon Simple Storage Service에 1년 동안 데이터를 최대 1,024단위까지 백업할 수 있는 스토리지 제품을 보유하고 있습니다. Amazon EC2 인스턴스를 여러 개 사용하여 애플리케이션을 시작할 수 있습니다. 애플리케이션에는 데이터를 추적하고 집계하는 메커니즘이 있습니다. 소프트웨어는 백업이 발생할 때마다 또는 고정된 간격으로 제품 ID로 `CheckoutLicense` API 작업을 호출하여 소비량을 업데이트합니다.  
이 예시에서는 소프트웨어가 `CheckoutLicense` API 작업을 호출하여 데이터 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": "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="container-floating-lic"></a>

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

플로팅 라이선스의 경우 애플리케이션은 리소스가 사용될 때 `CheckoutLicense` API 작업을 사용하여 권한 풀에서 권한을 체크아웃합니다. `CheckoutLicense` API 작업의 응답에는 체크아웃의 고유 식별자인 라이선스 소비 토큰이 포함되어 있습니다. 라이선스 소비 토큰은 권한을 라이선스 풀로 다시 체크인하거나 체크아웃을 연장하는 등 체크아웃된 권한에 대한 추가 작업을 수행하는 데 사용할 수 있습니다.

리소스가 더 이상 사용되지 않으면 `CheckInLicense` API 작업을 사용하여 권한을 다시 풀에 체크인합니다.

```
aws license-manager check-in-license --license-consumption-token "f1603b3c1f574b7284db84..."
```

권한 체크인이 실패하면(예: 애플리케이션 충돌 발생) 60분 후에 자동으로 권한이 다시 풀에 체크인됩니다. 리소스가 60분 넘게 사용 중이면 리소스가 사용되는 동안에는 `ExtendLicenseConsumption` API 작업을 사용하여 풀에서 권한을 체크아웃한 상태로 유지하는 것이 좋습니다.

```
aws license-manager extend-license-consumption --license-consumption-token "f1603b3c1f574b7284..."
```

**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의 실제 값입니다.

**요청**

```
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="container-LM-tiered-lic-model"></a>

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

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

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

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

번들 기능을 함께 제안하려면 계층을 사용하는 것이 좋습니다.

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

#### 요청
<a name="container-LM-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="container-LM-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"
}
```

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

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

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

   자세한 내용은 [개요: 컨테이너 제품 만들기](container-product-getting-started.md#create-container-product) 단원을 참조하십시오.

1. `CheckoutLicense`, `ExtendLicenseConsumption` 및 `CheckInLicense` API 작업을 호출하는 데 필요한 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 작업 호출을 테스트합니다.

## 컨테이너 제품을 License Manager와 통합
<a name="container-integrate-with-LM"></a>

**컨테이너 기반 제품을 License Manager와 통합하는 방법**

1. IAM 권한을 설정하여 License Manager를 호출합니다. 자세한 내용은 [AWS License Manager 통합 사전 조건](#container-LM-prereqs) 단원을 참조하십시오.

1.  AWS SDK를 다운로드합니다.
**참고**  
소프트웨어 내에서 자격 AWS 증명을 구성하지 마세요. 구매자의 AWS 자격 증명은 컨테이너가 Amazon EC2 인스턴스, Amazon ECS 작업 또는 Amazon EKS 포드 내에서 실행 중일 때 런타임에 자동으로 획득됩니다.

1. 제품에 라이선스 확인을 추가합니다.

   제품은 라이선스 확인을 수행해야 하는 모든 위치에서 `CheckoutLicense` API 작업을 호출할 수 있습니다. 라이선스를 확인하려면 제품이 다음 정보를 알아야 합니다.

   1. 신뢰할 수 있는 라이선스 발급자(AWS Marketplace)

   1. 애플리케이션의 제품 SKU(제품 ID)

   1. 이 애플리케이션을 확인할 수 있는 권한

   API 직접 호출은 설정된 요금 라이선스의 종류에 따라 달라집니다.

1. 제품 목록을에 게시합니다 AWS Marketplace.

## License Manager API 작업
<a name="container-LM-API-calls"></a>

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

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

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

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

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