

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

# AWS Marketplace의 AMI 기반 제품
<a name="ami-products"></a>

AWS Marketplace 판매자는 [Amazon Machine Image(AMI)](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#AmazonMachineImage)를 사용하여 구매자에게 제품을 전달할 수 있습니다. AMI는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하는 데 필요한 정보를 제공합니다. 판매자가 제품에 대한 사용자 지정 AMI를 생성하면, 구매자가 이 AMI를 사용하여 제품이 이미 설치되어 사용 가능한 상태로 EC2 인스턴스를 생성할 수 있습니다. 이 주제에서는 AMI를 사용하여 AWS Marketplace 제품을 제공하는 방법에 대한 정보를 제공합니다.

구매자가 판매자 제공 AMI를 사용하는 경우 판매자가 제품에 대해 생성한 요금 및 측정 옵션에 따라 구매자가 생성하는 인스턴스에 대한 요금이 청구됩니다. 구매자는 새로운 사용자 지정 버전의 AMI를 생성하는 것을 포함하여 AWS의 다른 AMI를 사용할 때와 동일한 방식으로 제품 AMI를 사용할 수 있습니다. AMI에서 생성된 EC2 인스턴스는 AMI 제품 코드에 따라 여전히 판매자의 제품으로 요금이 청구됩니다.

## AMI 기반 제품 제공 방법
<a name="ami-product-delivery-methods"></a>

다음 방법 중 하나로 AMI 기반 제품을 제공할 수 있습니다.
+ **단일 AMI** - 구매자가 AMI를 선택하여 EC2 인스턴스용 템플릿으로 사용합니다. 구매자는 **Amazon 머신 이미지(AMI)** 제공 방법 필터를 사용하여 이러한 제품을 찾을 수 있습니다. 자세한 내용은 [AMI 기반 제품 생성](ami-single-ami-products.md) 단원을 참조하세요.
+ **AWS CloudFormation 템플릿** - 구매자가 역할이 서로 다른 여러 인스턴스로 구성된 시스템을 단일 단위로 설치할 수 있는 템플릿을 생성합니다. 구매자는 **CloudFormation** 제공 방법 필터를 사용하여 이러한 제품을 찾을 수 있습니다. 자세한 내용은 [제품에 CloudFormation 템플릿 추가](cloudformation.md) 단원을 참조하세요.

## 추가 리소스
<a name="ami-delivery-methods-additional-resources"></a>

AMI 제품에 대한 자세한 내용은 다음 주제를 참조하세요.

**AWS Marketplace**
+ [에 대한 제품 요금 AWS Marketplace](pricing.md)
+ [를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md)

**AMI 기반 제품**
+ [의 AMI 기반 제품 이해 AWS Marketplace](ami-getting-started.md)
+ [AMI 기반 제품 생성](ami-single-ami-products.md)
+ [AWS Marketplace 판매자로서 AMI 기반 제품 관리](concept-chapter-servicename.md)
+ [제품에 CloudFormation 템플릿 추가](cloudformation.md)
+ [와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace](best-practices-for-building-your-amis.md)
+ [AWS Marketplace의 AMI 제품 요금](pricing-ami-products.md)
+ [에서 AMI 제품에 대한 Amazon SNS 알림 수신 AWS Marketplace](ami-notification.md)
+ [AWS Marketplace의 AMI 제픔 체크리스트](aws-marketplace-listing-checklist.md)
+ [에 대한 AMI 기반 제품 요구 사항 AWS Marketplace](product-and-ami-policies.md)

# 의 AMI 기반 제품 이해 AWS Marketplace
<a name="ami-getting-started"></a>

 AWS Marketplace 판매자는 [Amazon Machine Image(AMIs)를 사용하여 구매자에게 제품을 제공할 수 있습니다](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#AmazonMachineImage). AMI는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하는 데 필요한 정보를 제공합니다. 다음 섹션에서는 AMI 기반 제품 작업에 대한 주요 개념을 설명합니다.

**참고**  
AMI 제품에는 하나의 AMI만 사용할 수 있지만, 해당 AMI의 버전을 제품에 추가할 수 있습니다.

**Topics**
+ [제품 수명 주기](#ami-product-lifecycle)
+ [AMI 제품 코드](#ami-product-codes)
+ [변경 요청](#ami-change-requests)
+ [제품 로드 양식](#ami-product-load-forms)
+ [연간 계약 수정](#annual-agreement-amendments)
+ [FPGA 제품](#ami-fpga-products)

## 제품 수명 주기
<a name="ami-product-lifecycle"></a>

AMI 기반 제품에는 하나 이상의 소프트웨어 버전 세트와 제품 전체에 대한 메타데이터가 포함됩니다. 제품을 생성할 때 제품 이름, 설명 및 요금을 AWS Marketplace 포함하여에서 해당 속성을 구성합니다. 또한 제품이 관련 검색에서 나타나도록 제품의 적절한 범주를 결정하고 키워드를 추가합니다.

소프트웨어의 첫 번째 버전도 생성합니다. 이는 단순히 AMI이거나, 구매자가 자체 AMI를 생성하는 데 사용할 수 있는 AWS CloudFormation 템플릿 또는 소프트웨어 패키지를 포함할 수 있습니다. 자세한 내용은 [AMI 기반 제품 제공 방법](ami-products.md#ami-product-delivery-methods) 단원을 참조하십시오.

유료 제품의 경우 설치한 인스턴스 수에 따라 구매자에게 요금이 청구됩니다. 제품 사용자 수와 같이 소프트웨어가 추적하는 다른 차원을 측정하려면 제품을 AWS Marketplace 측정 서비스와 통합합니다. 자세한 내용은 [를 사용하여 AMI 제품에 대한 사용자 지정 측정 구성 AWS Marketplace Metering Service](custom-metering-with-mp-metering-service.md) 단원을 참조하십시오.

제품과 첫 번째 버전의 소프트웨어를 생성할 때, 처음에는 판매자의 계정만 액세스할 수 있도록 제한된 범위에 게시됩니다. 준비가 되면 AWS Marketplace 카탈로그에 게시하여 구매자가 제품을 구독하고 구매할 수 있도록 할 수 있습니다.

[서버 제품](https://aws.amazon.com/marketplace/management/products/server) 페이지를 사용하여 제품 목록을 볼 수 있습니다. 제품에는 다음 상태 중 하나가 있습니다.
+ **스테이징** - 아직 판매자가 정보를 추가하고 있는 불완전한 제품. 셀프 서비스 생성 경험에서 처음으로 **저장 후 종료**할 때, 변경 요청이 성공하면 제출한 전체 단계의 정보가 포함된, 게시되지 않은 제품이 생성됩니다. 이 상태에서 제품에 정보를 계속 추가할 수도 있고 변경 요청을 통해 이미 제출한 세부 정보를 변경할 수도 있습니다.
+ **제한** - 제품이 시스템에 제출되고 시스템의 모든 검증을 통과하면 완성되었습니다. 그 후 제품이 **제한** 상태로 릴리스되었습니다. 이제 판매자 계정과 판매자가 허용한 사람만 제품 세부 정보 페이지에 액세스할 수 있습니다. 세부 정보 페이지를 통해 제품을 테스트할 수 있습니다. 자세한 정보 및 도움이 필요하면 [https://aws.amazon.com/marketplace/management/contact-us/?#](https://aws.amazon.com/marketplace/management/contact-us/?#)에 문의하세요.
+ **퍼블릭** - 구매자가 제품을 살펴보고 구독할 수 있도록 제품을 게시할 준비가 되면 **표시 여부 업데이트** 변경 요청을 사용합니다. 이렇게 하면 AWS Marketplace 판매자 운영 팀이 [정책에](https://docs.aws.amazon.com/marketplace/latest/userguide/product-and-ami-policies.html) 따라 제품을 검토하고 감사할 수 있는 워크플로가 시작됩니다. 제품이 승인되고 변경 요청이 처리되면 제품 상태가 **제한**에서 **퍼블릭**으로 바뀝니다.
+ **제한** - 신규 사용자가 제품을 구독하지 못하게 하려면 **표시 여부 업데이트** 변경 요청을 사용하여 제품을 제한하면 됩니다. **제한** 상태는 기존 사용자는 제품을 계속 사용할 수 있다는 것을 의미합니다. 하지만 제품이 더 이상 대중에게 표시되거나 신규 사용자에게 제공되지 않습니다.

용 AMI 기반 제품의 수명 주기는 첫 번째 버전을 게시한 후 종료되지 AWS Marketplace 않습니다. 계속해서 새 버전의 소프트웨어와 기본 운영 체제의 보안 패치로 제품을 업데이트해야 합니다.

완전한 AMI 기반 제품 수명 주기의 예시로, 한 판매자가 AWS Marketplace에서 AMI 기반 제품을 판매하려 한다고 가정하겠습니다. 시간이 지나면서 판매자가 제품을 생성하고 유지 관리하는 방법은 다음과 같습니다.

1. **제품 생성** - 판매자가 제품을 생성하고 버전 1.0.0을에 게시합니다 AWS Marketplace. 구매자는 버전 1.0.0 인스턴스를 생성하여 사용할 수 있습니다.

1. **새 버전 추가** - 나중에 판매자는 제품에 새 기능을 추가하고, 새 기능이 포함된 새 버전 1.1.0을 추가합니다. 구매자는 여전히 원래 버전인 1.0.0을 사용할 수도 있고 새 버전인 1.1.0을 선택할 수도 있습니다.
**참고**  
새 제품과 달리 새 버전은 모두에게 완전히 공개됩니다. 제품 전체가 제한된 릴리스인 경우에만 고객이 보지 AWS Marketplace 않고에서 테스트할 수 있습니다.

1. **제품 정보 업데이트** - 버전 1.1.0이 공개되면 판매자는 기능에 대해 설명하는 새로운 하이라이트 텍스트로 제품 정보를 업데이트하여 구매자에게 새 기능에 대해 알립니다.

1. **마이너 버전 추가** - 판매자는 버전 1.1.0의 버그를 수정하면 새 버전 1.1.1을 추가하여 공개합니다. 이제 구매자는 1.0.0, 1.1.0 또는 1.1.1 버전 중에 선택할 수 있습니다.

1. **버전 제한** - 판매자는 구매자가 버전 1.1.0을 사용할 수 없게 해야 할 정도로 버그가 심각하다고 판단하면 해당 버전을 제한합니다. 기존 구매자는 1.1.0 버전을 계속 이용할 수 있지만 신규 고객은 구매할 수 없습니다(1.0.0 또는 1.1.1 버전만 선택 가능).

1. **버전 정보 업데이트** - 기존 구매자를 돕기 위해 판매자는 1.1.1 버전으로 업그레이드할 것을 권장하는 내용으로 1.1.0의 버전 정보를 업데이트합니다.

1. **사용량 모니터링** - 구매자가 제품을 구매하고 사용할 때 판매자는를 사용하여 판매, 사용량 및 기타 지표를 모니터링합니다 AWS Marketplace [의 판매자 보고서, 데이터 피드 및 대시보드 AWS Marketplace](reports-and-data-feed.md).

1. **제품 제거** - 제품이 더 이상 필요하지 않으면 판매자가 제품을 제거합니다 AWS Marketplace.

이 예제에서는 판매자가 제품에 세 가지 버전의 AMI를 생성했지만 두 가지 버전만 신규 구매자가 사용할 수 있었습니다(제품을 삭제하기 전).

버전 또는 제품 정보를 수정하려면 AWS Marketplace Management Portal에서 [변경 요청](single-ami-create-change-request.md)을 만들어야 합니다.

AMI 기반 제품을 생성하고 관리하는 단계에 대한 자세한 지침은 [AMI 기반 제품 생성](ami-single-ami-products.md) 섹션을 참조하세요.

## AMI 제품 코드
<a name="ami-product-codes"></a>

 AWS Marketplace에서 제품을 생성하면 제품에 고유한 제품 코드가 할당됩니다. 해당 제품 코드는 제품의 AMI와 연결되며 제품 사용을 추적하는 데 사용됩니다. 구매자가 소프트웨어로 작업할 때 제품 코드가 자동으로 전파됩니다. 예를 들어 AMI를 구독 및 시작하고 구성하며 새 AMI를 생성합니다. 새 AMI에는 계속해서 원래 제품 코드가 포함되므로 올바른 사용 추적 및 권한이 유지됩니다.

**참고**  
제품 **코드는 제품의 제품 **ID와 다릅니다. 의 각 제품에는 고유한 제품 ID가 할당 AWS Marketplace 됩니다. 제품 ID는 AWS Marketplace 카탈로그, 고객 청구서 및 판매자 보고서에서 제품을 식별하는 데 사용됩니다. 제품 코드는 AMI에서 생성된 인스턴스에 인스턴스 메타데이터로 연결됩니다. 해당 제품 코드가 있는 AMI를 사용하여 인스턴스를 생성하면 고객은 연결된 제품 ID가 표시된 청구서를 받게 됩니다. 제품을 생성한 후 해당 제품의 AWS Marketplace Management Portal 페이지에서 제품 코드와 제품 ID를 찾습니다.

판매자의 소프트웨어는 런타임에 인스턴스 메타데이터에서 실행 중인 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 제품 코드를 가져올 수 있습니다. 판매자는 제품을 시작할 때 제품을 검증하는 등 제품 코드를 사용하여 보안을 강화할 수 있습니다. 테스트를 위해 제품이 제한 상태로 게시될 때까지는 AMI 제품 코드에 대한 API 직접 호출이 불가능합니다. 제품 코드 확인에 대한 자세한 내용은 [소프트웨어가 AWS Marketplace AMI에서 실행 중인지 확인](best-practices-for-building-your-amis.md#verifying-ami-runtime) 섹션을 참조하세요.

## 변경 요청
<a name="ami-change-requests"></a>

에서 제품 또는 버전을 변경하려면를 통해 **변경 요청을** AWS Marketplace제출합니다 AWS Marketplace Management Portal. 변경 요청은 대기열에 추가되며 요청 유형에 따라 변경 요청이 해결될 때까지 몇 분에서 며칠까지 걸릴 수 있습니다. AWS Marketplace Management Portal에서 요청 상태를 확인할 수 있습니다.

**참고**  
외에도 [AWS Marketplace 카탈로그 API](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html)를 사용하여 변경 요청을 생성할 수도 AWS Marketplace Management Portal있습니다.

AMI 기반 제품에 대해 요청할 수 있는 변경 유형은 다음과 같습니다.
+ 구매자에게 표시되는 제품 정보를 업데이트합니다.
+ 구매자에게 표시되는 버전 정보를 업데이트합니다.
+ 새로운 제품 버전을 추가합니다.
+ 신규 구매자가 더 이상 해당 버전에 액세스할 수 없도록 버전을 제한합니다.
+ 제품을 사용할 수 AWS 리전 있는를 업데이트합니다.
+ 제품의 요금 및 인스턴스 유형을 업데이트합니다.
+ 에서 제품을 제거합니다 AWS Marketplace.

**참고**  
일부 변경 요청은 제품 로드 양식을 사용하여 요청을 생성해야 합니다. 자세한 내용은 [제품 로드 양식](#ami-product-load-forms) 단원을 참조하세요.

### 변경 요청 업데이트
<a name="update-change-request"></a>

업데이트로 시작하는 변경 요청은 현재 세부 정보를 로드합니다. 그러면 기존 세부 정보를 덮어쓰는 업데이트를 수행할 수 있습니다.

### 변경 요청 추가 또는 제한
<a name="add-restrict-requests"></a>

추가 및 제한 요청 페어는 각 요청이 성공한 후에 프로비저닝되는 단계와 업데이트를 위한 것입니다. 셀프 서비스 환경에서 **저장 후 종료** 및 **제출** 작업을 선택한 후 요청이 성공합니다.

예를 들어 제품이 추가된 후 AMI 자산이 인스턴스 및 리전에 프로비저닝되면 제품을 완전히 제거할 수는 없고 제한하는 것만 가능합니다. 즉, 기존 구독자와 사용자는 구독 또는 계약이 만료될 때까지 제품을 계속 사용할 수 있습니다. 하지만 **제한** 상태인 제품에 신규 구독자를 추가할 수 없습니다.

## 제품 로드 양식
<a name="ami-product-load-forms"></a>

일반적으로 [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management)를 사용하여 제품을 생성하거나 편집합니다. 하지만 몇 가지 작업은 *제품 로드 양식*(PLF)을 사용해야 합니다.

PLF는 제품에 대한 모든 정보가 들어 있는 스프레드시트입니다. PLF를 얻으려면 다음과 같이 합니다.
+  AWS Marketplace Management Portal의 제품 세부 정보 페이지에서 기존 제품의 PLF를 다운로드할 수 있습니다.
+ PLF가 필요한 작업의 메뉴 항목을 선택합니다. 예를 들어, 매월 요금이 청구되는 서버 제품을 새로 생성한다면, 시스템에서 적절한 PLF를 다운로드하라는 메시지가 표시됩니다.

  기존 제품을 편집하는 작업인 경우 해당 제품에 대한 정보가 PLF에 미리 채워지므로 업데이트를 원하는 세부 정보만 변경하면 됩니다.
+ 빈 새 PLF가 필요한 경우 AWS Marketplace Management Portal [파일 업로드](https://aws.amazon.com/marketplace/management/product-load) 페이지로 이동합니다. 이 페이지에는 생성하려는 제품 유형의 PLF에 대한 링크가 포함되어 있습니다.

 PLF를 완료한 후 AWS Marketplace Management Portal [ 파일 업로드](https://aws.amazon.com/marketplace/management/product-load) 페이지에 업로드합니다. PLF의 **지침** 탭에 더 자세한 지침이 있습니다.

## 연간 계약 수정
<a name="annual-agreement-amendments"></a>

시간당 연간(연간) 플랜 수정을 통해 판매자와 구매자는 기존 플랜을 다음과 같이 변경할 수 있습니다.
+ Amazon EC2 인스턴스 유형 패밀리 간 전환
+ Amazon EC2 인스턴스 유형 크기 간 전환
+ 새 인스턴스 유형 추가
+ 계약에서 기존 인스턴스 유형의 수량 증가

비례 배분된 변경 비용이 0보다 큰 경우 구매자는 변경할 수 있습니다(구독 가격을 낮출 수 없음). 새로 추가된 Amazon EC2 인스턴스의 비례 계산된 비용은 계약의 나머지 기간에 대해 조정된 인스턴스 유형의 연간 비용을 기준으로 합니다. 인스턴스 유형을 전환할 때 제거된 Amazon EC2 인스턴스 유형의 비례 계산된 비용은 새로 추가된 Amazon EC2 인스턴스 유형의 비례 계산된 비용에서 차감됩니다.

AMI 연간 제품에 대한 수정을 활성화하기 위해 추가 조치가 필요하지 않습니다. 수정은 할부 플랜을 사용하지 않는 비공개 제안의 공개 제안 및 계약에서 이루어진 모든 계약에 지원됩니다.

다음 대시보드에서 구매자의 수정 사항을 확인할 수 있습니다.
+ [계약 및 갱신 대시보드](https://docs.aws.amazon.com/marketplace/latest/userguide/agreements-renewals-dashboard.html) - 수정된 계약의 목록입니다.
+ [청구된 수익 대시보드](https://docs.aws.amazon.com/marketplace/latest/userguide/billed-revenue-dashboard.html) - 고객에게 청구하는 요금입니다.
+ [수금 및 지급 대시보드](https://docs.aws.amazon.com/marketplace/latest/userguide/collections-disbursement-dashboard.html) - 지급액입니다.

## FPGA 제품
<a name="ami-fpga-products"></a>

FPGA(Field Programmable Gate Array) 제품은 Amazon FPGA Image(AFI) 구성으로 F2 인스턴스 유형을 지원하는 특수 AMI 제품입니다. 표준 AMIs 달리 FPGA 제품에는 지원되는 인스턴스 유형에서 하드웨어 가속화를 위해 AMI가 동적으로 로드하는 AFI IDs가 포함됩니다.

**주요 특성:**
+ FPGA 제품은 FPGA 가속화 전용 F2 인스턴스 유형을 지원합니다.
+ 각 제품 버전에는 버전당 최대 15개의 AFI IDs가 있는 하나 이상의 AFI IDs가 포함될 수 있습니다.
+ AFIs는 AMIs처럼 시작되지 않고 on-the-fly 로드되므로 동적 하드웨어 가속화 기능을 제공합니다.
+ FPGA 제품에 새 리전을 추가하면 지원되는 리전에서 제품을 사용할 수 있도록 AWS Marketplace 에서 자동 AWS 리전 AFI 복제가 수행됩니다.
+ FPGA 제품은 다른 인스턴스 유형에서 제공될 수 있지만 AFIs는 F2 인스턴스 유형에서만 로드되고 하드웨어 가속화를 제공합니다. 다른 인스턴스 유형에서는 AMI가 FPGA 가속 기능 없이 작동합니다.

FPGA 제품은 유전체학 연구, 재무 분석, 실시간 비디오 처리, 빅 데이터 분석, 기계 학습 추론과 같은 특수 하드웨어 가속화가 필요한 컴퓨팅 집약적 워크로드에 적합합니다. AFIs의 동적 로드를 통해 구매자는 기본 FPGA 인프라를 관리하지 않고도 FPGA 가속화를 활용할 수 있습니다.

# AMI 기반 제품 생성
<a name="ami-single-ami-products"></a>

Amazon Machine Image(AMI) 셀프 서비스 경험은 제품 목록을 생성하고 변경 요청을 수행할 때 방법을 안내합니다. 셀프 서비스 환경을 사용하면 AWS Marketplace 판매자 운영 팀이 처리하는 데 필요한 시간을 단축하여 제품 목록을 직접 업데이트할 수 있습니다. 셀프 서비스 경험의 많은 단계는의 카탈로그 시스템과 일치 AWS Marketplace하므로 AWS Marketplace 판매자 운영 팀의 처리 및 검증을 기다리는 대신 직접 검증이 용이합니다. 이 주제에서는 AMI 셀프 서비스 경험을 사용하여 단일 AMI에 대한 제품 목록을 생성하는 방법을 설명합니다. 고객은 AMI를 사용하여 제품이 이미 설치되고 구성된 Amazon EC2 인스턴스를 만듭니다.

**Topics**
+ [사전 조건](#single-ami-prerequisites)
+ [셀프 서비스 경험 이해](#understand-ami-self-service-exp)
+ [리스팅 만들기](#ami-create-product)
+ [추가 리소스](#ami-single-create-resources)

## 사전 조건
<a name="single-ami-prerequisites"></a>

AMI 제품 목록을 생성하려면 먼저 다음과 같은 필수 조건을 충족해야 합니다.

1.  AWS Marketplace Management Portal에 대한 액세스 권한이 있습니다. 판매자로 등록하고 판매하는 제품을 관리하는 데 사용하는 도구입니다 AWS Marketplace. 에 액세스하는 방법에 대한 자세한 내용은 단원을 AWS Marketplace Management Portal참조하십시오[AWS Marketplace 판매자를 위한 정책 및 권한](detailed-management-portal-permissions.md).

1. 판매자로 등록하고, 제품 요금을 청구하려면 세금 및 은행 정보를 제출합니다. 판매자가 되는 방법에 대해 자세히 알아보려면 [AWS Marketplace 판매자로 시작하기](user-guide-for-sellers.md) 섹션을 참조하세요.

1. 판매하고 싶은 제품을 보유하고 있습니다. AMI 기반 제품의 경우 이는 일반적으로 서버 소프트웨어를 만들거나 수정했으며 고객이 사용할 AMI를 만들었다는 뜻입니다. 에서 사용할 AMI 준비에 대한 자세한 내용은 섹션을 AWS Marketplace참조하세요[와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace](best-practices-for-building-your-amis.md).

## 셀프 서비스 경험 이해
<a name="understand-ami-self-service-exp"></a>

셀프 서비스 경험은 제품을 생성하는 과정을 안내합니다 AWS Marketplace. 단계를 진행하면서 AWS 리전인스턴스 유형 및 AMI 세부 정보와 같은 제품 정보 및 AMI 배포 설정을 지정합니다. 요금, 국가 가용성, EULA 및 환불 정책을 포함한 거래 세부 정보도 구성합니다. 옵션으로 ID의 허용 목록을 지정 AWS 계정 IDs 하여 제품이 **제한** 상태인 동안 제품에 액세스하고 테스트할 수 있습니다.

시작하기 전에, 셀프 서비스 경험의 다음과 같은 주요 측면을 검토합니다.
+ 현재 단계의 필수 필드를 모두 입력한 후에만 다음 단계로 이동할 수 있습니다. 각 단계가 끝날 때 페이지 수준 검증이 진행되기 때문입니다. 완료되지 않은 단계는 저장하거나 제출할 수 없습니다.
+ 프로세스의 모든 단계를 완료하지 못했는데 세션을 종료해야 하는 경우 **저장 후 종료**를 선택하여 완료한 단계를 스테이징 영역에 제출할 수 있습니다.
+ 완료되지 않아 검증을 통과하지 못한 단계는 시스템에 제출되지 않습니다. 일부만 완료된 단계는 유효하지 않으며 저장할 수 없습니다.
+ **저장 후 종료**를 선택하면 **저장 후 종료** 대화 상자에 검증 확인을 통과한 단계가 표시됩니다. 마지막으로 완료하고 검증한 단계까지 검토하고 저장하도록 선택할 수 있습니다. 검증 오류가 있거나 세부 정보가 누락된 경우 **수정**을 선택하여 해당 단계로 돌아갈 수 있습니다.
+ **저장 후 종료**하면 요청이 처리되는 동안 검토됩니다. 처리가 완료될 때까지 몇 분 또는 몇 시간이 걸릴 수 있습니다. 요청이 성공하기 전에는 단계를 계속하거나 변경할 수 없습니다. 첫 번째 **저장 후 종료**의 요청은 완료한 단계와 병렬로 제품을 생성하는 것입니다.
  + 요청이 **성공**하면 저장이 완료된 것입니다. **제품 개요** 페이지에서 변경을 재개하려면 **제품 생성 재개**를 선택하거나 **변경 요청**을 사용하여 이전 세션에서 전에 제출한 세부 정보를 업데이트합니다. 재개하면 완료한 단계에 녹색 **성공** 레이블이 표시된 것을 볼 수 있습니다. 이전에 제출한 단계를 업데이트하려면 **변경 요청**을 사용합니다. 이 단계를 계속하려면 먼저 이전 **저장 후 종료** 요청을 완료해야 합니다.
+ 모든 단계를 완료했으면 **다음**을 선택하여 리뷰를 볼 수 있습니다. 시스템에서 최종 검증을 수행할 것을 요청하는 **제출**을 선택합니다. **성공** 응답을 받으면 제품이 **제한** 상태로 전환됩니다. 세부 정보 페이지를 보면, 이제 허용 목록에 있는 모든 사용자가 제품을 사용할 수 있다고 나옵니다. 요청이 실패해도 제품은 **준비 중** 상태로 유지되므로 수정한 후 다시 제출해야 합니다.

## 리스팅 만들기
<a name="ami-create-product"></a>

이 섹션의 단계에서는 단일 AMI 제품의 리스팅을 만드는 방법을 설명합니다.

**참고**  
현재 단계의 필수 필드를 모두 완료한 후에만 다음 단계로 이동할 수 있습니다. 완료되지 않은 단계는 저장하거나 제출할 수 없습니다. 프로세스의 모든 단계를 완료하기 전에 세션을 종료해야 하는 경우 **저장 후 종료**를 선택하여 완료한 단계를 스테이징 영역에 제출할 수 있습니다. 자세한 내용은 [셀프 서비스 경험 이해](#understand-ami-self-service-exp) 단원을 참조하세요.

**단일 AMI 제품을 만들려면**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. **제품** 메뉴에서 **서버**를 선택합니다. 또는 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 직접 이동할 수도 있습니다.

1. **서버 제품** 탭에서 **서버 제품 생성**을 선택하고 **Amazon Machine Image(AMI)**를 선택한 다음, 단일 AMI 제품의 라이선스 유형 중 하나를 선택합니다.
   + **기존 보유 라이선스 사용(BYOL)** - 사용자가 외부에서 사용자로부터 라이선스를 받는 제품입니다 AWS Marketplace. 라이선스는 유료일 수도 있고 무료일 수도 있습니다.
   + **무료** - 구독자가 무료로 사용할 수 있는 제품입니다. (연결된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 기타 AWS 리소스에 대한 요금은 계속 지불합니다.)
   + **시간당 또는 시간당-연간 지불 -** 구매자가 연간 계약으로 시간당 또는 시간별로 지불하는 제품입니다.는 AMI의 제품 코드를 기반으로 측정을 AWS 수행합니다.
   + **월별 결제** - AWS에서 구매자에게 월 단위로 요금을 청구하는 제품입니다.
   + **유료 사용량** - 사용자, 데이터, 대역폭 또는 호스트의 네 가지 사용량 범주 중 하나와 함께 제공한 값에 대해 소프트웨어의 요금이 직접 부과됩니다. 제품에 대해 최대 24개의 차원을 정의할 수 있습니다. 모든 요금은 고객에 의해 발생합니다.
   + **계약 요금이 적용되는 AMI** - 구매자가 선결제 요금을 지불하는 단일 AMI 제품 또는 CloudFormation 스택이 있는 단일 AMI입니다.

1. 셀프 서비스 경험은 AWS Marketplace 목록 생성 단계를 안내합니다. 제품 정보(메타데이터), 제품 배포 세부 정보(AWS 리전, 인스턴스 및 AMI 세부 정보) 및 공개 제안 세부 정보(가격, EULA, 국가별 가용성, EULA, 환불)를 입력해야 합니다. 선택 사항으로, 허용 목록에 계정을 추가하여 제품을 테스트할 수 있습니다. 프로세스의 다음 단계로 이동하려면 각 단계를 완료해야 합니다.
**참고**  
프로세스의 모든 단계를 완료하지 못했는데 세션을 종료해야 하는 경우 **저장 후 종료** 기능을 사용하여 완료한 단계를 스테이징 영역에 제출할 수 있습니다. 이렇게 하면 입력한 정보를 검증하라는 요청이 생성됩니다. 요청이 진행 중인 동안에는 제품을 편집할 수 없습니다. 요청이 성공하면 **제품 생성 재개**를 선택하여 제품을 계속 생성할 수 있습니다.  
요청이 실패하면 검증 오류로 인해 제품이 업데이트되지 않았다는 뜻입니다. 이 내용은 제품의 요청 로그에서 확인할 수 있습니다. 오류를 보는 요청을 선택하고, **작업**에서 **새로 복사**를 선택하여 오류를 수정하고 요청을 다시 제출할 수 있습니다. 단계를 재개하면 마지막 세션에서 저장한 단계의 다음 단계부터 계속할 수 있습니다. 이전 단계를 업데이트하려면 제품 개요 페이지로 이동한 후 변경 요청을 제출하여 이전에 제출한 단계를 업데이트합니다.

1. 모든 변경 요청 단계에 필요한 정보를 입력한 후 **제출**을 선택합니다. 이 제출은 AWS Marketplace 카탈로그 시스템에 정보를 검증하고 검증에 통과할 경우 제품을 **제한** 상태로 릴리스하라는 요청을 생성합니다. 요청이 처리되는 동안에는 제품을 편집할 수 없습니다. 요청이 성공하면 제품이 **제한** 상태로 전환됩니다.
   + 제품이 처음 게시되면 사용자 AWS 계정 (제품을 생성하는 데 사용한 계정)와 AWS Marketplace 판매자 운영 팀의 테스트 계정만 제품에 액세스할 수 있습니다. **서버 제품** 페이지에서 제품을 보는 경우 **에서 보기를 AWS Marketplace** 선택하여 구매자를 AWS Marketplace 위해에 표시되는 제품 세부 정보를 볼 수 있습니다. 이 세부 정보 목록은 다른 AWS Marketplace 사용자에게 표시되지 않습니다.
   + 이 기능을 사용하면 제품을 테스트(및 여러 버전을 게시하여 테스트)한 후 공개적으로 릴리스할 수 있습니다.

1. 제품을 **제한** 상태에서 테스트하고 AWS Marketplace [AMI 기반 제품 요구 사항](https://docs.aws.amazon.com/marketplace/latest/userguide/product-and-ami-policies.html) 및 [제품 체크리스트](https://docs.aws.amazon.com/marketplace/latest/userguide/aws-marketplace-listing-checklist.html)를 따르는지 확인합니다. 그런 다음, 제품을 **퍼블릭**에 게시하도록 요청하려면 **표시 여부 업데이트**를 선택합니다. AWS Marketplace 판매자 운영 팀은 **공개**로 승인하기 전에 제품을 검토해야 합니다.
**참고**  
제품 확인 및 게시는 AWS Marketplace 판매자 운영 팀에서 처리하는 수동 프로세스입니다. 오류가 없으면 초기 제품 버전을 게시하는 데 7\$110영업일이 소요될 수 있습니다. 시기에 대한 자세한 내용은 [시간 및 기대](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#timing-and-expectations)를 참조하세요.

단일 AMI 제품 및 제품 정보를 준비하고 제출하는 자세한 내용은 [추가 리소스](#ami-single-create-resources) 섹션을 참조하세요.

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

게시할 제품 정보를 준비하고 제출하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [용 제품 준비 AWS Marketplace](product-preparation.md)
+ [에 게시할 제품 제출 AWS Marketplace](product-submission.md)

단일 AMI 제품을 AWS Marketplace에 제출할 수 있도록 준비하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace](best-practices-for-building-your-amis.md)
+ [AWS Marketplace의 AMI 제픔 체크리스트](aws-marketplace-listing-checklist.md)
+ [에 대한 AMI 기반 제품 요구 사항 AWS Marketplace](product-and-ami-policies.md)

# 제품에 CloudFormation 템플릿 추가
<a name="cloudformation"></a>

AWS Marketplace 판매자는 AWS CloudFormation 템플릿을 사용하여 AWS Marketplace 구매자에게 제공되는 AMI 기반 제품을 나열할 수 있습니다. AMI 기반 제품에 CloudFormation 템플릿을 추가하면 구매자가 리소스와 종속성을 수동으로 구성하지 않고도 솔루션을 배포할 수 있습니다. 템플릿을 사용하여 제품에 대한 클러스터 또는 분산형 아키텍처를 정의할 있고, 또는 다른 AMI 조합이나 제품 구성을 선택할 수 있습니다. 하나의 AMI 솔루션에는 최대 3개의 CloudFormation 템플릿이 포함될 수 있습니다.

CloudFormation 템플릿을 구성하여 단일 Amazon Machine Image(AMI)를 연결된 구성 파일 및 Lambda 함수와 함께 제공할 수 있습니다. 또한 각 템플릿에 대한 아키텍처 다이어그램을 포함해야 합니다.

**Topics**
+ [CloudFormation 템플릿 준비](#aws-cloudformation-template-preparation)
+ [아키텍처 다이어그램](#topology-diagram)
+ [기존 제품의 CloudFormation 템플릿 변환](#convert-cloudformation-templates)
+ [서버리스 애플리케이션 구성 요소 추가](cloudformation-serverless-application.md)

## CloudFormation 템플릿 준비
<a name="aws-cloudformation-template-preparation"></a>

CloudFormation 템플릿을 빌드하려면 템플릿 사전 조건을 충족하고 필수 입력 및 보안 파라미터를 제공해야 합니다. CloudFormation 템플릿을 제출할 때 다음 섹션의 지침을 따릅니다.

### 템플릿 사전 조건
<a name="template-prerequisites"></a>
+ **제품에 대해 AWS 리전 활성화된 모든**의 CloudFormation 콘솔을 통해 템플릿이 성공적으로 시작되었는지 확인합니다. [TaskCat 도구](https://github.com/aws-quickstart/taskcat)를 사용하여 템플릿을 테스트할 수 있습니다.
+ CloudFormation 템플릿에 포함된 AMI는 게시하는 제품의 AMI이거나 최신 Amazon Linux 2와 같은 AWS 관리형 AMI여야 합니다. 사용자 또는 다른 제3자가 소유하고 공유하는 AMI 또는 커뮤니티 AMI는 포함하지 마세요. AWS 관리형 AMI를 사용하려면 AMI IDs를 하드코딩하는 대신 [AWS Systems Manager Parameter Store에서 퍼블릭 파라미터를](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters.html) 사용합니다. 예를 들어, AMI ID를 지정하는 CloudFormation 템플릿 내에서 동적 참조 `ImageId: '{{resolve:ssm:/aws/service/ecs/optimized-ami/amazon-linux-2/recommended/image_id}}'`를 사용합니다.
+ 특정 가용 영역(AZ) 사용 시 의존하지 않도록 템플릿을 빌드합니다. 모든 고객이 모든 AZ에 액세스할 수 있는 것이 아니고, AZ는 다른 계정에 대해 다르게 매핑됩니다.
+ Auto Scaling 그룹을 사용하여 클러스터 솔루션을 빌드하는 경우 규모 조정 이벤트를 고려하는 것이 좋습니다. 새 노드가 자동으로 실행 중인 클러스터에 연결됩니다.
+ 단일 노드 제품인 경우에도 [Auto Scaling 그룹](https://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg-from-instance.html)을 사용하는 것이 좋습니다.
+ 솔루션에 여러 인스턴스의 클러스터가 포함된 경우 낮은 네트워크 지연 시간, 높은 네트워크 처리량 또는 인스턴스에서 두 가지 모두를 원할 때 배치 그룹 사용을 고려하세요.
+  AWS Marketplace 팀이 쉽게 검토하고 고객에게 투명성을 제공하려면 **UserData** 섹션에 의견을 추가하는 것이 좋습니다.

### AMI 세부 정보에 대한 요구 사항
<a name="ami-requirements-sse"></a>

**참고**  
판매자 포털의 [서버 제품](https://aws.amazon.com//marketplace/management/products/server) 페이지에서 **Amazon Machine Image(AMI) 또는 CloudFormation을 사용하는 AMI**를 생성하고 [제품 로드 양식](https://docs.aws.amazon.com//marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product)을 다운로드하라는 메시지가 표시되면, [제품 로드 양식을 사용한 AMI 세부 정보 요구 사항](#ami-requirements-product-load-form) 섹션을 참조하세요.

[AWS::EC2::Instance](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html), [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html) 및 [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) 리소스와 같은 EC2 인스턴스에 AMI를 배포하는 리소스의 `ImageId` 속성을 지정할 때는 [템플릿 파라미터](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)를 참조해야 합니다. 파라미터 유형은 `AWS::EC2::Image::Id`, `AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>` 또는 `String` 중 하나여야 합니다.

이 템플릿 파라미터에 유효한 파라미터 이름을 지정할 수 있습니다.는 템플릿을 자체 Amazon S3 버킷에 AWS Marketplace 복사하고 지정된 파라미터를 [AWS Systems Manager 파라미터 스토어](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html) 파라미터로 바꿉니다. AWS Marketplace 또한는 설명 및 제약 조건 텍스트를 업데이트하여 템플릿을 배포하는 구매자에게 올바른 값을 명확히 합니다. 구매자가 판매자의 템플릿을 배포하면 해당 파라미터는 게시된 제품의 AWS 리전별 AMI ID로 확인됩니다.

다음 템플릿 예제에서는 내장 함수 [Ref](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)를 사용하여 템플릿 파라미터를 참조하는 `ImageId` 속성을 보여줍니다.

YAML 예제:

```
Parameters:
  ImageId:
    Type: AWS::EC2::Image::Id
    Default: ami-example1234567890
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref ImageId
```

JSON 예제:

```
{
  "Parameters": {
    "ImageId": {
      "Type": "AWS::EC2::Image::Id",
      "Default": "ami-example1234567890"
    }
  },
  "Resources": {
    "MyInstance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": {
          "Ref": "ImageId"
        }
      }
    }
  }
}
```

루트 스택 대신 [중첩 스택](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) 내에 EC2 인스턴스를 배포하는 경우, AMI ID는 루트 스택에서 값을 동적으로 상속해야 합니다. 루트 및 중첩 스택을 편집하여, 루트 스택에서 템플릿 파라미터 값을 설정하면 이 중첩 스택에 사용된 AMI ID가 재정의되도록 합니다.

### 제품 로드 양식을 사용한 AMI 세부 정보 요구 사항
<a name="ami-requirements-product-load-form"></a>

**참고**  
판매자 포털의 [서버 제품](https://aws.amazon.com//marketplace/management/products/server) 페이지에서 **Amazon Machine Image(AMI) 또는 CloudFormation을 사용하는 AMI**를 생성하고 [제품 로드 양식을](https://docs.aws.amazon.com//marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product) 다운로드하라는 메시지가 즉시 표시되지 않으면, [AMI 세부 정보에 대한 요구 사항](#ami-requirements-sse) 섹션을 참조하세요.

AMI는 각 리전의 매핑 테이블에 있어야 합니다. AWS Marketplace 팀은 AMI IDs 후 업데이트합니다. 소스 AMI는 `us-east-1` 리전에 있어야 합니다. 다른 리전에서는 자리 표시자를 사용할 수 있습니다.

YAML 예제:

```
Mappings: 
  RegionMap: 
      us-east-1: 
          ImageId: ami-0123456789abcdef0
      us-west-1: 
          ImageId: ami-xxxxxxxxxxxxxxxxx
      eu-west-1: 
          ImageId: ami-xxxxxxxxxxxxxxxxx
      ap-southeast-1: 
          ImageId: ami-xxxxxxxxxxxxxxxxx
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !FindInMap 
        - RegionMap
        - !Ref AWS::Region
        - ImageId
```

### 중첩 스택 템플릿에 대한 요구 사항
<a name="nested-stack-template-requirements"></a>

**참고**  
이 섹션은 [제품 로드 양식](https://docs.aws.amazon.com//marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product)을 사용하지 않는 요금 모델에만 적용됩니다. 제품 로드 양식을 *사용하는* 요금 모델의 경우, 중첩 스택 `TemplateURL` 속성에는 고정 문자열만 허용됩니다.

템플릿에 [중첩 스택](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)이 포함된 경우, 중첩 스택 리소스의 `TemplateURL` 속성은 Amazon S3 버킷 이름, 버킷 리전 및 Amazon S3 객체 키 접두사에 대한 템플릿 파라미터를 참조해야 합니다. 버킷 이름의 파라미터 이름은 `MPS3BucketName`이어야 하며, 버킷 리전은 `MPS3BucketRegion`, 객체 키 접두사는 `MPS3KeyPrefix`이어야 합니다.

중첩된 템플릿이 저장되는 Amazon S3 버킷에 맞게 이러한 파라미터의 기본값을 설정합니다. 모든 중첩 템플릿은 공개적으로 액세스할 수 있어야 합니다. 게시할 템플릿을 제출하면는 템플릿을 자체 Amazon S3 버킷에 AWS Marketplace 복사하고 기본값과 허용된 값이 복사본이 저장되는 위치에 맞게 설정되도록 세 파라미터의 속성을 수정합니다. AWS Marketplace 또한는 설명 및 제약 조건 텍스트를 업데이트하여 템플릿을 배포하는 구매자에게 올바른 값을 명확히 합니다.

여러 수준의 중첩 스택이 있는 경우, 추가 중첩 스택을 생성하는 모든 중첩 스택은 `TemplateURL` 속성이 루트 스택에서 Amazon S3 버킷 이름, Amazon S3 버킷 리전 및 Amazon S3 객체 키의 값을 동적으로 상속하도록 구성해야 합니다. 루트 및 중첩 스택을 편집하여, 루트 스택에서 템플릿 파라미터 `MPS3BucketName`, `MPS3BucketRegion`, `MPS3KeyPrefix`의 값을 설정하면 이 중첩 스택에서 사용하는 URL의 각 값을 재정의하고, 추가 중첩 스택을 생성하도록 합니다.

다음 템플릿 예제에서는 내장 함수 [Fn::Sub](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html)를 사용하여 템플릿 파라미터를 참조하는 `TemplateURL` 속성을 보여줍니다.

YAML 예제:

```
AWSTemplateFormatVersion: '2010-09-09'
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: AWS Marketplace Parameters
        Parameters:
          - ImageId
          - MPS3BucketName
          - MPS3BucketRegion
          - MPS3KeyPrefix
Parameters:
  ImageId:
    Type: AWS::EC2::Image::Id
    Default: ami-example1234567890
    Description: The AMI that will be used to launch EC2 resources.
  MPS3BucketName:
    Type: String
    Default: sellerbucket
    Description: Name of the S3 bucket for your copy of the nested templates.
  MPS3BucketRegion:
    Type: String
    Default: us-east-1
    Description: AWS Region where the S3 bucket for your copy of the nested templates is hosted.
  MPS3KeyPrefix:
    Type: String
    Default: sellerproductfolder/
    Description: S3 key prefix that is used to simulate a folder for your copy of the nested templates.
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref ImageId
  NestedStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: !Sub https://${MPS3BucketName}.s3.${MPS3BucketRegion}.${AWS::URLSuffix}/${MPS3KeyPrefix}nested-template.yaml
```

JSON 예제:

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Metadata": {
        "AWS::CloudFormation::Interface": {
            "ParameterGroups": [
                {
                    "Label": {
                        "default": "AWS Marketplace Parameters"
                    },
                    "Parameters": [
                        "ImageId",
                        "MPS3BucketName",
                        "MPS3BucketRegion",
                        "MPS3KeyPrefix"
                    ]
                }
            ]
        }
    },
    "Parameters": {
        "ImageId": {
            "Type": "AWS::EC2::Image::Id",
            "Default": "ami-example1234567890",
            "Description": "The AMI that will be used to launch EC2 resources."
        },
        "MPS3BucketName": {
            "Type": "String",
            "Default": "sellerbucket",
            "Description": "Name of the S3 bucket for your copy of the nested templates."
        },
        "MPS3BucketRegion": {
            "Type": "String",
            "Default": "us-east-1",
            "Description": "AWS Region where the S3 bucket for your copy of the nested templates is hosted."
        },
        "MPS3KeyPrefix": {
            "Type": "String",
            "Default": "sellerproductfolder/",
            "Description": "S3 key prefix that is used to simulate a folder for your copy of the nested templates."
        }
    },
    "Resources": {
        "EC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": {
                    "Ref": "ImageId"
                }
            }
        },
        "NestedStack": {
            "Type": "AWS::CloudFormation::Stack",
            "Properties": {
                "TemplateURL": {
                    "Fn::Sub": "https://${MPS3BucketName}.s3.${MPS3BucketRegion}.${AWS::URLSuffix}/${MPS3KeyPrefix}nested-template.yaml"
                }
            }
        }
    }
}
```

**참고**  
[AWS::CloudFormation::Interface](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html)는 구매자가 템플릿을 배포할 때 AWS CloudFormation 콘솔에서 파라미터를 그룹화하고 정렬하는 방법을 정의하는 데 사용됩니다.

### 템플릿 입력 파라미터
<a name="template-input-parameters"></a>
+ 템플릿에 대한 입력 파라미터에는 AWS Marketplace 고객의 자격 증명(예: 암호, 퍼블릭 키, 프라이빗 키 또는 인증서)이 포함되어서는 안 됩니다 AWS .
+ 암호와 같은 민감한 입력 파라미터의 경우 `NoEcho` 속성을 선택하고 더 강력한 정규 표현식을 활성화합니다. 기타 입력 파타미터의 경우 적절한 헬퍼 텍스트와 함께 가장 일반적인 입력을 설정합니다.
+ 사용 가능한 경우 입력에 CloudFormation 파라미터 유형을 사용합니다.
+ `AWS::CloudFormation::Interface`를 사용하여 입력 파라미터를 그룹화 및 정렬하세요.
+ 다음 입력 파라미터의 기본값을 설정하지 마세요.
**참고**  
고객이 입력 파라미터로 제공해야 합니다.
  + 퍼블릭 인터넷에서 원격 액세스 포트로 진입할 수 있는 기본 CIDR 범위
  + 퍼블릭 인터넷에서 데이터베이스 연결 포트로 진입할 수 있는 기본 CIDR 범위
  + 사용자 또는 데이터베이스의 기본 암호

### 네트워크 및 보안 파라미터
<a name="networksecurity-parameters"></a>
+ 기본 SSH 포트(22) 또는 RDP 포트(3389)가 0.0.0.0에 개방되지 않았는지 확인합니다.
+ 기본 가상 프라이빗 클라우드(VPC)를 사용하는 대신 적절한 액세스 통제 목록(ACL) 및 보안 그룹을 포함하여 VPC를 빌드하는 것이 좋습니다.
+ 템플릿은 사용자에게 장기 액세스 키를 요청하거나 AWS 리소스에 액세스하기 위해 생성할 수 없습니다. AMI 애플리케이션이 구매자 계정의 AWS 서비스에 액세스해야 하는 경우 [ Amazon EC2에 대한 IAM 역할을](/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) 사용해야 합니다.
+ IAM 역할 및 정책을 설정하여 [최소 권한을 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)하고 절대적으로 필요한 경우에만 쓰기 액세스를 활성화합니다. 예를 들어 애플리케이션에 `S3:GET`, `PUT` 및 `DELETE` 작업만이 필요한 경우 이러한 작업만을 지정합니다. 이 경우 `S3:*` 사용을 권장하지 않습니다.

템플릿을 받은 후는 제품 구성 및 정보를 AWS Marketplace 검증하고 필요한 개정에 대한 피드백을 제공합니다.

## 아키텍처 다이어그램
<a name="topology-diagram"></a>

각 템플릿의 아키텍처 다이어그램을 제공해야 합니다. 다이어그래밍에 대한 자세한 내용은 [아키텍처 다이어그래밍이란 무엇인가요?](https://aws.amazon.com/what-is/architecture-diagramming/)를 참조하세요.

이 다이어그램은 다음 조건을 충족해야 합니다.
+ 표준 배포를 보여줍니다 AWS.
+ 리소스가 배포되는 논리적 위치를 보여줍니다. 예를 들어 Amazon EC2 인스턴스와 같은 리소스는 올바른 서브넷에 있습니다.
+  CloudFormation 템플릿을 통해 AWS 서비스 배포된 각에 대해 최신 AWS 제품 아이콘을 사용합니다. 현재 아키텍처 아이콘 세트를 다운로드하려면 [AWS 아키텍처 아이콘](https://aws.amazon.com/architecture/icons/)을 참조하세요.
+  CloudFormation 템플릿에서 배포한 모든 서비스에 대한 메타데이터를 포함합니다.
+  CloudFormation 템플릿에서 배포한 모든 네트워크, VPCs 및 서브넷을 포함합니다.
+ 타사 자산, API, 온프레미스, 하이브리드 자산을 비롯한 통합 지점을 표시합니다.
+ 다이어그램 크기는 1100 x 700픽셀이어야 합니다. 다이어그램을 늘리거나 잘라내지 않고 원래 비율을 유지합니다.

## 기존 제품의 CloudFormation 템플릿 변환
<a name="convert-cloudformation-templates"></a>

**참고**  
이 섹션은 CloudFormation 제품이 포함된 기존 AMI를 보유한 판매자를 위한 것으로 이러한 제품은 [제품 로드 양식](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product)을 사용하여 템플릿을 게시했지만 이제 제품 로드 양식을 사용하지 않고 해당 템플릿을 업데이트합니다. 새 제품을 게시하는 경우 [CloudFormation 템플릿 준비](https://docs.aws.amazon.com/marketplace/latest/userguide/cloudformation.html#aws-cloudformation-template-preparation)를 참조하세요.  
판매자 포털의 [서버 제품](https://aws.amazon.com//marketplace/management/products/server) 페이지에서 **Amazon Machine Image(AMI) 또는 CloudFormation을 사용하는 AMI**를 생성하고 [제품 로드 양식](https://docs.aws.amazon.com//marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product)을 다운로드하라는 메시지가 표시되면, [제품 로드 양식을 사용한 AMI 세부 정보 요구 사항](#ami-requirements-product-load-form) 섹션을 참조하세요.

셀프 서비스 환경을 사용하여 이전에 [제품 로드 양식](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#aws-cloudformation-launched-product-free-or-paid-or-usage-based-paid-ami-product)으로 게시한 기존 제품을 업데이트하려면, 기존 CloudFormation 템플릿을 변경해야 합니다.

다음 표에서는 제품 로드 양식 사용과 셀프 서비스 환경 간의 차이점을 설명합니다.


****  

|  | 제품 로드 양식 | 셀프 서비스 환경 | 
| --- | --- | --- | 
| EC2 리소스의 ImageId 속성 값 | AMI ID에 대한 매핑 테이블을 참조합니다. 자세한 내용은 [제품 로드 양식을 사용한 AMI 세부 정보 요구 사항](#ami-requirements-product-load-form) 단원을 참조하십시오. | AMI ID에 대한 템플릿 파라미터를 참조합니다. 자세한 내용은 [AMI 세부 정보에 대한 요구 사항](#ami-requirements-sse) 단원을 참조하십시오. | 
| 중첩 스택의 TemplateURL 속성 값 | 고정 문자열이어야 하며 내장 함수를 사용할 수 없습니다. | 내장 함수를 사용하여 동적일 수 있습니다. 템플릿 파라미터 세트를 참조해야 합니다. 자세한 내용은 [중첩 스택 템플릿에 대한 요구 사항](#nested-stack-template-requirements) 섹션을 참조하세요. | 

다음 예제 템플릿은 제품 로드 양식을 사용하여 템플릿을 게시한 기존 제품의 예를 보여줍니다. 이 예제에서 AMI ID는 `ami-example123456`이고, 중첩 템플릿은 `https://sellerbucket.s3.us-east-1.amazonaws.com/sellerproductfolder/nested-template.yaml` 위치에 있는 판매자의 S3 버킷에 있습니다.

제품 로드 양식으로 게시된 YAML 예제:

```
AWSTemplateFormatVersion: '2010-09-09'
Mappings:
  RegionMap:
    us-east-1:
      AMI: ami-example123456
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !FindInMap 
        - RegionMap
        - !Ref AWS::Region
        - AMI
  NestedStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: https://sellerbucket.s3.us-east-1.amazonaws.com/sellerproductfolder/nested-template.yaml
```

제품 로드 양식으로 게시된 JSON 예제:

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Mappings": {
        "RegionMap": {
            "us-east-1": {
                "AMI": "ami-example123456"
            }
        }
    },
    "Resources": {
        "EC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": {
                    "Fn::FindInMap": [
                        "RegionMap",
                        {
                            "Ref": "AWS::Region"
                        },
                        "AMI"
                    ]
                }
            }
        },
        "NestedStack": {
            "Type": "AWS::CloudFormation::Stack",
            "Properties": {
                "TemplateURL": "https://sellerbucket.s3.us-east-1.amazonaws.com/sellerproductfolder/nested-template.yaml"
            }
        }
    }
}
```

다음 템플릿 예제에서는 셀프 서비스 환경을 사용하여 제품을 업데이트하는 데 필요한 변경 사항을 보여줍니다.

셀프 서비스 환경으로 게시된 YAML 예제:

```
AWSTemplateFormatVersion: '2010-09-09'
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
      - Label:
          default: AWS Marketplace Parameters
        Parameters:
          - ImageId
          - MPS3BucketName
          - MPS3BucketRegion
          - MPS3KeyPrefix
Parameters:
  ImageId:
    Type: AWS::EC2::Image::Id
    Default: ami-example123456
    Description: The AMI that will be used to launch EC2 resources.
  MPS3BucketName:
    Type: String
    Default: sellerbucket
    Description: Name of the S3 bucket for your copy of the nested templates.
  MPS3BucketRegion:
    Type: String
    Default: us-east-1
    Description: AWS Region where the S3 bucket for your copy of the nested templates is hosted.
  MPS3KeyPrefix:
    Type: String
    Default: sellerproductfolder/
    Description: S3 key prefix that is used to simulate a folder for your copy of the nested templates.
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref ImageId
  NestedStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: !Sub https://${MPS3BucketName}.s3.${MPS3BucketRegion}.${AWS::URLSuffix}/${MPS3KeyPrefix}nested-template.yaml
```

셀프 서비스 환경으로 게시된 JSON 예제:

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Metadata": {
        "AWS::CloudFormation::Interface": {
            "ParameterGroups": [
                {
                    "Label": {
                        "default": "AWS Marketplace Parameters"
                    },
                    "Parameters": [
                        "ImageId",
                        "MPS3BucketName",
                        "MPS3BucketRegion",
                        "MPS3KeyPrefix"
                    ]
                }
            ]
        }
    },
    "Parameters": {
        "ImageId": {
            "Type": "AWS::EC2::Image::Id",
            "Default": "ami-example123456",
            "Description": "The AMI that will be used to launch EC2 resources."
        },
        "MPS3BucketName": {
            "Type": "String",
            "Default": "sellerbucket",
            "Description": "Name of the S3 bucket for your copy of the nested templates."
        },
        "MPS3BucketRegion": {
            "Type": "String",
            "Default": "us-east-1",
            "Description": "AWS Region where the S3 bucket for your copy of the nested templates is hosted."
        },
        "MPS3KeyPrefix": {
            "Type": "String",
            "Default": "sellerproductfolder/",
            "Description": "S3 key prefix that is used to simulate a folder for your copy of the nested templates."
        }
    },
    "Resources": {
        "EC2Instance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": {
                    "Ref": "ImageId"
                }
            }
        },
        "NestedStack": {
            "Type": "AWS::CloudFormation::Stack",
            "Properties": {
                "TemplateURL": {
                    "Fn::Sub": "https://${MPS3BucketName}.s3.${MPS3BucketRegion}.${AWS::URLSuffix}/${MPS3KeyPrefix}nested-template.yaml"
                }
            }
        }
    }
}
```

# 서버리스 애플리케이션 구성 요소 추가
<a name="cloudformation-serverless-application"></a>

**중요**  
AWS Marketplace 는 더 이상 리소스를 배포하는 CloudFormation 템플릿으로 신제품 게시를 지원하지 않습니다 AWS Serverless Application Repository. 판매자는 향후 발표될 날짜 AWS Serverless Application Repository 까지 리소스를 배포하는 CloudFormation 템플릿으로 기존 제품을 계속 게시할 수 있습니다.

제품에 서버리스 구성 요소가 통합된 상태에서 AWS CloudFormation 템플릿을 사용하여 제공되는 Amazon Machine Image(AMI)가 포함된 제품을 생성할 수 있습니다. 예를 들어 AMI가 컨트롤러 서버로 구성된 제품을 생성하고 CloudFormation 스택으로 제공할 수 있습니다. 스택을 생성하는 데 사용되는 CloudFormation 템플릿에는 서버의 이벤트에 의해 트리거되는 AWS Lambda 함수를 설정하는 정의가 포함될 수 있습니다. 이 접근 방식을 사용하여 제품을 설계하면 아키텍처를 간소화할 수 있으므로 구매자가 손쉽게 시작할 수 있습니다. 또한 제품을 손쉽게 업데이트할 수 있습니다. 다음 섹션에서는 이러한 유형의 제품을 만들고 생성하는 방법을 보여줍니다.

제품에 대한 AMI를 생성하는 방법은 [AWS Marketplace의 AMI 기반 제품](ami-products.md) 섹션을 참조하세요. 제품의 AWS CloudFormation 템플릿 작성에 대한 자세한 내용은 섹션을 참조하세요[제품에 CloudFormation 템플릿 추가](cloudformation.md).

서버리스 애플리케이션을 정의할 때에 저장하는 AWS Serverless Application Model (AWS SAM) 템플릿을 사용합니다 AWS Serverless Application Repository. AWS SAM 는 서버리스 애플리케이션을 빌드하기 위한 오픈 소스 프레임워크입니다. 배포 중에 AWS Serverless Application Model 는 구문을 AWS SAM 변환하고 CloudFormation 구문으로 확장합니다. AWS Serverless Application Repository 는 서버리스 애플리케이션을 위한 관리형 리포지토리입니다. 이 리포지토리를 사용하면 재사용 가능한 애플리케이션을 저장 및 공유할 수 있으므로 구매자가 서버리스 아키텍처를 어셈블하고 배포할 수 있습니다.

**참고**  
AWS Marketplace 는 목록이 생성되기 전에 제품을 검토하고 검증합니다. 제안이 나열되기 전에 해결해야 하는 문제가 있는 경우 이메일 메시지를 보내 드립니다.
구독 이행의 일환으로 AMIs, 서버리스 애플리케이션 및 CloudFormation 템플릿을 각각 AWS Marketplace에 있는 소유 리포지토리에 복사합니다 AWS 리전. 구매자가 제품을 구독할 경우 구매자에게 액세스 권한을 부여하고 소프트웨어 업데이트 시 구매자에게 알립니다.

**Topics**
+ [1단계: 서버리스 애플리케이션 만들기](#cloudformation-serverless-application-procedure-step-1)
+ [2단계: 리포지토리에 애플리케이션 게시](#cloudformation-serverless-application-procedure-step-2)
+ [3단계: CloudFormation 템플릿 만들기](#cloudformation-serverless-application-procedure-step-3)
+ [4단계: CloudFormation 템플릿과 구성 파일 제출](#cloudformation-serverless-application-procedure-step-4)
+ [5단계: AWS Serverless Application Repository 애플리케이션 권한 업데이트](#cloudformation-serverless-application-procedure-step-5)
+ [6단계: AMI 공유](#cloudformation-serverless-application-procedure-step-6)
+ [7단계: AMI 및 서버리스 애플리케이션과 함께 CloudFormation 제품 제출](#cloudformation-serverless-application-procedure-step-7)

## 1단계: 서버리스 애플리케이션 만들기
<a name="cloudformation-serverless-application-procedure-step-1"></a>

첫 번째 단계는 서버리스 애플리케이션을 생성하는 데 사용되는 AWS Lambda 함수를 패키징하는 것입니다. 애플리케이션은 작업을 수행하는 데 함께 작동하는 Lambda 함수, 이벤트 소스 및 기타 리소스의 조합입니다. 서버리스 애플리케이션은 단일 Lambda 함수처럼 간단할 수도 있고 API, 데이터베이스, 이벤트 소스 매핑 등 다른 리소스를 갖춘 여러 기능을 포함할 수도 있습니다.

 AWS SAM 를 사용하여 서버리스 애플리케이션의 모델을 정의합니다. 속성 이름 및 유형에 대한 설명은 GitHub의 [AWS::Serverless::Application](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessapplication) in AWS Labs를 참조하세요. 다음은 단일 Lambda 함수 및 AWS Identity and Access Management (IAM) 역할이 있는 AWS SAM 템플릿의 예입니다.

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An example of SAM template with Lambda function and IAM role

Resources:
  SampleFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: 'com.sampleproject.SampleHandler::handleRequest'
      Runtime: java8
      CodeUri: 's3://amzn-s3-demo-bucket/2EXAMPLE-1234-4b12-ac37-515EXAMPLEe5-lambda.zip'
      Description: Sample Lambda function
      Timeout: 120
      MemorySize: 1024
      Role:
        Fn::GetAtt: [SampleFunctionRole, Arn]

  # Role to execute the Lambda function
  SampleFunctionRole:
    Type: "AWS::IAM::Role"
    Properties:
      AssumeRolePolicyDocument:
        Statement:
          - Effect: "Allow"
            Principal:
              Service:
                - "lambda.amazonaws.com"
            Action: "sts:AssumeRole"
      ManagedPolicyArns:
        - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
      Policies:
        - PolicyName: SFNXDeployWorkflowDefinitionPolicy
          PolicyDocument:
            Statement:
              - Effect: "Allow"
                Action:
                  - "s3:Get*"
                Resource: "*"
      RoleName: "SampleFunctionRole"
```

## 2단계: 리포지토리에 애플리케이션 게시
<a name="cloudformation-serverless-application-procedure-step-2"></a>

애플리케이션을 게시하려면 우선 애플리케이션 코드를 업로드합니다. 코드 아티팩트(예: Lambda 함수, 스크립트, 구성 파일)를 계정 소유의 Amazon S3 버킷에 저장합니다. 애플리케이션을 업로드하면 처음에는 프라이빗으로 설정됩니다. 즉, 애플리케이션을 AWS 계정 생성한 에서만 사용할 수 있습니다. 업로드한 아티팩트에 액세스할 수 있는 AWS Serverless Application Repository 권한을 부여하는 IAM 정책을 생성해야 합니다.

**서버리스 애플리케이션을 서버리스 애플리케이션 리포지토리에 게시하려면**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. 애플리케이션을 패키징하는 데 사용한 Amazon S3 버킷을 선택합니다.

1. **권한** 탭을 선택합니다.

1. **버킷 정책(Bucket Policy)**을 선택합니다.

1. 다음 정책 설명 예시를 붙여넣습니다.
**참고**  
이 정책 설명 예시는 다음 단계에서 `aws:SourceAccount` 및 `Resource` 값이 업데이트될 때까지 오류를 일으킵니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service":  "serverlessrepo.amazonaws.com"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
               "Condition" : {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
                   }
               }
           }
       ]
   }
   ```

------

   1. `Resource` 속성 값의 amzn-s3-demo-bucket을 버킷의 버킷 이름으로 바꿉니다.

   1. `Condition` 요소의 *123456789012*을 AWS 계정 ID로 바꿉니다. `Condition` 요소는 AWS Serverless Application Repository 만 지정된의 애플리케이션에 액세스할 수 있는 권한을 갖도록 합니다 AWS 계정.

1. **저장**을 선택합니다.

1. 에서 AWS Serverless Application Repository 콘솔을 엽니다[https://console.aws.amazon.com/serverlessrepo](https://console.aws.amazon.com/serverlessrepo).

1. **Applications(애플리케이션)** 페이지에서 **Publish application(애플리케이션 게시)**을 선택합니다.

1. 필수 필드와 선택 필드(해당하는 경우)를 완료합니다. 필수 필드는 다음과 같습니다.
   +  **애플리케이션 이름** 
   +  **작성자** 
   +  **설명** 
   +  **소스 코드 URL** 
   +  **SAM 템플릿** 

1. **Publish Application(애플리케이션 게시)**을 선택합니다.

**애플리케이션의 후속 버전을 게시하는 방법**

1. 에서 AWS Serverless Application Repository 콘솔을 엽니다[https://console.aws.amazon.com/serverlessrepo](https://console.aws.amazon.com/serverlessrepo).

1. 탐색 창의 **My Applications(내 애플리케이션)**에서 애플리케이션을 선택합니다.

1. [**새 버전 발행**]을 선택합니다.

자세한 내용은 [AWS SAM CLI를 사용하여 서버리스 애플리케이션 게시를](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-publishing-applications.html) 참조하세요.

## 3단계: CloudFormation 템플릿 만들기
<a name="cloudformation-serverless-application-procedure-step-3"></a>

CloudFormation 템플릿을 빌드하려면 템플릿 사전 조건을 충족하고 필수 입력 및 보안 파라미터를 제공해야 합니다. 자세한 내용은 *AWS CloudFormation 사용 설명서*의 [템플릿 구조](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)를 참조하세요.

CloudFormation 템플릿에서 서버리스 애플리케이션 및 AMI를 참조할 수 있습니다. 또한 중첩된 CloudFormation 템플릿을 사용하고 루트 템플릿과 중첩된 템플릿에서 서버리스 애플리케이션을 참조할 수 있습니다. 서버리스 애플리케이션을 참조하려면 AWS SAM 템플릿을 사용합니다. 에서 애플리케이션에 대한 AWS SAM 템플릿을 자동으로 생성할 수 있습니다 AWS Serverless Application Repository. 다음은 템플릿의 예입니다.

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An example root template for a SAR application

Resources:
  SampleSARApplication:
    Type: AWS::Serverless::Application
    Properties:
      Location:
         ApplicationId: arn:aws:serverlessrepo:us-east-1:1234567890:applications/TestApplication
         SemanticVersion: 1.0.0
  SampleEC2Instance:
    Type: AWS::EC2::Instance
      Properties: 
        ImageId: "ami-79fd7eee"
        KeyName: "testkey"
        BlockDeviceMappings: 
          - DeviceName: "/dev/sdm"
            Ebs: 
              VolumeType: "io1"
              Iops: "200"
              DeleteOnTermination: "false"
              VolumeSize: "20"
          - DeviceName: "/dev/sdk"
            NoDevice: {}
```

 AWS SAM 템플릿에는 다음 요소가 포함되어 있습니다.
+  `ApplicationID` - 애플리케이션의 Amazon 리소스 이름(ARN)입니다. 이 정보는 AWS Serverless Application Repository의 **내 애플리케이션** 섹션에 있습니다.
+  `SemanticVersion` - 서버리스 애플리케이션의 버전입니다. AWS Serverless Application Repository의 **내 애플리케이션** 섹션에서 찾을 수 있습니다.
+  `Parameter`(선택 사항) - 애플리케이션 파라미터입니다.

**참고**  
`ApplicationID` 및 `SemanticVersion`의 경우 [내장 함수](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html)가 지원되지 않습니다. 이러한 문자열은 하드코딩해야 합니다. `ApplicationID`는 복제될 때 업데이트됩니다 AWS Marketplace.

CloudFormation 템플릿의 구성 및 스크립트 파일을 참조할 계획이면 다음 형식을 사용합니다. 중첩 템플릿(`AWS::Cloudformation::Stack`)의 경우 내장 함수 없는 `TemplateURLs`만 지원됩니다. 템플릿의 `Parameters` 내용을 메모해 둡니다.

```
AWSTemplateFormatVersion: '2010-09-09'
Metadata:
  Name: Seller test product
Parameters:
  CFTRefFilesBucket:
    Type: String
    Default: "seller-bucket"
  CFTRefFilesBucketKeyPrefix:
    Type: String
    Default: "cftsolutionFolder/additionCFfiles"
Resources:
  TestEc2:
    Type: AWS::EC2::Instance
    Metadata:
      AWS::CloudFormation::Init:
        addCloudAccount:
          files:
            /etc/cfn/set-aia-settings.sh:
              source:
                Fn::Sub:
                - https://${CFTRefFilesBucket}.${S3Region}amazonaws.com/${CFTRefFilesBucketKeyPrefix}/sampleScript.sh
                - S3Region:
                    !If
                    - GovCloudCondition
                    - s3-us-gov-west-1
                    - s3
              owner: root
              mode: '000700'
              authentication: Amazon S3AccessCreds
    ..
    ..
    ..
  SampleNestedStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: 'https://sellerbucket.s3.amazon.com/sellerproductfolder/nestedCft.template'
      Parameters:
        SampleParameter: 'test'
Transform: AWS::Serverless-2016-10-31
```

## 4단계: CloudFormation 템플릿과 구성 파일 제출
<a name="cloudformation-serverless-application-procedure-step-4"></a>

CloudFormation 템플릿과 구성 및 스크립트 파일을 제출하려면 이러한 파일이 저장된 Amazon S3 버킷에 대한 읽기 권한을 AWS Marketplace 에 부여합니다. 이렇게 하려면 다음 권한을 포함하도록 버킷 정책을 업데이트합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service":  "assets.marketplace.amazonaws.com"
            },
            "Action": ["s3:GetObject", "s3:ListBucket"],
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                         "arn:aws:s3:::amzn-s3-demo-bucket/*"]
        }
    ]
}
```

------

## 5단계: AWS Serverless Application Repository 애플리케이션 권한 업데이트
<a name="cloudformation-serverless-application-procedure-step-5"></a>

 AWS Serverless Application Repository 애플리케이션을 제출하려면 애플리케이션을 읽을 수 있는 AWS Marketplace 권한을 부여 AWS Marketplace해야 합니다. 이렇게 하려면 서버리스 애플리케이션에 연결된 정책에 권한을 추가합니다. 두 가지 방법으로 애플리케이션 정책을 업데이트할 수 있습니다.
+ [AWS Serverless Application Repository](https://console.aws.amazon.com/serverlessrepo/home)로 이동합니다. 목록에서 서버리스 애플리케이션을 선택합니다. **공유** 탭을 선택하고 **문 생성**을 선택합니다. **문 구성** 페이지의 **계정 ID** 필드에 서비스 주체 **assets.marketplace.amazonaws.com**을 입력합니다. 그런 다음 **저장**을 선택합니다.
+ 다음 AWS CLI 명령을 사용하여 애플리케이션 정책을 업데이트합니다.

  ```
  aws serverlessrepo put-application-policy \
  --region region \
  --application-id application-arn \
  --statements Principals=assets.marketplace.amazonaws.com,Actions=Deploy
  ```

## 6단계: AMI 공유
<a name="cloudformation-serverless-application-procedure-step-6"></a>

빌드되고에 제출된 모든 AMIs 모든 제품 정책을 준수해야 AWS Marketplace 합니다. 셀프 서비스 AMI 검사는 AWS Marketplace Management Portal에서 사용할 수 있습니다. 이 기능을 사용하면 AMI 검사를 시작할 수 있습니다. 단일 위치에서 분명한 피드백과 함께 검사 결과를 신속하게(대개 1시간 미만) 받을 수 있습니다. AMI를 성공적으로 스캔한 후 제품 로드 양식을 업로드하여 AWS Marketplace 판매자 운영 팀이 처리할 수 있도록 AMI를 제출합니다.

## 7단계: AMI 및 서버리스 애플리케이션과 함께 CloudFormation 제품 제출
<a name="cloudformation-serverless-application-procedure-step-7"></a>

제품을 제출하기 전에 다음에 유의하세요.
+ 각 템플릿의 아키텍처 다이어그램을 제공해야 합니다. 다이어그램은 CloudFormation 템플릿을 통해 배포된 AWS 각 AWS 서비스의 제품 아이콘을 사용해야 합니다. 또한 다이어그램에는 서비스의 메타데이터가 포함되어야 합니다. 공식 AWS 아키텍처 아이콘을 다운로드하려면 [AWS 아키텍처 아이콘](https://aws.amazon.com/architecture/icons)을 참조하세요.
+ 구매자에게 표시되는 각 템플릿의 인프라 추정 비용은 [AWS 요금 계산기](https://calculator.s3.amazonaws.com/index.html)를 사용하여 제공하는 추정치를 바탕으로 계산됩니다. 추정에는 일반 배포에 대한 기본 값과 함께 템플릿의 일부로 배포되는 서비스의 목록이 포함되어야 합니다.
+ 제품 로드 양식을 완료합니다. 제품 로드 양식은 AWS Marketplace Management Portal에서 찾을 수 있습니다. 단일 AMI 제품과 복수 AMI 제품에 다른 제품 로드 양식이 필요합니다. 제품 로드 양식에서 CloudFormation 템플릿의 퍼블릭 URL을 제공합니다. CloudFormation 템플릿은 퍼블릭 URL 형식으로 제출해야 합니다.
+  AWS Marketplace Management Portal 를 사용하여 목록을 제출합니다. **Assets(자산)**에서 **File upload(파일 업로드)**를 선택하고 파일을 첨부한 다음 **Upload(업로드)**를 선택합니다. 템플릿과 메타데이터가 수신되면가 요청 처리를 AWS 시작합니다.

목록을 제출한 후는 제품 로드 양식을 AWS Marketplace 검토하고 검증합니다. 또한는 AMIs 및 서버리스 애플리케이션을 AWS Marketplace 리전화하고 사용자를 대신하여 CloudFormation 템플릿에 대한 리전 매핑을 업데이트합니다. 문제가 발생하면 AWS Marketplace 판매자 운영 팀에서 이메일로 연락을 드립니다.

# AWS Marketplace 판매자로서 AMI 기반 제품 관리
<a name="concept-chapter-servicename"></a>

 AWS Marketplace 판매자는 단일 [Amazon Machine Image(AMIs)](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#AmazonMachineImage) 제품을 관리하고 업데이트할 수 있습니다. AMI 기반 제품에는 하나 이상의 소프트웨어 버전 세트와 제품 전체에 대한 메타데이터가 포함됩니다. 제품을 생성할 때 제품 이름, 설명 및 요금을 AWS Marketplace포함하여에서 해당 속성을 구성합니다. 또한 제품이 관련 검색에서 나타나도록 제품의 적절한 범주를 결정하고 키워드를 추가합니다. 단일 AMI 제품을 만든 후 변경 요청을 제출하여 제품 또는 버전을 변경할 수 있습니다.

AMI 기반 제품에 대해 요청할 수 있는 변경 유형은 다음과 같습니다.
+ 구매자에게 표시되는 제품 정보를 업데이트합니다.
+ 구매자에게 표시되는 버전 정보를 업데이트합니다.
+ 새로운 제품 버전을 추가합니다.
+ 신규 구매자가 더 이상 해당 버전에 액세스할 수 없도록 버전을 제한합니다.
+ 제품을 사용할 수 AWS 리전 있는를 업데이트합니다.
+ 제품의 요금 및 인스턴스 유형을 업데이트합니다.
+ 에서 제품을 제거합니다 AWS Marketplace.

다음 주제는 단일 AMI 제품을 관리하고 업데이트하는 방법을 보여줍니다.

**Topics**
+ [에서 AMI 기반 제품에 대한 변경 요청 생성 AWS Marketplace](single-ami-create-change-request.md)
+ [AMI 기반 제품 가시성 업데이트](ami-update-visibility.md)
+ [에 대한 AMI 인스턴스 추가 및 제한 AWS Marketplace](single-ami-instance-types.md)
+ [에서 AMI 기반 제품의 버전 관리 AWS Marketplace](single-ami-versions.md)
+ [에서 AMI 기반 제품 정보 업데이트 AWS Marketplace](single-ami-updating-product.md)
+ [AWS 리전 및 국가별 AMI 기반 제품 가용성 관리](single-ami-regions.md)
+ [AMI 기반 AWS Marketplace 제품에 대한 최종 사용자 라이선스 계약(EULA) 업데이트](single-ami-update-eula.md)
+ [에서 AMI 기반 제품에 대한 환불 정책 업데이트 AWS Marketplace](single-ami-update-refund-policy.md)
+ [AMI에 대한 AWS Marketplace 액세스 권한 부여](single-ami-marketplace-ami-access.md)
+ [에서 제품 제거 AWS Marketplace](removing-products-from-aws-marketplace.md)
+ [의 변경 요청에 대한 일반적인 오류 문제 해결 AWS Marketplace](request-errors-and-issues.md)

# 에서 AMI 기반 제품에 대한 변경 요청 생성 AWS Marketplace
<a name="single-ami-create-change-request"></a>

에서 제품 또는 버전을 변경하려면를 통해 **변경 요청을** AWS Marketplace제출합니다 AWS Marketplace Management Portal. 변경 요청은 대기열에 추가되며 요청 유형에 따라 변경 요청이 해결될 때까지 몇 분에서 며칠까지 걸릴 수 있습니다. AWS Marketplace Management Portal에서 요청 상태를 확인할 수 있습니다. 이 주제에서는 셀프 서비스 경험을 사용하는 옵션을 AWS Marketplace포함하여에서 단일 AMI 제품에 대한 변경 요청을 생성하는 데 사용할 수 있는 절차를 제공합니다.

다음과 같은 상황에서 변경 요청을 만듭니다.
+ 셀프 서비스 경험을 사용하여 단일 AMI 제품 목록을 생성하는 동안 진행 중인 단계를 저장했지만, 전체 프로세스를 완료하지는 못했습니다. 나머지 단계를 완료하려면 변경 요청을 생성합니다.
+ **제한** 또는 **퍼블릭** 상태인 제품의 제품 정보를 수정하려 합니다. 정보를 업데이트하려면 변경 요청을 생성합니다. AMI 기반 제품에 대해 요청할 수 있는 변경 유형에 대한 자세한 내용은 [변경 요청 생성](#single-ami-creating-change-request) 섹션을 참조하세요.

**참고**  
외에도 [AWS Marketplace 카탈로그 API](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html)를 사용하여 변경 요청을 생성할 수도 AWS Marketplace Management Portal있습니다.

**Topics**
+ [셀프 서비스를 사용하여 변경 요청 생성](#ami-self-service-change-req)
+ [변경 요청 생성](#single-ami-creating-change-request)
+ [변경 요청의 상태 가져오기](#single-ami-getting-change-request-status)
+ [추가 리소스](#ami-single-change-req-resources)

## 셀프 서비스를 사용하여 변경 요청 생성
<a name="ami-self-service-change-req"></a>

버전 또는 제품 정보를 수정하려면 AWS Marketplace Management Portal에서 **변경 요청을 생성해야 합니다. 변경 요청은 제품을 변경할 때 사용하는 셀프 서비스 목록의 구성 요소입니다. 단계에서 **저장 후 종료**를 선택하거나 업데이트의 **제출**을 선택할 때마다 변경 요청을 하는 것입니다. 요청 탭에서 AWS Marketplace Management Portal [요청을 ](https://aws.amazon.com/marketplace/management/requests) 찾을 수 있습니다.

**셀프 서비스를 사용하여 변경 요청을 생성하는 방법**

1.  AWS Marketplace Management Portal 에서를 열고 판매자 계정에 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)로그인한 다음 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동합니다.

1. **서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운 목록에서 옵션을 선택합니다.

1. 변경 요청을 한 후에는 시스템에서 요청을 처리할 때까지 기다려야 하며, 이 기간에는 **검토 중**으로 표시됩니다. 요청이 완료되면 **성공** 또는 **실패**로 표시됩니다.
   + 요청이 제출되면 처리가 시작되고 **검토 중**, **변경 준비 중**, **변경 사항 적용 중** 상태를 거치게 됩니다.
   + **성공**은 요청된 변경이 처리되었으며 변경 사항이 시스템에 반영되었다는 뜻입니다.
   + **실패**는 요청에 문제가 발생하여 변경 사항이 처리되지 않았다는 뜻입니다. 상태가 **실패**이면 요청을 선택하여 오류 수정 방법에 대한 권장 사항을 제공하는 오류 코드를 찾을 수 있습니다. 이 시점에 오류를 해결하고 변경 요청을 새로 생성할 수 있습니다. 프로세스를 더 빠르게 진행하려면 **새 요청에 복사**를 선택하여 실패한 요청의 세부 정보를 복사하면 됩니다. 그런 다음, 요청을 조정하고 다시 제출할 수 있습니다.

## 변경 요청 생성
<a name="single-ami-creating-change-request"></a>

**중요**  
2023년 6월 15일에 AWS Marketplace 는 다음 절차를 중단합니다. 2023년 6월 15일 이후에는 [셀프 서비스를 사용하여 변경 요청 생성](#ami-self-service-change-req) 절차를 사용하세요.

버전 또는 제품 정보를 수정하려면 AWS Marketplace Management Portal에서 **변경 요청을 생성해야 합니다.

**변경 요청을 생성하려면**

1.  AWS Marketplace Management Portal 에서를 열고 판매자 계정에 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)로그인한 다음 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동합니다.

1. **서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운 목록에서 옵션을 선택합니다.

   대부분의 변경 요청은 사용자 인터페이스에서 양식을 작성하고 제출하면 됩니다. 하지만 특정 변경은 제품 로드 양식(PLF)을 다운로드하여 작성한 후 업로드해야 합니다. 이 스프레드시트에는 필수 정보를 입력하는 양식이 들어 있습니다. 이러한 변경 요청 중 하나를 선택하면 생성하려는 요청에 맞는 올바른 PLF를 다운로드하라는 메시지가 표시됩니다. PLF는 기존 제품 세부 정보의 정보가 미리 채워져 있습니다. 완료된 PLF를 AWS Marketplace Management Portal [ 파일 업로드 페이지에 업로드](https://aws.amazon.com/marketplace/management/product-load)할 수 있습니다.
**참고**  
가장 최신 PLF를 다운로드하여 사용하는 것이 좋습니다. 양식은 인스턴스 유형과 AWS 리전 을 비롯한 새로운 정보가 제공되는 대로 정기적으로 업데이트됩니다. **서버 제품** 페이지에서 제품을 선택한 후 **제품 로드 양식 다운로드**를 선택하여 제품의 최신 PLF를 찾을 수 있습니다.

변경 요청의 상태에 대한 자세한 내용은 [변경 요청의 상태 가져오기](#single-ami-getting-change-request-status) 섹션을 참조하세요. 변경 요청과 관련된 잠재적 문제에 대한 자세한 내용은 [의 변경 요청에 대한 일반적인 오류 문제 해결 AWS Marketplace](request-errors-and-issues.md) 섹션을 참조하세요.

## 변경 요청의 상태 가져오기
<a name="single-ami-getting-change-request-status"></a>

**중요**  
2023년 6월 15일에 AWS Marketplace 는 다음 절차를 중단합니다. 이 절차는 셀프 서비스 경험에 더 이상 필요하지 않습니다.

변경 요청을 제출한 후에는 AWS Marketplace Management Portal의 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지에 있는 **요청** 탭에서 요청 상태를 볼 수 있습니다. 요청의 상태는 다음 중 하나입니다.
+ **검토 중**은 요청을 검토 중이라는 뜻입니다. 일부 요청은 AWS Marketplace 팀의 수동 검토가 필요하지만 대부분은 시스템에서 자동으로 검토됩니다.
+ **성공**은 요청이 완료되었다는 뜻입니다. 요청하신 대로 제품 또는 버전을 업데이트했습니다.
+ **조치 필요**는 요청을 업데이트하여 문제를 해결하거나 요청에 대한 질문에 대답해야 한다는 뜻입니다. 요청을 선택하면 문제를 포함한 세부 정보를 볼 수 있습니다.
+ **실패**는 요청에 문제가 있다는 뜻이므로 동일한 데이터로 변경 요청을 새로 생성해야 합니다.

## 추가 리소스
<a name="ami-single-change-req-resources"></a>

특정 업데이트 유형의 변경 요청에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [에서 AMI 기반 제품 정보 업데이트 AWS Marketplace](single-ami-updating-product.md)
+ [버전 정보 업데이트](single-ami-versions.md#single-ami-updating-version)
+ [새 버전 추가](single-ami-versions.md#single-ami-adding-version)
+ [버전 제한](single-ami-versions.md#single-ami-restricting-version)

# AMI 기반 제품 가시성 업데이트
<a name="ami-update-visibility"></a>

 AWS Marketplace 판매자는 제품 가시성을 업데이트하여 단일 AMI 제품을 볼 수 있는 구매자를 변경할 수 있습니다 AWS Marketplace. 가시성 상태가 **퍼블릭**으로 설정된 경우 모든 AWS Marketplace 구매자가 제품을 볼 수 있습니다. 제품 가시성이 **제한**으로 설정된 경우 허용 목록에 있는 AWS 계정 IDs에만 제품이 표시됩니다. 제품을 볼 수 AWS 계정 IDs 있는이 ID 허용 목록을 관리하고 업데이트할 수도 있습니다. 다음 섹션에서는 제품 가시성 및 **제한됨** 가시성 허용 목록을 업데이트하는 방법을 보여줍니다.

**Topics**
+ [제품 표시 여부 업데이트](#ami-update-self-service-visibility)
+ [허용 목록 업데이트(계정 미리 보기)](#single-ami-updating-allowlist)

## 제품 표시 여부 업데이트
<a name="ami-update-self-service-visibility"></a>

제품을 볼 수 있는 구매자를 변경하려면 **업데이트 가시성을** 사용할 AWS Marketplace수 있습니다.

**표시 여부를 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **표시 여부 업데이트**를 선택합니다.
**참고**  
이 변경 요청을 사용하여 제품을 **제한** 상태에서 **퍼블릭** 상태로 전환하라고 요청할 수 있습니다. 그러나 변경 요청은 AWS Marketplace 판매자 운영 팀 승인 프로세스를 거쳐야 **퍼블릭**으로 이동할 수 있습니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

## 허용 목록 업데이트(계정 미리 보기)
<a name="single-ami-updating-allowlist"></a>

**제한된** 상태에서 제품을 볼 수 있는 AWS 계정 IDs 목록을 변경하려면 **허용 목록 업데이트를** 사용합니다.

**허용 목록을 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **허용 목록 업데이트**를 선택합니다. 현재 목록에는 현재 허용 목록에 있는 계정 목록이 제공됩니다.

1. 표시에 선호되는 AWS 계정 IDs를 추가하고 IDs를 쉼표로 구분합니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

# 에 대한 AMI 인스턴스 추가 및 제한 AWS Marketplace
<a name="single-ami-instance-types"></a>

 AWS Marketplace 판매자는 구매자가 단일 Amazon Machine Imagine(AMI) 제품에 사용할 수 있는 인스턴스를 관리할 수 있습니다. 구매자가 사용할 수 있는 단일 AMI 제품에 대한 새로운 인스턴스를 추가할 수 있습니다. 이와 비슷하게, 신규 구매자가 특정 인스턴스의 단일 AMI 제품을 사용하지 못하도록 하려면 인스턴스를 제한하면 됩니다.

Amazon EC2 인스턴스 유형에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [사용 가능한 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)을 참조하세요.

다음 섹션에서는 인스턴스를 추가하고 제한하는 방법을 설명합니다.

**Topics**
+ [인스턴스 추가](#single-ami-adding-instance-types)
+ [인스턴스 제한](#single-ami-restricting-instance-types)

## 인스턴스 추가
<a name="single-ami-adding-instance-types"></a>

구매자가 단일 AMI로 사용할 수 있는 새 인스턴스를 추가할 수 있습니다.

**인스턴스를 추가하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **인스턴스 추가**를 선택합니다.

1. 인스턴스 아키텍처를 선택합니다.

1. 사용 가능한 인스턴스 목록에서 추가하려는 인스턴스 유형을 선택합니다.

1. **요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.
**참고**  
현재 요금 모델이 무료가 아니거나 Bring Your Own License(BYOL) 모델을 사용하는 경우, 요금을 추가해야 합니다.
 새 인스턴스 요금을 포함한 **인스턴스 추가** 또는 요금 인상을 위한 **요금 업데이트**를 생성한 경우, 변경한 날로부터 90일 내에는 셀프 서비스를 사용하여 **인스턴스 추가**를 할 수 없습니다. 변경하려면 [AWS Marketplace 판매자 운영 팀](https://aws.amazon.com/marketplace/management/contact-us/)에 문의하세요.
새 인스턴스 유형에 대한 지원을 추가하면 제품에 대한 비공개 제안을 이미 구독한 고객은 새로 추가된 인스턴스를 자동으로 시작할 수 없습니다. 고객이 액세스하려는 인스턴스로 다른 비공개 제안을 생성해야 합니다. 새 제안을 수락한 후 고객은 새로 추가된 인스턴스를 시작할 수 있습니다. 향후 제품을 구독하는 고객은 인스턴스가 비공개 제안에 포함되어 있는 한 인스턴스를 시작할 수도 있습니다. 새 비공개 제안을 생성하는 방법에 대한 자세한 내용은 이 가이드의 뒷부분에서 [에서 계약 수정 AWS Marketplace](private-offers-upgrades-and-renewals.md) 섹션을 참조하세요.

**참고**  
**FPGA 인스턴스 유형 지원**  
AFI IDs 있는 제품은 F2 인스턴스 유형만 지원합니다. 다른 인스턴스 유형에서 AMI를 제공할 수 있지만 다른 인스턴스 유형에서는 AFIs 로드되지 않습니다. 구매자가 non-F2 인스턴스에서 제품을 시작하면 AFI IDs에서 제공하는 FPGA 가속화 기능 없이 AMI가 작동합니다.

## 인스턴스 제한
<a name="single-ami-restricting-instance-types"></a>

신규 구매자가 AMI 제품의 인스턴스를 사용하지 못하도록 하려면 인스턴스를 제한하면 됩니다. 나중에 필요할 때 인스턴스를 다시 추가할 수 있습니다. 제한된 인스턴스에 있는 단일 AMI의 기존 사용자는 구독 기간 동안 리전의 제품을 계속 사용할 수 있습니다.

**인스턴스를 제한하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **인스턴스 제한**을 선택합니다.

1. 제한하려는 인스턴스를 선택하고 **제한**을 선택합니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.
**참고**  
확인란이 흐리게 표시되면 인스턴스가 권장 인스턴스 유형으로써 하나 또는 여러 버전과 연결되어 있다는 뜻입니다. 이러한 인스턴스를 제한하려면 **버전 업데이트**를 사용하여 다른 권장 인스턴스 유형을 선택합니다. 변경 요청이 완료되고 제한하려는 인스턴스가 더 이상 권장 인스턴스 유형이 아니면 **인스턴스 제한**으로 돌아가서 선택한 인스턴스를 제한할 수 있습니다.

# 에서 AMI 기반 제품의 버전 관리 AWS Marketplace
<a name="single-ami-versions"></a>

Amazon Machine Image(AMI) 기반 제품을 생성할 때 특정 버전의 소프트웨어를 AWS Marketplace포함합니다. 용 AMI 기반 제품의 수명 주기는 첫 번째 버전을 게시한 후에도 종료 AWS Marketplace 되지 않습니다. 새 버전의 소프트웨어로 제품을 최신 상태로 유지해야 합니다. 다음 섹션에서는 버전 정보 업데이트(예: 설명 및 날짜), 새 버전 추가, 이전 버전에 대한 액세스 제한 등 버전을 관리하는 방법을 보여 줍니다.

**Topics**
+ [버전 정보 업데이트](#single-ami-updating-version)
+ [새 버전 추가](#single-ami-adding-version)
+ [버전 제한](#single-ami-restricting-version)

## 버전 정보 업데이트
<a name="single-ami-updating-version"></a>

버전을 생성한 후에는 버전과 관련된 정보를 수정하여 구매자에게 업데이트된 정보를 제공하는 것이 좋습니다. 예를 들어 1.1 버전이 출시된 후 1.0 버전을 제한하려면 1.0 버전의 설명을 업데이트하여 구매자를 1.1 버전으로 안내하고 버전이 제한되는 날짜를 알려주면 됩니다. AWS Marketplace Management Portal에서 버전 정보를 업데이트합니다.

**버전 정보를 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운 메뉴에서 **버전 정보 업데이트**를 선택합니다.

1. **버전 업데이트** 페이지에서 업데이트할 버전을 선택합니다.

1. 다음 중 수정해야 하는 정보를 업데이트합니다.
   + **릴리스 정보**
   + **사용 지침**
   + **64비트(x86) Amazon Machine Image(AMI)** - 사용 및 보안 그룹에 대한 세부 정보

1. **제출**을 선택합니다.

1. 요청이 **요청** 탭에 표시되고 상태가 **검토 중**인지 확인합니다.

**참고**  
이 절차를 사용하여 버전 제목 또는 버전과 연결된 AMI를 업데이트할 수 없습니다. 그 대신 [새 버전을 생성](#single-ami-adding-version)하고 [이전 버전을 제한](#single-ami-restricting-version)하세요.

언제든지 [ 서버 제품](https://aws.amazon.com/marketplace/management/products/server) 페이지의 **요청** 탭에서 요청 상태를 확인할 수 있습니다. 자세한 내용은 [변경 요청의 상태 가져오기](single-ami-create-change-request.md#single-ami-getting-change-request-status) 단원을 참조하세요.

## 새 버전 추가
<a name="single-ami-adding-version"></a>

제품 또는 기본 이미지를 변경하거나 제품의 AMI를 수정해야 할 때 새 버전의 제품을 추가할 수 있습니다. 에서 제품의 새 버전을 추가합니다 AWS Marketplace Management Portal.

**참고**  
에 대한 AMI 생성에 대한 자세한 내용은 섹션을 AWS Marketplace참조하세요[와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace](best-practices-for-building-your-amis.md).

**새 버전을 추가하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **새 버전 추가**를 선택합니다. 최신 버전의 정보가 채워진 **새 버전 추가** 양식이 나타납니다.
**참고**  
**‘버전 추가’ 테스트**를 선택하여 새 버전을 추가하지 않고 AMI 및 CloudFormation 템플릿을 스캔할 수도 있습니다. 자세한 내용은 [AMI를 스캔하여 게시 요구 사항 확인](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#self-service-scanning)을 참조하세요.

1. **버전 정보** 섹션에서 다음 정보를 입력합니다.
   + **버전 제목** - 유효한 문자열(예: *1.1* 또는 *버전 2.0*)을 입력합니다. 제품 전체에서 고유해야 합니다.
   + **릴리스 정보** - 이 버전에 대한 세부 정보를 제공하는 텍스트를 입력합니다.

1. **전송 옵션** 섹션에서 구매자가 솔루션을 배포하는 방법으로 AMI(독립 실행형), CloudFormation을 사용하는 AMI 또는 둘 다를 선택합니다. 최대 3개의 AMI with CloudFormation 전송 옵션을 선택할 수 있습니다.
**참고**  
새로운 전송 옵션은 기존 버전에 추가할 수 없습니다. 단일 버전의 모든 전송 옵션은 동일한 요청으로 제출해야 합니다.

1. **Amazon Machine Image(AMI)** 섹션에서 다음 정보를 입력합니다.
   + **Amazon Machine Image ID** - 이 버전에 사용할 AMI의 AMI ID를 입력합니다. AMI ID는 [ 콘솔의 AMI 목록](https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Images:sort=name)에서 찾을 수 있습니다. AMI는 미국 동부(버지니아 북부) 리전과 AWS Marketplace 판매자 계정에 있어야 합니다. 이 AMI와 연결된 스냅샷은 암호화할 수 없습니다.
   + **IAM 액세스 역할 ARN** -가 AMI에 액세스할 수 있도록 허용하는 (IAM) 역할 AWS Marketplace 의 Amazon 리소스 이름 AWS Identity and Access Management (ARN)을 입력합니다. IAM 역할을 생성하는 방법에 대한 지침은 [AMI에 대한 AWS Marketplace 액세스 권한 부여](single-ami-marketplace-ami-access.md) 섹션을 참조하세요. IAM ARN의 표준 형식(예: *arn:aws:iam::123456789012:role/RoleName*)을 사용합니다. ARN은 AWS Marketplace 판매자 계정에 있어야 합니다.
   + **운영 체제(OS)** - AMI의 기본 운영 체제를 입력합니다.
   + **OS 버전** - AMI에서 사용 중인 운영 체제 버전을 입력합니다.
   + **OS 사용자 이름** - Linux 기반 AMI의 경우 인스턴스에 로그인하는 데 사용할 수 있는 사용자 이름을 입력합니다. *ec2-user*를 사용하는 것이 좋습니다.
   + **스캔 포트** - 운영 체제에 로그인하는 데 사용할 수 있는 포트 번호(Linux AMI는 SSH 포트, Windows AMI는 RDP 포트)를 입력합니다.
   + **Amazon FPGA 이미지(AFI) IDs**(선택 사항) - AMI와 연결할 AFI IDs를 입력합니다. AFIs F2 인스턴스 유형만 지원합니다. 다른 인스턴스 유형에서 AMI를 제공할 수 있지만 이러한 경우에는 AFIs 로드되지 않습니다. AFI IDs 사용하여 최대 15개의 **AFI ID**를 추가할 수 있습니다. CloudFormation 템플릿을 사용할 때는이 옵션을 사용할 수 없습니다. 제공하는 모든 AFI IDs는 미국 동부(버지니아 북부) 리전에서 시작하여 AWS Marketplace 판매자 계정 내에 있어야 하며, 제공된 IAM 액세스 역할에는이 AFI를 AWS Marketplace와 공유할 수 있는 권한이 있어야 합니다. 필요한 권한에 대한 자세한 내용은 [AWS Marketplace에 FPGA 이미지에 대한 액세스 권한 부여를 참조하세요](https://docs.aws.amazon.com/marketplace/latest/userguide/single-ami-marketplace-ami-access.html#single-ami-marketplace-afi-access).

1. 해당하는 경우 **AMI 전송 옵션** 섹션에 대해 다음 구성을 제공합니다.
   + **권장 인스턴스 유형** - 구매자에게 기본적으로 제공되는 인스턴스 유형을 선택합니다.
   + **사용 지침** - AMI 사용 지침 또는 AMI 사용에 대한 자세한 정보 링크를 입력합니다. 예: *제품을 시작하려면 https://example.com/usage.htm으로 이동하세요.*
   + **엔드포인트 URL** - 구매자가 인스턴스를 생성한 후 소프트웨어에 액세스할 수 있는 방법에 대한 정보를 제공합니다. 구매자가 제품에 액세스하는 데 사용할 수 있는 **프로토콜**(*https* 또는 *http*), **상대 URL**(예: */index.html*) 및 **포트**(예: *443*)를 입력합니다. (호스트 이름은 EC2 인스턴스에 따라 다르므로 상대 경로만 제공하면 됩니다.)
   + **보안 그룹 권장 사항** - 프로토콜(*TCP* 또는 *UDP*), 허용할 포트 범위, IPv4 CIDR IP 목록(*xxx.xxx.xxx.xxx/nn* 형식, 예: *192.0.2.0/24*)을 포함하여 하나 이상의 권장 사항에 대한 정보를 입력합니다.

1. 해당하는 경우 ** CloudFormation을 사용하는 AMI 전송 옵션**에 대해 다음 구성 설정을 제공합니다.
   + **전송 옵션 제목** - 이 이름은 이 단일 AMI CloudFormation 템플릿 전송 옵션을 식별하기 위한 고유한 이름입니다.
   + **간략한 설명** - CloudFormation 템플릿에 대한 간략한 설명입니다.
   + **자세한 설명** - CloudFormation 템플릿에 대한 자세한 설명입니다.
   + **권장 인스턴스 유형** - 구매자에게 기본적으로 제공되는 인스턴스 유형입니다.
   + **사용 지침** - 솔루션 사용 지침 또는 솔루션 사용에 대한 자세한 정보 링크를 입력합니다.
   + **CloudFormation 템플릿 링크** - Amazon S3에서 CloudFormation 템플릿의 위치에 대한 URL입니다. 중첩 스택 또는 템플릿의 경우, 진입점 또는 상위 템플릿을 제공합니다. 파일이 있는 Amazon S3 버킷은 공개적으로 액세스할 수 있어야 합니다. 자세한 내용은 [제품에 CloudFormation 템플릿 추가](https://docs.aws.amazon.com//marketplace/latest/userguide/cloudformation.html)를 참조하세요.
   + **AMI 파라미터 이름** - 템플릿의 EC2 인스턴스 리소스가 `ImageId` 속성 값을 참조하는 CloudFormation 템플릿에 파라미터 이름을 추가합니다. 지정된 파라미터를 [AWS Systems Manager 파라미터 스토어 ](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)파라미터로 바 AWS Marketplace 꿉니다. 구매자가 템플릿을 배포하면 해당 파라미터는 게시된 제품의 AWS 리전별 AMI ID로 확인됩니다. 자세한 내용은 [AMI 세부 정보에 대한 요구 사항](https://docs.aws.amazon.com//marketplace/latest/userguide/cloudformation.html#ami-requirements-sse)을 참조하세요.
   + **아키텍처 다이어그램 링크** - Amazon S3의 아키텍처 다이어그램 위치에 대한 URL입니다. 최대 이미지 파일은 크기가 1560x878 또는 1560x3120픽셀이어야 하며, 비율은 16:9 또는 1:2여야 합니다. 이미지 파일이 있는 Amazon S3 버킷은 공개적으로 액세스할 수 있어야 합니다. 다이어그램 요구 사항은 [아키텍처 다이어그램](https://docs.aws.amazon.com//marketplace/latest/userguide/cloudformation.html#topology-diagram)을 참조하세요.

1. **제출**을 선택하여 새 버전 추가 요청을 제출합니다.
**참고**  
새 버전을 추가하면 AMI가 스캔됩니다. 자세한 내용은 [AMI를 스캔하여 게시 요구 사항 확인](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#self-service-scanning)을 참조하세요.
**참고**  
**새 버전의 AFI ID 지원**  
새 AMI 버전을 추가할 때 AMI(독립 실행형) 전송 방법을 선택하면 AFI IDs를 구성할 수 있습니다. 문자 제한, 고유성 요구 사항, 리전 제약 조건, 계정 소유권 확인 등 새 버전을 추가할 때도 제품 생성 중에 적용되는 것과 동일한 검증 규칙이 적용됩니다. AFI IDs로 버전이 생성되면 해당 AFI IDs 변경할 수 없으며 나중에 편집할 수 없습니다. AFI IDs를 수정해야 하는 경우 업데이트된 구성으로 새 버전을 생성해야 합니다. AFI IDs 있는 새 버전은 AFI IDs도 있는 기존 버전과 함께 존재할 수 있으므로 다양한 제품 버전에서 여러 FPGA 구성을 유지할 수 있습니다. 버전 준비 중에는 지원되는 리전에서 제품을 사용할 수 있도록 리전 AFI 복제본을 AWS Marketplace 생성하여 구매자의 배포 프로세스를 AWS 간소화합니다. 이 프로세스는 AWS Marketplace 판매자 운영 팀에서 처리하며 다른 AMI 버전 추가 요청보다 오래 걸릴 수 있습니다. 이 시간 동안 요청은 '검토 중'이 됩니다.

1. 요청이 **요청** 탭에 표시되고 상태가 **검토 중**인지 확인합니다. 수정해야 하는 오류가 있으면 페이지 상단의 표에 오류가 표시되고, 업데이트해야 하는 특정 필드가 빨간색으로 표시됩니다.

언제든지 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지의 **요청** 탭에서 요청 상태를 확인할 수 있습니다. 새 버전이 검토되고, 성공하면 제품의 새 공개 버전으로 게시됩니다. 문제가 있으면 상태가 **조치 필요**일 수 있습니다. 요청을 선택하면 문제를 포함한 세부 정보를 볼 수 있습니다.

요청이 성공하면 기존 사용자에게 다음과 같은 이메일 메시지가 전송됩니다. 이 메시지는 고객에게 새 버전을 사용할 수 있다고 알리고, 버전의 릴리스 정보로 연결되는 링크를 제공하며, 최신 버전으로 업그레이드할 것을 제안합니다. AWS 계정 루트 사용자는와 연결된 이메일 계정의 이메일 메시지 사본도 받게 됩니다 AWS 계정.

```
Greetings from AWS Marketplace,

Thank you for subscribing to <product-title>

We are writing to inform you that <seller-name> has added a new version to <product-title> on AWS Marketplace. 
As an existing customer, your subscription to the product, any running instances and access to previous versions 
are unaffected. However, <seller-name> does recommend you to update to the latest version, <product-title>/<version-title> 
by visiting <product-detail-page-of-new-listing>.

For additional questions or upgrade information, please contact <seller-name> directly. Click here <link of seller page on MP> 
to visit the seller’s profile page on AWS Marketplace.

Release notes for <product-title>/<version-title>:

<release-notes>

Thank you,
The AWS Marketplace Team
https://aws.amazon.com/marketplace
AWS, Inc. is a subsidiary of Amazon.com, Inc. Amazon.com is a registered trademark of Amazon.com, Inc. 
This message was produced and distributed by AWS Inc., 410 Terry Ave. North, Seattle, WA 98109-5210
```

## 버전 제한
<a name="single-ami-restricting-version"></a>

구매자가 특정 버전의 공개 제품에 액세스하지 못하게 하려면 해당 버전을 제한하면 됩니다.

**참고**  
모든 구독자는 제한 상태에 관계없이 최신 버전을 사용할 수 있습니다. AWS Marketplace 가이드라인에 따라 버전을 제한한 후 90일 동안 기존 구매자에게 지원을 계속 제공해야 합니다. 버전이 제한되면 AMI는 더 이상 사용되지 않는 것으로 표시됩니다. 자세한 내용은 **Windows  인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 [AMI 사용 중지](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-deprecate.html)를 참조하세요.

**버전을 제한하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **버전 제한**을 선택합니다.

1. **버전 제한** 페이지에서 제한하려는 버전(또는 여러 버전)을 선택합니다.

1. **제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**입니다.

**참고**  
제품의 모든 버전을 제한할 수는 없습니다. 제품의 마지막 남은 공개 버전을 제한하려고 하면 오류가 발생합니다. 제품을 완전히 제거하려면 [에서 제품 제거 AWS Marketplace](removing-products-from-aws-marketplace.md) 섹션을 참조하세요.

언제든지 [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지의 **요청** 탭에서 요청 상태를 확인할 수 있습니다. 자세한 내용은 [변경 요청의 상태 가져오기](single-ami-create-change-request.md#single-ami-getting-change-request-status) 단원을 참조하세요.

**참고**  
버전 제한이 완료될 때까지 최대 3일이 소요될 수 있습니다.

요청이 성공하면 기존 사용자에게 버전 제한 소식을 알리고 사용 가능한 최신 버전을 사용할 것을 권장하는 다음과 같은 이메일 메시지가 전송됩니다. AWS 계정 루트 사용자는와 연결된 이메일 계정의 이메일 메시지 사본도 받게 됩니다 AWS 계정.

```
Greetings from AWS Marketplace,

Thank you for subscribing to <product-title>.

We are writing to inform you that, as of <Version-Restriction-Date>, <Seller Name> will no longer offer version(s) "<version-title>" to new subscribers. Your use and subscription is unaffected for this version(s), however it is recommended that users upgrade to the latest version on AWS Marketplace.

For additional questions or upgrade information, please contact <seller-name> directly. Click here<link of seller page on MP> to visit the seller’s profile page on AWS Marketplace.

Thank you,
The AWS Marketplace Team
https://aws.amazon.com/marketplace
AWS, Inc. is a subsidiary of Amazon.com, Inc. Amazon.com is a registered trademark of Amazon.com, Inc. This message was produced and distributed by AWS Inc., 410 Terry Ave. North, Seattle, WA 98109-5210
```

# 에서 AMI 기반 제품 정보 업데이트 AWS Marketplace
<a name="single-ami-updating-product"></a>

단일 Amazon Machine Image(AMI) 제품을 만든 후 AWS Marketplace에서 연결된 일부 정보를 변경할 수 있습니다. 예를 들어 새 버전이 제품의 설명이나 주요 내용을 수정하는 경우 제품 정보를 새 데이터로 편집할 수 있습니다. 제품 제목, SKU 설명, 범주, 키워드 등 다른 제품 정보를 업데이트할 수도 있습니다. 자세한 내용은 다음 절차를 참조하세요.

**제품 정보를 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운 메뉴에서 **제품 정보 업데이트**를 선택합니다.

1. 변경해야 하는 다음 필드를 업데이트합니다.
   + **제품 제목**
   + **SKU**
   + **간단한 설명**
   + **자세한 설명**
   + **제품 로고 이미지 URL**
   + **하이라이트**
   + **제품 범주**
   + **키워드**
   + **제품 비디오 URL**
   + **리소스**
   + **지원 정보**
**참고**  
로고 형식에 대한 자세한 내용은 [회사 및 제품 로고 요구 사항](product-submission.md#seller-and-product-logos) 섹션을 참조하세요.

1. **제출**을 선택합니다.

1. 요청이 **요청** 탭에 표시되고 상태가 **검토 중**인지 확인합니다. 목록에 요청이 보이지 않으면 페이지를 새로 고쳐야 할 수도 있습니다.

언제든지 [ 서버 제품](https://aws.amazon.com/marketplace/management/products/server) 페이지의 **요청** 탭에서 요청 상태를 확인할 수 있습니다. 자세한 내용은 [변경 요청의 상태 가져오기](single-ami-create-change-request.md#single-ami-getting-change-request-status) 단원을 참조하세요.

# AWS 리전 및 국가별 AMI 기반 제품 가용성 관리
<a name="single-ami-regions"></a>

에서 제품을 생성할 때 제품을 사용할 수 있는 AWS 리전을 AWS Marketplace선택합니다. 구매자가 제품을 구매할 수 있는 국가도 선택할 수 있습니다. 이 두 속성은 비슷하지만 동일하지는 않습니다. 예를 들어 구매자가 미국에 살면서 미국에서 제품을 구매하지만 유럽(프랑크푸르트) 리전에 제품을 설치할 수 있습니다. 이 구매자가 제품을 구매할 수 있으려면 국가 목록에 미국을 포함시키고 리전 목록에 유럽(프랑크푸르트) 리전을 포함시켜야 합니다. 다음 섹션을 사용하여 리전 및 국가별로 제품 가용성을 업데이트할 수 있습니다.

**Topics**
+ [추가 AWS 리전](#single-ami-adding-regions)
+ [제한 AWS 리전](#single-ami-restricting-regions)
+ [향후 지원 업데이트 AWS 리전](#single-ami-updating-future-region-support)
+ [국가별 가용성 업데이트](#single-ami-update-availability-by-country)

## 추가 AWS 리전
<a name="single-ami-adding-regions"></a>

구매자가 제품을 사용할 수 있는 리전을 추가할 수 있습니다.

**리전을 추가하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **리전 추가**를 선택합니다.

1. 사용 가능한 리전 목록에서 추가할 리전을 선택합니다.

1. **요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

**참고**  
새에 대한 지원을 추가하면 제품에 대한 비공개 제안을 이미 구독한 AWS 리전고객은 새로 추가된 리전에 자동으로 액세스할 수 없습니다. 고객이 액세스하려는 리전을 사용하여 다른 비공개 제안을 만들어야 합니다. 고객은 새 제안을 수락한 후 새로 추가된 리전에 액세스할 수 있습니다. 향후 제품을 구독하는 고객은 해당 리전이 비공개 제안에 포함되는 한 해당 리전에 액세스할 수도 있습니다. 새 비공개 제안을 만드는 방법에 대한 자세한 내용은 [Private offer upgrades, renewals, and amendments](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-upgrades-and-renewals.html)를 참조하세요.

**참고**  
**FPGA 리전 요구 사항**  
FPGA 제품에 리전을 추가할 때 지원되는 AWS 리전에서 제품을 사용할 수 있도록 리전 AFI 복제본이 AWS Marketplace 에 의해 자동으로 생성됩니다. 이 프로세스를 통해 구매자는 수동 AFI 복제 없이 원하는 리전에 FPGA 가속 제품을 배포할 수 있습니다. 자동 복제 프로세스는 제품을 사용할 수 있는 모든 리전에서 일관성을 유지합니다.

## 제한 AWS 리전
<a name="single-ami-restricting-regions"></a>

신규 구매자가 특정에서 제품을 사용하지 못하도록 리전을 제한 AWS 리전할 수 있습니다. 나중에 리전을 다시 추가할 수 있습니다. 해당 리전의 기존 제품 구독자는 구독을 유지하는 한 해당 리전의 제품을 계속 사용할 수 있습니다.

**리전을 제한하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **리전 제한**을 선택합니다.

1. 드롭다운 메뉴를 선택하여 현재 제품을 사용할 수 있는 리전 목록을 확인합니다.

1. 제한하려는 리전을 선택합니다.

1. 선택한 리전이 토큰으로 표시됩니다. 제한 중인 리전 목록을 검토하고, 제한하지 않을 지역에 X를 입력합니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

요청이 성공하면 기존 사용자에게 제한될 리전을 알리는 다음과 같은 이메일 메시지가 전송됩니다. 기존 사용자는 구독을 유지하는 한 제품을 계속 사용할 수 있지만, 구독을 취소하면 다시 구독할 수 없습니다.

```
Greetings from AWS Marketplace,

This message is a notification detailing a recent change for <ProductName>.
{{{sellerName}}} has opted to restrict the <ProductType> product in <Restricted Region(s)> beginning <DateOfChange>.

This impacts you in the following ways:

1. As long as you're subscribed to the product, you can continue using the software product in the restricted Region.
2. You can't begin new instances of the software product in the restricted Region.
3. You can continue using the software product in all available AWS Regions.

Regards,
The AWS Marketplace Team
AWS, Inc. is a subsidiary of Amazon.com, Inc. Amazon.com (http://amazon.com/) is a registered
trademark of Amazon.com, Inc. This message was produced and distributed by Amazon Web
Services Inc., 410 Terry Ave. North, Seattle, WA 98109-5210.
```

## 향후 지원 업데이트 AWS 리전
<a name="single-ami-updating-future-region-support"></a>

제품을 새로 출시된에 온보딩하려면 **향후 리전 지원 업데이트를** 사용할 AWS 리전수 있습니다.

**향후 리전 지원을 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **향후 리전 지원 업데이트**를 선택합니다.

1. 향후 리전 지원을 활성화하여가 사용자를 대신하여 새로 출시된 AWS Marketplace 에 제품을 온보딩할 수 있도록 선택할 수 AWS 리전 있습니다.

1. 이 기능을 활성화한 후에는 모든 향후 리전을 선택할 수도 있고 미국 리전으로만 제한할 수도 있습니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

## 국가별 가용성 업데이트
<a name="single-ami-update-availability-by-country"></a>

제품을 구독하고 제공할 수 있는 국가를 변경하려면 **가용성 업데이트**를 사용하면 됩니다.

**국가별 가용성을 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운 메뉴에서 **가용성 업데이트**를 선택합니다.

1. 다음 옵션 중 하나를 선택하세요.

   1. **모든 국가** - 지원되는 모든 국가에서 사용할 수 있습니다.

   1. **일부 국가를 제외한 모든 국가** - 일부 국가를 제외하고 지원되는 모든 국가에서 사용할 수 있습니다.

   1. **사용자 지정 목록** - 특정 목록의 국가에서만 제품을 사용할 수 있습니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

# AMI 기반 AWS Marketplace 제품에 대한 최종 사용자 라이선스 계약(EULA) 업데이트
<a name="single-ami-update-eula"></a>

 AWS Marketplace 판매자는 단일 Amazon Machine Image(AMI) 제품의 사용에 적용되는 최종 사용자 라이선스 계약(EULA)을 업데이트할 수 있습니다. EULA는 AWS Marketplace의 공개 소프트웨어 리스팅에 대한 제품 리스팅 페이지에 있습니다. 판매자 고유의 EULA를 적용할 수도 있고 [AWS Marketplace 표준 계약](standardized-license-terms.md)(SCMP)을 사용할 수도 있습니다. 다음 절차에서는 단일 AMI 제품의 EULA를 업데이트하는 방법을 보여줍니다.

EULA에 대한 자세한 내용은 [AWS Marketplace의 표준 계약 사용](standardized-license-terms.md) 섹션을 참조하세요.

**EULA를 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 탭을 선택한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **최종 사용자 라이선스 계약 업데이트**를 선택합니다.

1. [표준 계약 AWS Marketplace (SCMP)](https://docs.aws.amazon.com/marketplace/latest/userguide/standardized-license-terms.html)을 선택하거나 사용자 지정 EULA를 제출할 수 있습니다. 사용자 지정 EULA의 경우 Amazon S3 버킷의 사용자 지정 계약에 대한 URL을 제공해야 합니다.
**참고**  
Amazon S3 버킷에 대한 공개 액세스가 활성화되어 있어야 합니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

# 에서 AMI 기반 제품에 대한 환불 정책 업데이트 AWS Marketplace
<a name="single-ami-update-refund-policy"></a>

 AWS Marketplace 판매자는 단일 Amazon Machine Image(AMI) 제품에 대한 환불 정책을 설정할 수 있습니다. 제품의 환불 정책을 변경하려면 **환불 정책 업데이트**를 사용하면 됩니다. 다음 절차에서는 환불 정책을 업데이트하는 방법을 보여줍니다.

**환불 정책을 업데이트하는 방법**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. [https://aws.amazon.com/marketplace/management/products/server](https://aws.amazon.com/marketplace/management/products/server) 페이지로 이동한 후 **현재 서버 제품** 탭에서 수정하려는 제품을 선택합니다.

1. **변경 요청** 드롭다운에서 **환불 정책 업데이트**를 선택합니다.

1. 현재 환불 정책 세부 정보가 텍스트 상자에 제공되며 이 정보를 편집할 수 있습니다. 요청을 제출하면 현재 환불 정책을 덮어씁니다.

1. **변경 요청 제출**을 선택하여 요청을 제출하고 검토를 받습니다.

1. **요청** 탭에서 **요청 상태**가 **검토 중**으로 표시되는지 확인합니다. 요청이 완료되면 상태가 **성공**으로 바뀝니다.

# AMI에 대한 AWS Marketplace 액세스 권한 부여
<a name="single-ami-marketplace-ami-access"></a>

에 새 Amazon Machine Image(AMI)를 추가하는 요청이 포함된 요청을 생성할 때 AMI AWS Marketplace를 AWS Marketplace 시스템에 복사한 다음 보안 문제를 스캔해야 합니다. AMI에 대한 작업을 수행할 수 있는 권한이 있는 AWS Identity and Access Management (IAM) 역할과가 역할을 AWS Marketplace 수임하도록 허용하는 신뢰 정책을 생성하여 AMI에 대한 AWS Marketplace 액세스 권한을 부여해야 합니다. IAM 역할은 한 번만 만들면 됩니다. 다음 절차에서는 AMI에 대한 AWS Marketplace 액세스 권한을 부여하는 AWS Marketplace 자산 수집에 대한 역할을 생성하는 방법을 보여줍니다.

**AWS Marketplace AMI 자산 수집을 위한 역할을 생성하려면**

1. 에 로그인하고 IAM 콘솔을 AWS Management Console열고 [역할 페이지로](https://console.aws.amazon.com/iam/home?region=us-east-1#/roles) 이동합니다.

1. **규칙 생성**을 선택합니다.

1. **역할 생성** 페이지에서 다음을 선택합니다.
   + **신뢰할 수 있는 엔터티 유형 선택** - **AWS 서비스**를 선택합니다.
   + **사용 사례 선택 **- **AWS Marketplace**를 선택합니다.
   + **사용 사례 선택** - **Marketplace - AMI 자산 수집**을 선택합니다.
   + **다음: 권한**을 선택하여 다음 페이지로 이동합니다.

1. **AWSMarketplaceAmiIngestion** 정책을 선택합니다. 필요한 경우 권한 경계를 추가하고 **다음: 태그**를 선택하여 계속합니다.
**참고**  
권한 경계를 사용하여 이 역할로 AWS Marketplace 에 부여하는 액세스 권한을 제한할 수 있습니다. 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 엔터티의 권한 경계](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.

1. **다음: 검토**를 선택하여 계속합니다.

1. 역할의 이름을 지정하고 **역할 생성**을 선택합니다.

1. 페이지 상단에 *rolename* 역할이 생성되었다는 메시지가 표시되고, 역할 목록에 역할이 표시됩니다.

이 페이지에서 방금 생성한 역할을 선택하면 *arn:aws:iam::123456789012:role/exampleRole* 형식의 ARN을 확인할 수 있습니다. 변경 요청을 생성할 때(예: 제품에 [새 버전 추가](single-ami-versions.md#single-ami-adding-version)) **IAM 액세스 역할 ARN**에 ARN을 사용합니다.

## FPGA 이미지에 대한 AWS Marketplace 액세스 권한 부여
<a name="single-ami-marketplace-afi-access"></a>

AMI에 FPGA 이미지(AFIs 포함된 경우 이러한 FPGA 이미지에 액세스하고 관리할 수 있는 AWS Marketplace 추가 권한도 부여해야 합니다. **AWSMarketplaceAmiIngestion** 정책 외에도가 FPGA 이미지에 대한 작업을 AWS Marketplace 수행하도록 허용하는 인라인 정책을 생성해야 합니다.

**AWS Marketplace AMI 자산 수집 역할에 FPGA 이미지 권한을 추가하려면**

1. 에 로그인하고 IAM 콘솔을 AWS Management Console열고 [역할 페이지로](https://console.aws.amazon.com/iam/home?region=us-east-1#/roles) 이동합니다.

1.  AWS Marketplace AMI 자산 수집을 위해 생성한 역할을 선택합니다.

1. 역할 세부 정보 페이지에서 **권한** 탭을 선택한 다음 **인라인 정책 추가**를 선택합니다.

1. **JSON** 탭을 선택하고 다음 정책을 입력합니다.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "ec2:DescribeFpgaImages",
               "ec2:DescribeFpgaImageAttribute",
               "ec2:CopyFpgaImage",
               "ec2:ModifyFpgaImageAttribute"
            ],
            "Resource":"*"
         }
      ]
   }
   ```

------

1. **정책 검토**를 선택합니다.

1. 와 같은 정책의 이름을 입력한 **AWSMarketplaceAfiIngestion**다음 **정책 생성을** 선택합니다.

이 인라인 정책을 추가하면 AWS Marketplace 는 수집 및 스캔 프로세스 중에 FPGA 이미지에 액세스하고 관리하는 데 필요한 권한을 갖게 됩니다.

# 에서 제품 제거 AWS Marketplace
<a name="removing-products-from-aws-marketplace"></a>

제품을 게시한 후에서 제거할 수 있습니다 AWS Marketplace. 이를 *사용 중단*이라고도 합니다. 제품을 제거하려면 제품을 식별하고 제거 이유 및 자신의 연락 이메일 주소와 함께 제거 요청을 제출합니다. 현재 제품을 새 제품으로 교체하려는 경우 교체 제품 ID를 제공할 수도 있습니다.

제품 제거 요청을 한 후에는 신규 고객이 더 이상 해당 제품을 구독할 수 없습니다. 최소 90일간 기존의 고객을 지원해야 합니다.

**참고**  
 AWS Marketplace 관리 포털에서는 제한된 제품을 삭제할 수 없습니다. 포털은 계정의 게시 기록의 일부로 제한된 제품을 보존합니다.

다음 조건에 따라 AWS Marketplace 에서 제품 제거 요청을 처리합니다.
+ 검색 AWS Marketplace , 찾아보기 및 기타 검색 도구에서 제품이 제거됩니다. **구독** 버튼이나 기능이 비활성화되고, 제품을 더 이상 사용할 수 없다고 분명하게 밝히는 메시지가 페이지에 표시됩니다. 계속 URL을 사용하여 제품 세부 정보 페이지에 액세스할 수 있으며 공개 검색 엔진에 이 페이지가 인덱싱됩니다.
+ 제거 이유(예: 지원 종료, 제품 업데이트 종료 또는 교체 제품)를 명시해야 합니다. 제거된 제품에 대한 지속적인 지원 요구 사항은 [AWS Marketplace 판매자 이용 약관을 참조하세요](https://aws.amazon.com/marketplace/management/terms).
+ AWS Marketplace 는 제품 제거, 제거 이유 및 판매자 연락처 정보를 알리는 이메일 메시지를 통해 현재 구매자에게 연락합니다.
+ 현재 구매자는 구독을 취소할 때까지 소프트웨어에 계속 *액세스할 수 있습니다.* 구독자는 어떤 방식으로도 제품 제거의 영향을 받지 않습니다.

**를 사용하여 생성된 제품을 제거하려면 AWS Marketplace Management Portal**

1.  AWS Marketplace Management Portal 에서를 연 [https://aws.amazon.com/marketplace/management/tour/](https://aws.amazon.com/marketplace/management/tour/)다음 판매자 계정에 로그인합니다.

1. **제품** 탭을 선택하고 **서버**를 선택합니다.

1. **서버 제품**의 제품 페이지에서 제거할 제품을 찾습니다. **변경 요청** 드롭다운 목록에서 **제품 가시성 업데이트**를 선택합니다.

1. **제품 가시성 업데이트** 페이지에서 **제한됨**을 선택합니다.

1. (선택 사항) 제거하려는 제품을 대신할 다른 제품이 있는 경우 **교체 제품 ID**를 입력합니다.

1. 정보가 정확한지 검토한 후 **제출**을 선택합니다.

제품 제거 요청을 제출하면 **What’s next(다음 단계)** 정보 페이지가 표시됩니다. AWS Marketplace 판매자 작업은 요청을 검토하고 처리합니다. **요청**을 보고 제출의 상태를 확인합니다.

제품이 제거되고 나면 AWS Marketplace Management Portal의 **현재 제품** 목록에 제품이 표시됩니다. **현재 제품**에서는 제품에 대한 스프레드시트 다운로드를 하는 작업만 수행할 수 있습니다. 다른 만료 요청을 편집하거나 제출할 수는 없습니다.

제품 제거에 대해 궁금한 점이 있는 경우 [AWS Marketplace 판매자 작업](https://aws.amazon.com/marketplace/management/contact-us/) 팀에 문의하세요.

# 의 변경 요청에 대한 일반적인 오류 문제 해결 AWS Marketplace
<a name="request-errors-and-issues"></a>

에서 제품 정보를 변경하면 오류가 발생할 AWS Marketplace수 있습니다. 이 주제에서는 몇 가지 일반적인 오류를 설명하고 수정 방법을 제안합니다.
+ **AMI 스캔** - AMI를 스캔할 때 여러 가지 문제가 발생할 수 있습니다.
  + AMI를 스캔할 수 있는 AWS Marketplace 권한을 부여하지 않았습니다. AMI에 액세스할 수 있도록 AWS Marketplace 권한을 부여하세요. 또는 권한을 부여했지만 권한 경계가 너무 제한적입니다. 자세한 내용은 [AMI에 대한 AWS Marketplace 액세스 권한 부여](single-ami-marketplace-ami-access.md) 단원을 참조하세요.
  + 스캔을 통해 AMI에서 보안 문제 또는 일반적인 취약점 및 노출(CVE)이 발견되면 이미지의 운영 체제에 최신 패치를 사용합니다. 자세한 내용은 [에 대한 AMI 기반 제품 요구 사항 AWS Marketplace](product-and-ami-policies.md) 단원을 참조하세요.

  AMI 빌드에 대한 일반 지침은 [와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace](best-practices-for-building-your-amis.md) 섹션을 참조하세요.
+ **AWS Marketplace Management Portal 필드** -의 일부 필드에는 매우 구체적인 정보가 AWS Marketplace Management Portal 필요합니다.
  + 필드에서 무엇을 요청하는지 잘 모르겠으면 콘솔에서 세부 정보를 확인하세요. 대부분의 필드 위에는 텍스트 설명이 있고, 필드 아래에는 서식 요구 사항이 있습니다.
  + 유효하지 않은 필드가 하나 이상 있는 양식을 제출하려고 하면 문제 목록이 표시됩니다. 문제 해결에 도움이 되는 권장 조치가 제공됩니다.
  +  ARN을 입력하라는 요청을 받으면 일반적으로 콘솔의 다른 곳에서 ARN을 찾을 수 있습니다. 예를 들어 AMI에 대한 AWS Marketplace 액세스 권한을 부여하기 위해 생성한 IAM 역할의 ARN은 IAM 콘솔의 [ 역할 페이지에](https://console.aws.amazon.com/iam/home?region=us-east-1#/roles) 있습니다. 모든 ARN은 형식이 비슷합니다. 예를 들어 IAM 역할 ARN은 *arn:aws:iam::123456789012:role/exampleRole* 형식입니다.
  + 로고와 비디오는 콘텐츠로 직접 연결되는 URL로 제공해야 합니다. 로고 형식에 대한 자세한 내용은 [회사 및 제품 로고 요구 사항](product-submission.md#seller-and-product-logos) 섹션을 참조하세요.

  제품 및 버전 변경 요청 제출에 대한 자세한 내용은 [에 게시할 제품 제출 AWS Marketplace](product-submission.md) 섹션을 참조하세요.
+ **제품 로드 양식(PLF) 문제** - PLF에는 스프레드시트에 포함된 지침이 들어 있습니다. 전체 지침은 지침 표에 나와 있습니다. 각 필드에는 작성 방법에 대한 지침이 있습니다. 필드를 선택하면 지침이 표시됩니다.
+ **요청 진행 중** - 일부 요청은 병렬로 발생할 수 없습니다. 제품의 특정 정보 업데이트 요청은 한 번에 하나씩만 진행할 수 있습니다. AWS Marketplace Management Portal의 **서버 제품** 페이지에 있는 **요청** 탭에서 아직 검토 중인 모든 요청을 볼 수 있습니다. 의도하지 않은 보류 중인 요청이 있는 경우 요청을 취소하고 원하는 변경 내용이 포함된 새 요청을 제출할 수 있습니다.
  + (추가 또는 제한하는) 버전 업데이트가 진행 중이면 버전 정보를 업데이트할 수 없습니다.
  +  AWS Marketplace 판매자 운영 팀에서 보류 중인 요청이 있는 경우 새 변경 사항을 제출할 수 없습니다.
+ **설명 없는 오류** - 제출이 설명 없이 실패하면 다시 시도하세요. 서버 부하 때문에 제출이 실패하는 경우가 가끔 있습니다.

여전히 변경 요청에 문제가 있으면 [AWS Marketplace 판매자 운영](https://aws.amazon.com/marketplace/management/contact-us/) 팀에 문의하세요.

# 와 함께 사용할 AMIs 빌드 모범 사례 AWS Marketplace
<a name="best-practices-for-building-your-amis"></a>

이 주제에서는와 함께 사용할 Amazon Machine Image(AMIs)를 빌드하는 데 도움이 되는 모범 사례와 참조를 제공합니다 AWS Marketplace. 에 빌드 및 제출된 AMIs 모든 AWS Marketplace 제품 정책을 준수해야 AWS Marketplace 합니다. 자세한 내용은 다음 섹션을 참조하세요.

**Topics**
+ [재판매 권한 확보](#rights)
+ [AMI 작성](#building-an-ami)
+ [용 AMI 준비 및 보안 AWS Marketplace](#securing-an-ami)
+ [AMI를 스캔하여 게시 요구 사항 확인](#self-service-scanning)
+ [소프트웨어가 AWS Marketplace AMI에서 실행 중인지 확인](#verifying-ami-runtime)

## 재판매 권한 확보
<a name="rights"></a>

무료가 아닌 Linux 배포판의 경우 AWS사용자는 제공된 Amazon Linux, RHEL 및 SUSE를 제외하고 해당 배포판에 대한 재판매 권한을 보호할 책임이 있습니다. Windows AMI에 대한 재판매 권한은 보호할 필요가 없습니다.

## AMI 작성
<a name="building-an-ami"></a>

AMI 빌드에 대한 다음 지침을 따릅니다.
+ AMI가 모든 [AWS Marketplace 정책을 충족하는지](https://docs.aws.amazon.com/marketplace/latest/userguide/product-and-ami-policies.html) 확인합니다.
+ 미국 동부(버지니아 북부) 리전에서 AMI를 생성합니다.
+  AWS Marketplace와 같이 신뢰할 수 있고 평판이 좋은 출처에서 제공하며 수명 주기가 분명히 정의되고 잘 유지되는 기존의 Amazon Elastic Block Store(Amazon EBS) 기반 AMI에서 제품을 생성합니다.
+ 최신 운영 체제, 패키지, 소프트웨어를 사용하여 AMI를 개발합니다.
+  모든 AMI는 HVM(하드웨어 가상 머신) 가상화 및 64비트 아키텍처를 사용하는 퍼블릭 Amazon EC2 AMI로 시작해야 합니다.
+ AMI 개발, 업데이트, 리퍼블리싱을 위한 반복적인 프로세스를 개발합니다.
+ 모든 버전과 제품에서 일관성 있는 운영 체제(OS) 사용자 이름을 사용합니다. 권장되는 기본 사용자 이름은 Linux 및 기타 Unix 유사 시스템의 경우 `ec2-user`이며, Windows의 경우 `Administrator`입니다.
+ 게시할 최종 AMI를 제출하기 전에 AMI에서 인스턴스를 AWS Marketplace 시작하고 테스트하여 의도한 최종 사용자 환경을 확인합니다. 이 인스턴스에서 모든 설치 방법, 기능 및 성능을 테스트합니다.
+ 다음과 같이 포트 설정을 확인합니다.
  + 개방형 방화벽, 역방향 프록시 및 SSRF 취약성에 대한 [모범 사례 보안 구성](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/)으로 **IMDS 지원** 옵션을 **IMDSv2**로만 설정해야 합니다. 최종 빌드 단계에서 새 AMI를 등록할 때 다음 CLI를 사용할 수 있습니다.
    + `aws ec2 register-image --name my-image --root-device-name /dev/xvda --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} --architecture x86_64 --imds-support v2.0`

AMI 생성에 대한 자세한 내용은 다음 리소스를 참조하세요.
+  *Amazon EC2 사용 설명서*의 [Amazon EBS 지원 AMI 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
+  *Amazon EC2 사용 설명서*의 [Windows Sysprep을 사용하여 Amazon EC2 AMI 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html) 
+  [EBS 기반 인스턴스에서 Amazon Machine Image(AMI)를 생성하려면 어떻게 해야 합니까?](https://aws.amazon.com/premiumsupport/knowledge-center/create-ami-ebs-backed/)
+  [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/) 
+  [Amazon EC2 인스턴스 유형](https://aws.amazon.com/ec2/instance-types/) 및 [인스턴스 유형](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/instance-types.html?r=2153) 
+  기본적으로 [IMDS V2에 맞는 AMI 구성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) 사용 

## 용 AMI 준비 및 보안 AWS Marketplace
<a name="securing-an-ami"></a>

보안 AMI 생성 시 다음 지침을 따르는 것이 좋습니다.
+ *Amazon EC2 사용 설명서*의 [공유 Linux AMI 지침](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/building-shared-amis.html) 사용
+ 최소 설치로 배포하도록 AMI를 설계하여 공격 대상 영역을 축소합니다. 필요 없는 서비스와 프로그램을 비활성화하거나 제거합니다.
+ 가능할 때마다 네트워크 트래픽에 종단 간 암호화를 사용합니다. 예를 들어 Secure Socket Layer(SSL)를 사용하여 귀사와 구매자 간 HTTP 세션을 보호합니다. 서비스에 유효한 최신 인증서만 사용하도록 합니다.
+ AMI 제품을 문서화할 때 구매자가 인스턴스에 대한 인바운드 트래픽 액세스를 제어할 수 있도록 보안 그룹 권장 사항을 제공합니다. 권장 사항은 다음을 지정해야 합니다.
  + 서비스가 작동하는 데 필요한 최소 포트 세트.
  + 관리 액세스를 위한 권장 포트 및 소스 IP 주소 범위.

  이러한 보안 그룹 권장 사항은 구매자가 적절한 액세스 제어를 구현하는 데 도움이 됩니다. AMI 제품에 새 버전을 추가하는 방법에 대한 자세한 내용은 [새 버전 추가](single-ami-versions.md#single-ami-adding-version) 섹션을 참조하세요.
+  AWS 컴퓨팅 환경에 대해 정기적으로 침투 테스트를 수행하거나 사용자를 대신하여 이러한 테스트를 수행할 타사를 고용하는 것이 좋습니다. 침투 테스트 요청 양식을 포함한 자세한 내용은 [AWS 침투 테스트](https://aws.amazon.com/security/penetration-testing/)를 참조하세요.
+ 웹 애플리케이션의 10대 취약성에 주의하며 애플리케이션을 빌드합니다. 자세한 내용은 [Open Web Application Security Project (OWASP) - Top 10 Web Application Security Risks](https://owasp.org/www-project-top-ten/)를 참조하세요. 새로운 인터넷 취약성이 발견되면 AMI에 제공되는 모든 웹 애플리케이션을 즉시 업데이트합니다. 이 정보를 포함하는 리소스로는 [SecurityFocus](http://www.securityfocus.com/vulnerabilities) 및 [NIST National Vulnerability Database](http://nvd.nist.gov/)가 있습니다.

보안과 관련된 자세한 내용은 다음 리소스를 참조하세요.
+  [AWS 클라우드 보안](https://aws.amazon.com/security/) 
+  [Center for Internet Security(CIS): 보안 벤치마크](http://benchmarks.cisecurity.org/downloads/benchmarks/) 
+  [Open Web Application Security Project(OWASP): Secure Coding Practices - 빠른 참조 가이드](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/) 
+  [OWASP Top 10 Web Application Security Risks](https://owasp.org/www-project-top-ten/) 
+  [CWE/SANS TOP 25 Most Dangerous Software Errors](http://www.sans.org/top25-software-errors/) 
+  [SecurityFocus](http://www.securityfocus.com/vulnerabilities) 
+  [NIST National Vulnerability Database](http://nvd.nist.gov/) 

## AMI를 스캔하여 게시 요구 사항 확인
<a name="self-service-scanning"></a>

 AWS Marketplace 카탈로그에 AMI를 게시하려면 AMI 스캔을 완료해야 합니다. AMI 스캔은 패치되지 않은 일반적인 취약성 및 노출(CVE)을 확인하고 AMI가 보안 모범 사례를 따르는지 확인합니다. 자세한 내용은 용 [AMI 준비 및 보안 섹션을 참조하세요. AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#securing-an-ami)

 AMI 스캔을 수행하려면 다음 옵션 중 하나를 선택합니다.

**옵션 1: 자산 메뉴**

이 방법을 사용하면 제품 생성 흐름 외부에서 AMI를 스캔할 수 있습니다. 또한 SaaS 빠른 시작을 사용하여 AMI 제품을 생성하지 않고 자산을 스캔해야 하는 SaaS 판매자에게도 유용합니다.

1. [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/homepage)의 **자산** 메뉴로 가서 **Amazon Machine Image**를 선택합니다.

1. **AMI 추가**를 선택하여 스캔 프로세스를 시작합니다.

1. 이 페이지로 돌아가면 AMI의 스캔 상태를 볼 수 있습니다.

**옵션 2: 변경 요청 메뉴**

이 옵션은 이미 AMI 제품을 생성한 판매자가 사용할 수 있습니다. 자세히 알아보려면 [AMI 기반 제품 생성](ami-single-ami-products.md) 단원을 참조하십시오.

1. [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/homepage)에서 **제품** 메뉴로 이동하여 **서버**를 선택합니다.

1. **서버 제품**에서 제품을 선택합니다. 이 제품은 AMI 기반 제품이어야 합니다. 모든 상태의 제품이 가능하며 다음 단계를 위해 **공개** 게시 상태일 필요는 없습니다.

1. **변경 요청** 메뉴로 이동하여 **버전 업데이트**를 선택합니다.

1. **‘버전 추가’ 테스트**를 선택합니다. 프롬프트에 따라 AMI 세부 정보가 포함된 요청을 제출합니다. 요청이 성공하면 AMI가 스캔을 성공적으로 통과했음을 나타냅니다. **새 버전 추가** 옵션과 달리, **‘버전 추가’ 테스트**는 스캔이 성공하면 AMI 기반 제품에 새 버전을 추가하지 않습니다.

**참고**  
AMI에 대한 AWS Marketplace 액세스 권한을 부여하는 방법에 대한 자세한 내용은 섹션을 참조하세요[AMI에 대한 AWS Marketplace 액세스 권한 부여](single-ami-marketplace-ami-access.md).

## 소프트웨어가 AWS Marketplace AMI에서 실행 중인지 확인
<a name="verifying-ami-runtime"></a>

소프트웨어가 AMI 제품에서 생성된 Amazon EC2 인스턴스에서 실행되고 있는지 런타임에 확인하기를 강력히 권장합니다.

Amazon EC2 인스턴스가 AMI 제품에서 생성되었는지 확인하려면 Amazon EC2에 내장된 인스턴스 메타데이터 서비스를 사용합니다. 다음 단계를 따라 검증을 수행할 수 있습니다. 메타데이터 서비스 사용에 대한 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [인스턴스 메타데이터 및 사용자 데이터](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)를 참조하세요.

1. *인스턴스 자격 증명 문서 획득*

   실행 중인 각 인스턴스에는 인스턴스에서 액세스할 수 있는 자격 증명 문서가 있으며, 이 문서는 인스턴스 자체에 대한 데이터를 제공합니다. 다음 예제는 인스턴스에서 curl을 사용하여 인스턴스 자격 증명 문서를 검색하는 방법을 보여줍니다.

   IMDSv2: (권장)

   ```
   TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
   && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document
    {
      "accountId" : "0123456789",
      "architecture" : "x86_64",
      "availabilityZone" : "us-east-1e",
      "billingProducts" : null,
      "devpayProductCodes" : null,
      "marketplaceProductCodes" : [ "0vg0000000000000000000000" ],
      "imageId" : "ami-0123456789abcdef1",
      "instanceId" : "i-0123456789abcdef0",
      "instanceType" : "t2.medium",
      "kernelId" : null,
      "pendingTime" : "2020-02-25T20:23:14Z",
      "privateIp" : "10.0.0.2",
      "ramdiskId" : null,
      "region" : "us-east-1",
      "version" : "2017-09-30"
   }
   ```

   IMDSv1:

   ```
   curl http://169.254.169.254/latest/dynamic/instance-identity/document{
      "accountId" : "0123456789",
      "architecture" : "x86_64",
      "availabilityZone" : "us-east-1e",
      "billingProducts" : null,
      "devpayProductCodes" : null,
      "marketplaceProductCodes" : [ "0vg0000000000000000000000" ],
      "imageId" : "ami-0123456789abcdef1",
      "instanceId" : "i-0123456789abcdef0",
      "instanceType" : "t2.medium",
      "kernelId" : null,
      "pendingTime" : "2020-02-25T20:23:14Z",
      "privateIp" : "10.0.0.2",
      "ramdiskId" : null,
      "region" : "us-east-1",
      "version" : "2017-09-30"
   }
   ```

1. *인스턴스 자격 증명 문서 확인*

   서명을 사용하여 인스턴스 자격 증명이 올바른지 확인할 수 있습니다. 이 프로세스에 대한 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [ 인스턴스 자격 증명 문서](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html)를 참조하세요.

1. *제품 코드 확인*

   게시할 AMI 제품을 처음으로 제출하면 AWS Marketplace에서 제품에 [제품 코드](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-getting-started.html#ami-product-codes)를 할당합니다. 인스턴스 자격 증명 문서의 `marketplaceProductCodes` 필드를 확인하여 제품 코드를 확인할 수도 있고, 메타데이터 서비스에서 직접 제품 코드를 가져올 수도 있습니다.

   IMDSv2:

   ```
   TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/product-codes
   ```

   제품 코드가 AMI 제품 코드와 일치하면 인스턴스가 제품에서 생성된 것입니다.

# 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 직접 호출을 수행하는 것이 좋습니다.

# 에서 AMI 제품에 대한 Amazon SNS 알림 수신 AWS Marketplace
<a name="ami-notification"></a>

제품의 고객 구독 변경 사항에 대한 알림을 받으려면 제품 생성 중에 AWS Marketplace 제공되는에 대한 Amazon Simple Notification Service(Amazon SNS) 주제를 구독하면 됩니다. 예를 들어, 고객이 비공개 제안을 수락하는 시점을 알 수 있습니다. [Amazon SNS 주제: aws-mp-subscription-notification](#ami-sns-subscription-message-body)은 AMI 제품에 사용할 수 있는 Amazon SNS 주제입니다. 이 주제는 구매자가 제품을 구독하거나 구독 해지할 때 알려줍니다. 이 알림은 시간당 및 연간 시간당을 포함한 시간당 요금 모델에 사용할 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.

**참고**  
제품 생성 프로세스 중에 제품에 대한 Amazon SNS 주제가 만들어집니다. 알림을 구독하려면 Amazon SNS 주제(예: `arn:aws:sns:us-east-1:123456789012:aws-mp-subscription-notification-PRODUCTCODE`)의 Amazon 리소스 이름(ARN)이 필요합니다. 서버 제품의 판매자 포털에서는 ARN을 사용할 수 없습니다. [AWS Marketplace 운영 팀](https://aws.amazon.com/marketplace/management/contact-us)에 문의하여 ARN을 요청합니다.

**Topics**
+ [Amazon SNS 주제: aws-mp-subscription-notification](#ami-sns-subscription-message-body)
+ [Amazon SQS 대기열을 Amazon SNS 주제에 구독](#subscribing-an-sqs-queue-to-an-sns-topic)

## Amazon SNS 주제: aws-mp-subscription-notification
<a name="ami-sns-subscription-message-body"></a>

`subscribe-success` 및 `subscribe-fail` 작업에 대한 `aws-mp-subscription-notification` 주제의 각 메시지는 다음과 같은 형식입니다.

```
{
    "action": "action-name",
    "customer-identifier": " X01EXAMPLEX",
    "product-code": "n0123EXAMPLEXXXXXXXXXXXX",
    "offer-identifier": "offer-abcexample123"
}
```

*<action-name>*은 알림에 따라 달라집니다. 가능한 작업은 다음과 같습니다.
+ `subscribe-success`
+ `subscribe-fail`
+ `unsubscribe-pending`
+ `unsubscribe-success`

`offer-identifier`는 작업이 `subscribe-success` 또는 `subscribe-fail`인 경우에만 알림에 포함됩니다. 작업이 `unsubscribe-pending` 또는 `unsubscribe-success`일 때는 알림에 포함되지 않습니다. 2024년 1월 이전에 생성된 제안의 경우, 이 식별자는 비공개 제안에 대한 알림에만 포함됩니다. 2024년 1월 및 그 이후에 생성된 제안의 경우, 이 식별자는 비공개 제안 및 공개 제안을 포함한 모든 제안에 대한 알림에 포함됩니다.

제안 유형에 대한 자세한 내용은 [계약 갱신 대시보드](https://docs.aws.amazon.com//marketplace/latest/userguide/agreements-renewals-dashboard.html)에서 [DescribeEntity API](https://docs.aws.amazon.com//marketplace/latest/APIReference/work-with-private-offers.html#describe-entity)의 응답 또는 계약의 제안 표시 여부를 참조하세요.

**참고**  
 [DescribeEntity API](https://docs.aws.amazon.com//marketplace/latest/APIReference/work-with-private-offers.html#describe-entity)의 경우 해당 제안에 대한 대상 지정 규칙의 패싯을 대상으로 하는를 계정 AWS 계정 에서 찾으면 비공개 제안입니다. 해당 제안 AWS 계정 에 대한 대상 지정 규칙의 패싯을 대상으로 하는가 계정에 없는 경우 공개 제안입니다.

## Amazon SQS 대기열을 Amazon SNS 주제에 구독
<a name="subscribing-an-sqs-queue-to-an-sns-topic"></a>

Amazon SQS 대기열을 제공된 SNS 주제에 구독하는 것이 좋습니다. SQS 대기열을 생성하고 대기열을 주제에 구독하는 방법에 대한 자세한 지침은 *Amazon Simple Notification Service 개발자 안내서*의 [ Amazon SQS 대기열을 Amazon SNS 주제에 구독](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html)을 참조하세요.

**참고**  
제품을 판매하는 데 AWS 계정 사용되는 에서만 AWS Marketplace SNS 주제를 구독할 수 있습니다. 하지만 메시지를 다른 계정에 전달할 수 있습니다. 자세한 내용은 *Amazon Simple Notification Service 개발자 안내서*의 [다른 계정의 Amazon SQS 대기열로 Amazon SNS 메시지 전송](https://docs.aws.amazon.com/sns/latest/dg/sns-send-message-to-sqs-cross-account.html)을 참조하세요.

### 알림을 위한 SQS 대기열 폴링
<a name="polling-an-sqs-for-notifications"></a>

SQS 대기열을 SNS 주제에 구독하면 메시지가 SQS에 저장됩니다. 대기열을 지속적으로 폴링하는 서비스를 정의하고, 메시지를 찾고, 그에 따라 메시지를 처리해야 합니다.

# AWS Marketplace의 AMI 제픔 체크리스트
<a name="aws-marketplace-listing-checklist"></a>

Amazon Machine Image(AMI) 제품을 AWS에 제출하기 전에 이 체크리스트를 사용하여 제출을 검증합니다. 이러한 요구 사항을 따르면 효율적인 게시 프로세스를 보장하는 데 도움이 됩니다.

## 제품 사용
<a name="product-usage-checklist"></a>
+ AMI는 프로덕션에 바로 사용할 수 있습니다.
+ AMI는 시간이나 다른 측정에 따라 제품 사용을 제한할 수 없습니다.
+ AMI는 원클릭 이행 경험과 호환됩니다.
+ 제품을 활용하는 데 필요한 모든 것이 고객 애플리케이션을 비롯하여 소프트웨어에 있습니다. 소프트웨어 패키지 또는 클라이언트 애플리케이션과 같이 외부 종속성이 필요한 제품은 적절한 공개가 포함된 [제품 사용 정책](product-and-ami-policies.md#product-usage)을 준수합니다.
+ AMI는 필수 [에 대한 AMI 기반 제품 요구 사항 AWS Marketplace](product-and-ami-policies.md)을 충족합니다.
+ 제품을 사용하기 위해 추가 라이센스가 필요하지 않음.
+ 구매자는 제품을 사용하기 위해 개인 식별 정보(예: 이메일 주소)를 제공할 필요가 없습니다.

## AMI 준비
<a name="ami-preparation-checklist"></a>
+ 제품 이름 및 설명은 제공하는 AMI 제품의 **설명** 필드와 일치해야 합니다.
+ 하드웨어 가상 머신(HVM) 가상화 및 64비트 아키텍처를 사용합니다.
+ 제품에 알려진 취약성, 맬웨어 또는 바이러스가 없습니다.
+ 고객은 네트워크를 통해 인스턴스에 액세스하고 관리 액세스 권한을 사용할 수 있습니다.
+ AMI에는 하드 코딩된 보안 암호가 없습니다. 하드 코딩된 보안 암호의 예로는 시스템 사용자 및 서비스의 기본 암호, 프라이빗 키 및 자격 증명이 있습니다.
+ AMI에는 하드 코딩된 SSH 인증 퍼블릭 키가 없습니다.
+ ‘버전 추가’ 검증 테스트가 문제 없이 성공적으로 완료되었습니다.

## Windows AMI
<a name="windows-amis-checklist"></a>
+ Windows Server 2012 이상 운영 체제를 사용하는 경우, AMI는 최신 버전의 [EC2Launch v2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2-install.html)를 사용합니다.
+ EC2Launch v2를 사용하는 경우, 다음을 완료해야 합니다.
  + [Amazon EC2Launch 설정](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2-settings.html#ec2launch-v2-ui)의 **관리자 계정 설정**에서 **무작위**를 선택하여 런타임 시 관리자 암호를 생성합니다.
  + [Amazon EC2Launch 설정](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2-settings.html#ec2launch-v2-ui)에서 **Sysprep 이후 SSM 서비스를 다시 활성화하고 시작하기**를 선택합니다.
  + [EC2 v2 작업 구성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2-settings.html#ec2launch-v2-task-configuration)에 **UserData**를 추가합니다.
+ Windows Server 2012 이상 버전의 경우 [EC2Config](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_Install.html)를 사용하지 마세요. EC2Config가 필요한 경우, 최신 버전을 사용해야 합니다.
+ EC2Config를 사용하는 경우, AMI의 [설정 파일](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2config-service.html#UsingConfigXML_WinAMI)에서 다음 파라미터를 활성화합니다.
  + `Ec2SetPassword`
  + `Ec2WindowsActivate`
  + `Ec2HandleUserData`
+ 게스트 계정이나 원격 데스크톱 사용자가 없어야 합니다.

## Linux AMI
<a name="linux-amis-checklist"></a>
+ 수퍼유저로의 원격 로그인은 금지됩니다.
+ 암호 기반 원격 액세스는 금지됩니다.

## 제품 로드 양식 또는 제품 탭
<a name="product-load-form-checklist"></a>
+ 모든 필수 필드가 완료되었습니다.
+ 모든 값이 지정된 문자 제한 내에 있습니다.
+ 모든 URL이 오류 없이 로드됩니다.
+ 제품 이미지는 최소 110픽셀 너비/1:1 \$1 2:1 비율입니다.
+ 활성화된 모든 인스턴스 유형의 요금(시간별, 시간 기반 월별 요금 및 시간 기반 연별 요금 모델)이 지정되었습니다.
+ 월별 요금(시간 기반 월별 및 월별 요금 모델)이 지정되었습니다.

# 에 대한 AMI 기반 제품 요구 사항 AWS Marketplace
<a name="product-and-ami-policies"></a>

AWS Marketplace 는 모든 Amazon Machine Image(AMI) 제품 및 제품에 대해 다음 정책을 유지합니다. 이 섹션의 정책은 고객에게 안전하고 보안이 철저하며 신뢰할 수 있는 컴퓨팅 플랫폼을 제공하기 위한 것입니다.

제출 시 모든 제품 및 관련 메타데이터를 검토하여 현재 AWS Marketplace 정책을 충족하거나 초과하는지 확인합니다. 이러한 정책은 진화하는 보안 지침에 따라 정기적으로 업데이트됩니다.는 제품을 AWS Marketplace 지속적으로 스캔하여 기존 목록이 이러한 요구 사항에 대한 변경 사항을 계속 충족하는지 확인합니다. 제품이 규정을 준수하지 않는 경우 AWS Marketplace 는 판매자에게 문의하여 새 표준을 충족하도록 제품을 업데이트합니다. 경우에 따라서는 문제가 해결될 때까지 새 구독자가 제품을 일시적으로 사용할 수 없게 될 수 있습니다. 이 프로세스는 모든 사용자에 대해 AWS Marketplace 플랫폼의 보안 및 신뢰성을 유지하는 데 도움이 됩니다.

제품을 제출하기 전에의 ['버전 추가' 테스트](https://aws.amazon.com/marketplace/management/products/server) 기능을 사용하여 현재 정책을 준수하는 AWS Marketplace Management Portal 것이 좋습니다.

**Topics**
+ [AMI 제품 판매자 정책](#ami-product-seller-policies)
+ [보안 정책](#ami-security)
+ [아키텍처 정책](#architecture)
+ [AMI 제품 사용 지침](#ami-product-usage-instructions)
+ [AMI 제품 버전 정책](#ami-product-version-policies)
+ [FPGA 제품 요구 사항](#ami-fpga-product-requirements)
+ [고객 정보 정책](#customer-information)
+ [제품 사용 정책](#product-usage)

## AMI 제품 판매자 정책
<a name="ami-product-seller-policies"></a>

모든 AMI는 다음 판매자 정책을 준수해야 합니다.
+ 기본적으로 AWS Marketplace 판매자는 최대 75개의 퍼블릭 AMI 제품 목록으로 제한됩니다. 한도를 초과하는 모든 판매자는 정기적인 성과 검토를 받아야 하며 성능이 저조한 리스팅을 제한해야 할 수 있습니다.는 단독 재량에 따라이 한도에 대한 증가를 부여하고 취소할 AWS Marketplace 수 있습니다.

## 보안 정책
<a name="ami-security"></a>

### 정책 생성
<a name="general-policies"></a>

모든 AMI는 다음 정책을 준수해야 합니다.
+ AMI는 [AWS Marketplace AMI 스캔 도구](https://aws.amazon.com/marketplace/management/products/server)에서 수행하는 모든 보안 검사를 통과해야 하며, 알려진 취약성이나 맬웨어가 없어야 합니다.
+ AMI는 현재 지원되는 운영 체제 및 소프트웨어를 사용해야 합니다. 수명이 다한 운영 체제 및 소프트웨어는 허용되지 않습니다.
+ 인스턴스 서비스에 대한 암호 기반 인증은 금지됩니다. 이는 시작 시 사용자가 암호를 생성, 재설정 또는 정의한 경우에도 적용됩니다. Null 암호와 빈 암호는 허용되지 않습니다.

  예외:
  + Windows 인스턴스에서 `EC2Config/EC2Launch`가 생성한 관리자 암호.
  + 다른 인증 방법이 없는 경우 호스트 서비스(예: 웹 애플리케이션)에 대한 비관리자 액세스. 강력한 암호를 사용하는 경우, 각 인스턴스에 대해 무작위로 생성하고, 서비스 관리자가 초기 인증을 위해 한 번 사용하고, 처음 로그인한 직후 변경해야 합니다.
+ AMI에는 시스템 사용자 및 서비스 암호(해시된 암호 포함), 프라이빗 키 또는 자격 증명과 같은 하드 코딩된 보안 암호가 포함되어서는 안 됩니다.
+ AMIs AWS 서비스에 액세스하기 위해 AWS 자격 증명을 요청해서는 안 됩니다. 제품에 AWS 서비스에 대한 액세스가 필요한 경우 인스턴스에 최소 권한 AWS Identity and Access Management (IAM) 역할을 할당해야 합니다. 사용자는 수동으로 또는 CloudFormation 템플릿을 사용하여 역할을 생성할 수 있습니다. CloudFormation 제공 방법을 통해 제품에 단일 AMI 시작이 활성화된 경우, 사용 지침에 최소 권한의 IAM 역할을 생성하는 방법에 대한 명확한 지침이 포함되어야 합니다. 자세한 내용은 [AWS CloudFormation을 사용하여 AMI 기반 제품 제공을 참조하세요](https://docs.aws.amazon.com/marketplace/latest/userguide/cloudformation.html).
+ 판매자는 고객의 실행 중인 인스턴스에 액세스해서는 안 됩니다. 지원 또는 기타 목적으로 이러한 액세스가 필요한 경우, 고객에게 명시적으로 활성화하도록 지시할 수 있습니다.

### SSH(보안 쉘) 액세스 정책
<a name="ssh-access"></a>

SSH(보안 쉘) 액세스를 제공하는 AMI는 [일반 정책](#general-policies) 외에도 다음 보안 정책을 준수해야 합니다.
+ AMI에서 SSH를 사용하는 암호 인증을 허용해서는 안 됩니다. 이렇게 하려면 `sshd_config` 파일에서 `PasswordAuthentication`을 `no`로 설정합니다.
+ AMI는 수퍼유저의 암호 기반 원격 로그인을 비활성화해야 합니다. 자세한 내용은 [루트 사용자의 암호 방식 원격 로그인 비활성화](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/building-shared-amis.html#public-amis-disable-password-logins-for-root)을 참조하세요.
+ AMI에는 SSH 액세스를 위한 승인된 공개 키가 포함되어서는 안 됩니다.
+ AMIs SSH는 AWS Marketplace 내부 심사 절차에서 액세스할 수 있어야 합니다.
  + SSH 서비스는 AMI 스캔을 위해 지정된 TCP 포트에서 수신 대기해야 합니다. 자세한 내용은 [새 버전 추가](https://docs.aws.amazon.com/marketplace/latest/userguide/single-ami-versions.html#single-ami-adding-version)를 참조하세요.
  + SSH는 인스턴스 시작 시 Amazon Elastic Compute Cloud(Amazon EC2)에서 할당한 IP 주소에 대해 서브넷 `10.0.0.0/16`과 `10.2.0.0/16`에서 액세스할 수 있어야 합니다.

### Linux 및 기타 Unix 유사 운영 체제 기반 AMI 정책
<a name="linux-and-other"></a>

[일반 정책](#general-policies) 외에도 Linux 및 기타 Unix와 유사한 운영 체제를 기반으로 하는 AMI는 다음 보안 정책을 준수해야 합니다.
+ AMI는 사용자가 완전한 액세스 권한을 갖도록 허용해야 합니다.(예: `sudo` 액세스 허용)

### Windows 기반 AMI에 대한 정책
<a name="windows-based-amis"></a>

Windows 기반 AMI는 [일반 정책](#general-policies) 외에도 다음 보안 정책을 준수해야 합니다.
+ AMI는 게스트 계정을 포함되어서는 안 됩니다.
+ 관리자 계정만 인스턴스에 대한 원격 데스크톱 액세스 권한을 부여받을 수 있습니다.
+ Windows AMI는 [EC2Launch](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2launch-v2.html)(또는 Windows 2016 및 그 이전용 [EC2Config](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2config-service.html))에서 다음 옵션을 활성화하여 관리자 암호를 생성해야 합니다.
  + `Ec2SetPassword`
  + `Ec2WindowsActivate`
  + `Ec2HandleUserData`
+ 자동 심사에 AMI를 사용할 수 있어야 합니다. 다음 요구 사항 중 하나 이상을 구현해야 합니다.
  + (권장 옵션) SSM 에이전트가 설치되어 있으며 관리 권한과 아웃바운드 네트워크 액세스 권한이 있습니다.
  + [Windows 원격 관리(WinRM) 서비스](https://learn.microsoft.com/en-us/windows/win32/winrm/portal)가 활성화되고 TCP 포트 `5985`에서 수신 대기하며, 인스턴스 시작 시 Amazon Elastic Compute Cloud(Amazon EC2)에서 할당한 IP 주소에 대해 서브넷 `10.0.0.0/16` 및 `10.2.0.0/16`에서 액세스할 수 있습니다.
  + [Microsoft 서버 메시지 블록(SMB) 프로토콜 및 공통 인터넷 파일 시스템(CIFS) 프로토콜 서비스가](https://learn.microsoft.com/en-us/windows/win32/fileio/microsoft-smb-protocol-and-cifs-protocol-overview) 활성화되어 있고, TCP 포트 `139` 및 `445`에서 수신 대기하며, 인스턴스 시작 시 Amazon Elastic Compute Cloud(Amazon EC2)에서 할당한 IP 주소에 대해 서브넷 `10.0.0.0/16` 및 `10.2.0.0/16`에서 액세스할 수 있습니다.

## 아키텍처 정책
<a name="architecture"></a>

모든 AMI는 다음 아키텍처 정책을 준수해야 합니다.
+ 에 대한 소스 AMIs는 미국 동부(버지니아 북부) 리전에서 제공해야 AWS Marketplace 합니다.
+ AMI는 HVM 가상화를 사용해야 합니다.
+ AMI는 반드시 x86-64 또는 64비트 ARM 아키텍처를 사용해야 합니다.
+ AMI는 Amazon Elastic Block Store(Amazon EBS)에서 지원하는 AMI여야 합니다. Amazon Simple Storage Service가 지원하는 AMI는 지원되지 않습니다.
+ AMI는 암호화된 EBS 스냅샷을 사용하면 안 됩니다.
+ AMI는 암호화된 파일 시스템을 사용하면 안 됩니다.
+ AMIs 모든에서 실행 AWS 리전 되고 리전에 구애받지 않도록 빌드되어야 합니다. 리전에 따라 다르게 빌드된 AMI는 허용되지 않습니다.

## AMI 제품 사용 지침
<a name="ami-product-usage-instructions"></a>

AMI 제품에 대한 사용 지침을 생성할 때에는 [에 대한 AMI 및 컨테이너 제품 사용 지침 생성 AWS Marketplace](ami-container-product-usage-instructions.md)의 단계와 지침을 따릅니다.

## AMI 제품 버전 정책
<a name="ami-product-version-policies"></a>

AWS Marketplace 는 S-AMI, CloudFormation 템플릿이 포함된 AMI 및 컨테이너 제품을 사용하여 AWS 고객과 판매자의 버전 관리 환경을 자동화합니다. 자동화 버전 아카이브를 사용하면 판매자가 2년 이상 제한한 모든 제품 버전이 자동으로 아카이브됩니다. 보관된 버전은 더 이상 신규 고객을 AWS Marketplace 위해에서 시작할 수 없지만 기존 사용자는 AMI ID를 지정하여 시작 템플릿 및 Amazon EC2 Auto Scaling 그룹을 통해 아카이브된 버전을 계속 사용할 수 있습니다. 지난 13개월 동안 새 인스턴스를 시작하는 데 사용되지 않은 아카이브된 버전은 모두 삭제됩니다. 아카이브된 버전이 삭제되면 더 이상 신규 또는 기존 사용자가 해당 버전을 시작할 수 없습니다.

## FPGA 제품 요구 사항
<a name="ami-fpga-product-requirements"></a>

표준 AMI 제품 요구 사항 외에도 FPGA 제품은 다음 요구 사항을 충족해야 합니다.
+ AFI IDs AWS Marketplace 판매자 계정이 소유해야 합니다.
+ 각 제품 버전은 최대 15개의 AFI IDs를 지원하므로 관리 가능한 제품 복잡성을 유지하면서 여러 FPGA 구성을 제공할 수 있습니다.
+ AFI IDs 미국 동부(버지니아 북부) 리전에서 생성하고 등록해야 합니다.
+ 리전 가용성은 F2 인스턴스 유형이 지원되는 리전으로 제한됩니다.
+ 버전 생성 중에 제공되는 IAM 액세스 역할에는 제공된 AFIs와 공유할 수 있는 권한이 있습니다. 필요한 권한에 대한 자세한 내용은 [AWS Marketplace에 FPGA 이미지에 대한 액세스 권한 부여를 참조하세요](https://docs.aws.amazon.com/marketplace/latest/userguide/single-ami-marketplace-ami-access.html#single-ami-marketplace-afi-access).

## 고객 정보 정책
<a name="customer-information"></a>

모든 AMI는 다음과 같은 고객 정보 정책을 준수해야 합니다.
+ 소프트웨어는 기존 보유 라이선스 사용(BYOL)에서 요구하는 경우를 제외하고 고객의 인지와 분명한 동의 없이 고객 데이터를 수집하거나 내보내면 안 됩니다. 고객 데이터를 수집하거나 내보내는 애플리케이션은 다음 지침을 준수해야 합니다.
  + 고객 데이터 수집은 셀프 서비스이고, 자동화되고, 안전해야 합니다. 구매자는 판매자가 소프트웨어 배포를 승인할 때까지 기다릴 필요가 없어야 합니다.
  + 고객 데이터 수집은 Marketplace 이용 약관 AWS, [AWS 서비스](https://aws.amazon.com/service-terms/) 약관, [AWS 개인 정보 보호 고지](https://aws.amazon.com/privacy/) 및 [AWS 고객](https://aws.amazon.com/agreement/) 계약을 포함하되 이에 국한되지 않는 와의 계약과 일치해야 합니다. [AWS](https://aws.amazon.com/legal/seller-terms/) 
  + 결제 정보를 수집하면 안 됩니다.

## 제품 사용 정책
<a name="product-usage"></a>

모든 AMI는 다음과 같은 제품 사용 정책을 준수해야 합니다.
+ 제품은 시간, 사용자 수 또는 그 밖의 제한 사항에 따라 제품이나 제품 기능에 대한 액세스를 제한해서는 안 됩니다. 베타 및 출시 전 제품이나, 시험판 또는 평가 기능을 제공하는 것이 유일한 목적인 제품은 지원되지 않습니다. AWS Marketplace에서 동일한 유료 버전을 사용할 수 있는 경우 상용 소프트웨어의 개발자, 커뮤니티 및 BYOL 에디션이 지원됩니다.
+ 모든 AMI는 웹 사이트에서 실행 환경 또는 AWS CloudFormation을 통한 AMI 기반 제공과 호환되어야 합니다. 웹 사이트에서 실행의 경우, AMI는 인스턴스를 생성할 때 올바르게 기능하기 위해 고객 또는 사용자 데이터를 요구할 수 없습니다.
+ AMI와 해당 소프트웨어는 셀프 서비스 방식으로 배포할 수 있어야 하며 추가 결제 방법이나 비용이 필요 없어야 합니다. 배포 시 외부 종속성이 필요한 애플리케이션은 다음 지침을 준수해야 합니다.
  + 요구 사항은 목록의 설명 또는 사용 지침에 명시되어야 합니다. 예: *이 제품을 올바르게 배포하려면 인터넷 연결이 필요합니다. 배포 시 <패키지 목록> 패키지가 다운로드됩니다.*
  + 판매자는 모든 외부 종속성의 사용과 가용성 및 보안에 대한 책임이 있습니다.
  + 외부 종속성을 더 이상 사용할 수 없는 경우 제품 AWS Marketplace 도에서 제거해야 합니다.
  + 외부 종속성은 추가 결제 방법이나 비용이 필요 없어야 합니다.
+ 외부 APIs 또는 판매자나 제3자가 AWS 서비스 관리하는 등 구매자의 직접적인 통제를 받지 않는 외부 리소스에 지속적으로 연결해야 하는 AMIs는 다음 지침을 따라야 합니다.
  + 요구 사항은 목록의 설명 또는 사용 지침에 명시되어야 합니다. 예: *이 제품은 지속적인 인터넷 연결이 필요합니다. 정상적으로 작동하려면 <리소스 목록>과 같은 지속적인 외부 서비스가 필요합니다.*
  + 판매자는 모든 외부 리소스의 사용과 가용성 및 보안에 대한 책임이 있습니다.
  + 외부 리소스를 더 이상 사용할 수 없는 경우 AWS Marketplace 에서도 제품을 제거해야 합니다.
  + 외부 리소스는 추가 결제 방법이나 비용이 필요 없어야 하며 연결 설정이 자동화되어야 합니다.
+  AWS Marketplace에서 사용할 수 없는 업셀 서비스, 추가 제품 또는 다른 클라우드 플랫폼으로 사용자를 유도하는 언어가 제품 소프트웨어 및 메타데이터에 포함되면 안 됩니다.
+ 제품이 다른 제품이나 다른 ISV 제품의 추가 기능인 경우 제품 설명에 해당 제품은 다른 제품의 기능을 확장한다는 내용과 다른 제품이 없으면 해당 제품의 유용성이 매우 제한된다는 내용을 명시해야 합니다. 예: *이 제품은 <제품 이름>의 기능을 확장하며, <제품 이름> 제품이 없으면 이 제품의 유용성이 매우 제한됩니다. 이 목록의 모든 기능을 사용하려면 <제품 이름>의 자체 라이선스가 필요할 수 있습니다.*