컨테이너 제품 결제, 측정 및 라이선스 통합
AWS Marketplace는 다른 AWS 서비스와 통합되어 컨테이너 제품을 위한 측정 및 계약 기반 요금을 제공합니다. 사용량 요금이 적용되는 컨테이너 기반 제품의 경우 AWS Marketplace Metering Service를 사용하여 제품 사용 권한을 확인하고 요금 청구를 위해 사용량을 측정할 수 있습니다. 계약 가격이 적용되는 컨테이너 기반 제품의 경우 AWS License Manager를 사용하여 라이선스를 제품과 연결할 수 있습니다. 다음 섹션에서는 AWS Marketplace Metering Service를 사용한 시간당 및 사용자 지정 측정과 AWS License Manager를 사용한 계약 요금에 대한 자세한 정보를 제공합니다.
주제
AWS Marketplace Metering Service로 시간당 및 사용자 지정 측정
제품 사용 권한을 확인하고 요금을 청구할 사용량을 측정하려면 AWS Marketplace 측정 서비스를 사용합니다. 판매자 고유의 요금 단위를 정의하고 사용량을 측정한 후 AWS가 요금을 청구하게 하려면 MeterUsage API 작업을 사용하여 통합해야 합니다. 사용된 작업 또는 포드 수를 기준으로 제품 요금을 책정하고 AWS가 해당 사용량을 자동으로 측정하게 하려면 RegisterUsage API 작업을 사용하여 통합합니다. 두 가지 요금 유형 모두 AWS Marketplace Metering Service와 통합하는 방법을 변경하지 않고 장기 계약 요금을 추가할 수 있습니다.
AWS Marketplace Management Portal에서 새 컨테이너 제품을 생성하면 제품을 AWS Marketplace Metering Service와 통합하는 데 사용되는 제품 식별자 세트(제품 코드와 퍼블릭 키)가 제공됩니다.
권한 부여
AWS Marketplace Metering Service와 통합하면 유료 소프트웨어를 실행하는 고객이 AWS Marketplace에서 제품을 구독하고 있는지 확인할 수 있으며, 이를 통해 컨테이너 시작 시 무단 사용을 방지할 수 있습니다. 권한을 확인하려면 요금 모델에 따라 MeterUsage 또는 RegisterUsage API 작업을 사용합니다. 시간당 요금 및 고정 월별 요금 모델의 경우 RegisterUsage
API 작업을 사용합니다. 사용자 지정 측정 요금 모델의 경우 MeterUsage
API 작업을 사용합니다.
구매자에게 제품에 대한 권한이 없는 경우 이러한 API 작업에서 CustomerNotEntitledException
예외가 반환됩니다.
참고
구매자가 제품을 실행하는 동안 제품 가입을 취소하면 계속해서 실행할 수 있습니다. 그러나 제품에 대한 추가 컨테이너를 시작할 수는 없습니다.
통합 지침
컨테이너 제품을 생성 및 게시하고 권한 부여 및 측정을 위해 MeterUsage
또는 RegisterUsage
API 작업을 사용하는 경우 다음 지침에 유의하세요.
-
소프트웨어 또는 Docker 컨테이너 이미지 내에서 AWS 보안 인증 정보를 구성하지 마세요. 구매자의 AWS 보안 인증 정보는 컨테이너 이미지가 Amazon ECS 작업 또는 Amazon EKS 포드 내에서 실행 중일 때 런타임에 자동으로 획득됩니다.
-
Amazon EKS에서
MeterUsage
또는RegisterUsage
API 작업을 호출하려면 지원되는 AWS SDK를 사용해야 합니다. Amazon EKS의MeterUsage
또는RegisterUsage
통합을 테스트하려면 Kubernetes 1.13.x 이상을 실행하는 Amazon EKS 클러스터를 실행해야 합니다. 포드를 지원하려면 AWS Identity and Access Management(IAM) 역할에 Kubernetes 1.13이 필요합니다. 실행 중인 포드가 Amazon EKS에서 이러한 작업을 호출하는 데 필요한 AWS 보안 인증 정보를 얻으려면 IAM 역할이 필요합니다. -
로컬 개발도 가능하지만
PlatformNotSupportedException
예외가 발생합니다. 이 예외는 AWS 컨테이너 서비스(Amazon ECS, Amazon EKS 및 Fargate)에서 컨테이너를 시작하면 발생하지 않습니다.
지원되는 AWS 리전
모든 AWS Marketplace 지원 AWS 리전 목록을 보려면 글로벌 인프라 웹 사이트의 리전 표
측정할 AWS 리전 획득
측정에 사용할 컨테이너를 MeterUsage
또는 RegisterUsage
API 작업과 통합할 때, 특정 AWS 리전을 사용하도록 AWS SDK를 구성하지 마세요. 리전은 런타임에서 동적으로 가져와야 합니다.
예를 들어 고객이 Amazon ECS 작업 또는 Amazon EKS 포드를 시작합니다. Amazon ECS 작업 또는 Amazon EKS 포드가 시작된 리전과 다른 리전에서 RegisterUsage
API 작업이 호출됩니다. 따라서 RegisterUsage
API 작업에서 InvalidRegionException
오류를 throw합니다.
AWS SDK 언어는 AWS_REGION
을 일관되게 결정하지 않습니다. SDK가 AWS_REGION
을 자동으로 선택하지 않으면 소프트웨어를 수동으로 작성하여 AWS_Region
을 결정해야 합니다. 예를 들어 AWS SDK for Java는 환경 변수 또는 기타 구성이 존재하지 않을 경우 자동으로 Amazon EC2 인스턴스 메타데이터(구체적으로 ec2InstanceMetadata
)를 사용하여 리전을 결정합니다. 이 경우 AWS_REGION
환경 변수가 없을 때에만 ec2InstanceMetadata
를 호출합니다.
런타임에 동적으로 AWS 리전을 획득하는 방법에 대한 자세한 내용은 사용하는 프로그래밍 언어에 대한 AWS SDK 개발자 안내서
측정 수정 방지
구매자가 RegisterUsage
또는 MeterUsage
호출을 수정하거나 재정의할 수 있도록 하면 바람직하지 않은 청구 및 결제 문제가 발생할 수 있습니다. 측정 및 권한 부여 로직을 통합하는 것이 좋습니다.
측정 수정을 방지하기 위해 제품을 엔지니어링할 때 다음 사항에 유의해야 합니다.
-
구매자가
CMD
또는ENTRYPOINT
명령을 포함하고 있는 새 이미지 계층을 삽입할 수 있는 경우 구매자가 판매자의 컨테이너 이미지를 통해 실행하는 소프트웨어에RegisterUsage
또는MeterUsage
를 직접 통합하세요. 그러지 않으면 기본 이미지에서CMD
또는ENTRYPOINT
를 통해 실행되는RegisterUsage
또는MeterUsage
호출을 구매자가 재정의할 가능성이 있습니다. -
RegisterUsage
또는MeterUsage
에 대한 입력 값으로 소프트웨어에 사용되는 AWS Marketplace 제품 코드를 구매자가 수정할 수 없는 방식으로 관리하는 것이 좋습니다. 하지만 제품이 AWS CloudFormation, 차트 Helm 또는 Kubernetes 매니페스트처럼 고객이 재정의할 수 있는 방식으로 제품 코드를 관리하는 경우에는 신뢰할 수 있는 AWS Marketplace 제품 코드 목록을 유지해야 합니다. 이는 소프트웨어가RegisterUsage
또는MeterUsage
에 입력으로 전달하는 제품 코드의 유효성을 확보하기 위한 조치입니다. -
신뢰할 수 있는 제품 코드 중에서 무료 제품에 사용되는 코드가 있다면 유료 제품 코드를 대신해서 사용하지 못하도록 해야 합니다.
AWS License Manager를 사용한 계약 가격
계약 가격이 적용되는 컨테이너 기반 제품의 경우 AWS License Manager를 사용하여 라이선스를 제품과 연결합니다.
AWS License Manager는 고객이 구매한 라이선스(권한이라고도 함)를 애플리케이션에서 추적하고 업데이트할 수 있게 해주는 라이선스 관리 도구입니다. 이 섹션에서는 제품을 AWS License Manager와 통합하는 방법에 대한 정보를 제공합니다. 통합이 완료되면 제품 목록을 AWS Marketplace에 게시할 수 있습니다.
AWS License Manager에 대한 자세한 내용은 AWS License Manager 사용 설명서 및 AWS CLI 명령 참조의 AWS License Manager 섹션을 참조하세요.
참고
-
계약이 만료된 후에는 고객이 새 컨테이너 인스턴스를 시작할 수 없습니다. 하지만 계약 기간에는 인스턴스를 원하는 만큼 시작할 수 있습니다. 이러한 라이선스는 특정 노드나 인스턴스에 바인딩되지 않습니다. 노드의 컨테이너에서 실행되는 소프트웨어는 할당된 AWS 보안 인증 정보가 있는 한 라이선스를 체크아웃할 수 있습니다.
-
비공개 제안 생성 - 판매자는 AWS Marketplace Management Portal의 비공개 제안 생성 도구를 사용하여 제품에 대한 비공개 제안을 생성할 수 있습니다.
-
보고 - AWS Marketplace Management Portal의 보고서 섹션에서 Amazon S3 버킷을 설정하여 데이터 피드를 설정할 수 있습니다. 자세한 내용은 AWS Marketplace의 판매자 보고서, 데이터 피드 및 대시보드 단원을 참조하십시오.
통합 워크플로
다음 단계는 컨테이너 제품을 AWS License Manager와 통합하는 워크플로를 보여줍니다.
-
판매자가 AWS License Manager가 통합된 제품을 생성합니다.
-
판매자가 이 제품을 AWS Marketplace에 게시합니다.
-
구매자가 AWS Marketplace에서 이 제품을 찾아 구매합니다.
-
라이선스가 구매자의 AWS 계정에 전송됩니다.
-
구매자가 Amazon EC2 인스턴스, Amazon ECS 작업 또는 Amazon EKS 포드 소프트웨어를 시작하여 소프트웨어를 시작합니다. 고객이 IAM 역할을 사용하여 배포합니다.
-
소프트웨어가 구매자의 AWS License Manager 계정에서 라이선스를 읽고, 구매자가 구매한 권한을 검색하고, 그에 따라 기능을 프로비저닝합니다.
참고
License Manager는 추적 또는 업데이트를 수행하지 않습니다. 추적 또는 업데이트는 판매자의 애플리케이션에서 수행됩니다.