を使用した AMIベースの製品へのライセンスの関連付け AWS License Manager - AWS Marketplace

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用した AMIベースの製品へのライセンスの関連付け AWS License Manager

契約料金の Amazon Machine Image (AMI) ベースの製品の場合、 AWS License Manager を使用してライセンスを製品に関連付けることができます。 AWS License Manager は、お客様が購入したライセンス (エンタイトルメントとも呼ばれます) をアプリケーションが追跡および更新できるようにするライセンス管理ツールです。統合が完了したら、 AWS Marketplaceに製品リストを公開できます。以下のセクションでは、 を使用して AWS License Manager ライセンスを AMIベースの製品に関連付ける方法について詳しく説明します。

の詳細については AWS License Manager、AWS License Manager 「 ユーザーガイド」およびAWS CLI 「 コマンドリファレンス」のAWS License Manager「」セクションを参照してください。

注記
  • お客様は、契約の有効期限AMIが切れた後に の新しいインスタンスを起動することはできません。ただし、契約期間中は、インスタンスをいくつでも起動できます。これらのライセンスはノードロックされたり、特定のインスタンスに結び付けられたりすることはありません。

  • [プライベートオファーの作成] - 販売者は、 AWS Marketplace 管理ポータルのプライベートオファー作成ツールを使用して、製品のプライベートオファーを作成できます。

ライセンスモデル

AWS Marketplace と の統合では、次の 2 つのライセンスモデル AWS License Manager がサポートされています。

設定可能なライセンスモデル

設定可能なライセンスモデル (定量化可能なライセンスモデルとも呼ばれます) では、購入者がライセンスを調達した後に、特定の量のリソースを購入者に付与できます。

料金設定ディメンションと単価を設定します。次に、購入者は購入するリソースの数量を選択できます。

例 料金ディメンションと単価の

料金設定ディメンション (データバックアップなど) と単価 (1 ユニットあたり 30 USD など) を設定できます。

購入者は 5 単位、10 単位、または 20 単位の購入を選択できます。

製品は使用状況を追跡して測定し、消費されたリソースの量を測定します。

設定モデルでは、使用権限は次の 2 つのいずれかにカウントされます。

ドローダウンライセンス

ライセンスは、使用時に許可されたライセンス数のプールから引き出されます。その使用権限は永久にチェックアウトされ、ライセンスプールに戻すことはできません。

例 限られた量のデータを処理する

ユーザーには 500 GB のデータを処理する権限があります。ユーザーがデータを処理し続けると、500 GB のライセンスがすべて消費されるまで 500 GB のプールからデータが引き出されます。

ドローダウンライセンスの場合、 CheckoutLicenseAPIオペレーションを使用して、消費されたライセンスユニットをチェックアウトできます。

例 S3 へのバックアップの年間単位数

Amazon Simple Storage Service (Amazon S3) に、1 年間最大 1,024 単位のデータをバックアップできるストレージ製品があります。アプリケーションは、複数の Amazon EC2インスタンスを使用して起動できます。アプリケーションには、データを追跡して集約するメカニズムがあります。ソフトウェアは、バックアップのたびに、または一定の間隔で 製品 ID を使用して CheckoutLicenseAPIオペレーションを呼び出し、消費量を更新します。

ソフトウェアが 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" }

フローティングライセンス

ライセンスは、使用後に許可されたライセンス数のプールに返却されます。

例 固定された上限を超えるユーザー数

1 人のユーザーには、アプリケーションで 500 人の同時ユーザーを割り当てることができます。ユーザーがログインしてログアウトすると、そのユーザーは引き出され、500 人のユーザープールに戻ります。ただし、500 人の同時ユーザーが固定の上限であるため、アプリケーションはプールから 500 人を超えるユーザーを引き出すことはできません。

フローティングライセンスの場合、 CheckInLicenseAPIオペレーションを使用してライセンスユニットをエンタイトルメントプールに返すことができます。

例 1 年間の同時ユーザー数

製品の料金は、同時接続ユーザー数に基づいて決定されます。顧客は 10 ユーザー分のライセンスを 1 年間購入します。お客様は、 AWS Identity and Access Management (IAM) アクセス許可を提供することでソフトウェアを起動します。ユーザーがログインすると、アプリケーションは CheckoutLicenseAPIオペレーションを呼び出して数量を 1 減らします。ユーザーがログアウトすると、アプリケーションは CheckInLicenseAPIオペレーションを呼び出してそのライセンスをプールに返します。CheckInLicense を呼び出さない場合、ライセンス単位は 1 時間後に自動的にチェックインされます。

注記

次のリクエストでは、key-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" }

階層型ライセンスモデル

階層型ライセンスモデルでは、購入者がライセンスを調達した後に、特定のレベル (階層) のアプリケーション機能を利用できるようになります。

製品には、ベーシック、中級、プレミアムなどの階層を作成します。次に、購入者はあらかじめ定義されている階層の 1 つを選択します。

アプリケーションはアプリケーションの使用状況を追跡したり、測定する必要はありません。

階層型ライセンスモデルでは、使用権限はカウントされず、代わりに顧客が購入したサービスの階層が示されます。

バンドルされた機能を同時に提供する場合は、階層型ライセンスモデルを使用することをお勧めします。

例 ベーシック、中級、プレミアムの各レベル

お客様は、ソフトウェアの 3 つのレベル (ベーシック、中級、プレミアム) のいずれかの契約に署名できます。これらの階層にはそれぞれ独自の料金設定があります。ソフトウェアは、 CheckoutLicenseAPIオペレーションを呼び出し、リクエストで可能なすべての階層を指定することで、お客様がサインアップした階層を識別できます。

リクエストのレスポンスには、顧客が調達した階層に対応する使用権限が含まれています。この情報に基づいて、ソフトウェアは適切なカスタマーエクスペリエンスを提供できます。

リクエスト

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"

レスポンス

{ "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" }

ワークフロー統合

以下のステップは、AMI製品を と統合するためのワークフローを示しています AWS License Manager。

  1. 販売者は、 AWS License Manager 統合を使用して製品を作成します。

  2. 販売者は に製品を一覧表示します AWS Marketplace。

  3. 購入者は で製品を見つけ AWS Marketplace て購入します。

  4. ライセンスは、 AWS アカウントの購入者に送付されます。

  5. 購入者は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Amazon Elastic Container Service (Amazon ECS) タスク、または Amazon Elastic Kubernetes Service (Amazon EKS) ポッドソフトウェアを起動してソフトウェアを使用します。お客様は IAMロールを使用してデプロイします。

  6. ソフトウェアは購入者の AWS License Manager アカウントでライセンスを読み取り、購入したエンタイトルメントを検出し、それに応じて機能をプロビジョニングします。

    注記

    License Manager は追跡や更新を行いません。これは販売者のアプリケーションによって行われます。

License Manager 統合の前提条件

製品を公開する前に、次を行う必要があります。

  1. で新しいAMI製品を作成し AWS Marketplace 管理ポータル、その製品コードを書き留めます。

  2. Product Load Form (PLF) に必要な料金情報を記入し、処理のために返送してください。

  3. CheckoutLicense、、および を呼び出すために必要なIAMアクセス許可を持つExtendLicenseConsumption、アプリケーションを実行するタスクまたはポッドのIAMロールを使用しますCheckInLicense

    必要なIAMアクセス許可の詳細については、次のIAMポリシーを参照してください。

    { "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":"*" } ] }
  4. 定義したすべての料金ディメンションのレコードを使用して、 RegisterUsageAPIオペレーションをテスト呼び出します。

AMIベースの製品を と統合する AWS License Manager

を使用して、 AMIベースの製品を License Manager AWS License Manager と統合できますAPI。 AWS Marketplace AMIベースの製品を使用して Amazon EC2インスタンスを起動します。

注記

次の手順を実行する前に、License Manager 統合の前提条件 を完了していることを確認します。

AMIベースの製品を License Manager と統合するには
  1. License Manager でのテストライセンスの作成 のステップを完了します。統合をテストするには、License Manager でテストライセンスを作成する必要があります。

  2. ステップ 1 で取得したライセンス Amazon リソースネーム (ARN) を使用して GetLicenseAPIオペレーションを実行します。後で使用できるように、GetLicense レスポンスの KeyFingerprint 属性の値を書き留めておきます。

  3. アプリケーションに最新のパブリック AWS SDKをダウンロードして含めます。

  4. 購入者がアプリケーションのライセンスを使用する権限があることを確認するには、 CheckoutLicenseAPIオペレーションを実行します。ステップ 1 で取得したテストライセンスの使用権限の詳細とキーフィンガープリントを使用します。

    ライセンスのエンタイトルメントが見つからない場合、またはエンタイトルメントの最大数を超えた場合、CheckoutLicenseAPIオペレーションは を返しますNoEntitlementsAllowedException。使用権限が有効であるか、使用可能な場合、CheckoutLicense オペレーションはリクエストされた使用権限とその値を含む成功レスポンスを返します。

  5. (フローティングエンタイトルメントでのみ必要) CheckoutLicenseレスポンスでLicenseConsumptionToken受信した を使用して CheckinLicenseAPIオペレーションを実行します。このアクションは、以前にチェックアウトした使用権限を、使用可能な使用権限のプールに戻します。

  6. ステップ 1 で作成したテストライセンスと License Manager の統合を正常に確認したら、コード内のキーフィンガープリントを aws:294406891311:AWS/Marketplace:issuer-fingerprint に更新します。これで、 AWS Marketplaceによって発行されたライセンスを使用する準備ができました。

リリースプロセスに従ってアプリケーションを作成しAMI、製品発行プロセス AWS Marketplace に従って に製品を送信します。

License Manager でのテストライセンスの作成

( AWS Command Line Interface AWS CLI) のバージョン 2 を使用して、 でテストライセンスを作成します AWS License Manager。このテストライセンスは、 AWS License Manager 統合の検証とテストにのみ使用されます。テストが完了したら、テストライセンスを削除できます。実際のライセンスは、別のキーフィンガープリントを使用して AWS Marketplace によって生成されます。

AWS Marketplace は、 で 2 種類のエンタイトルメントをサポートしています AWS License Manager。ただし、1 つの製品に対して有効にできるのは 1 つのタイプだけです。テストライセンスを含むライセンスを作成するときは、次のどちらかのタイプの資格を指定する必要があります。

階層型ライセンス - 階層型ライセンスモデルでは、顧客に特定のアプリケーション機能の使用権が付与されます。顧客は購入するユニットの数量を定義することはできません。ただし、定義済みのパッケージまたは階層を 1 つ選択することはできます。顧客は後で契約を変更して別の階層にサブスクライブできます。

設定可能な使用権限 - 設定可能なライセンスモデルでは、顧客がライセンスを購入すると、一定量のリソースに使用権限が付与されます。お客様はサブスクリプションプロセス中に購するユニット数を選択し、そのユニット料金に基づいて請求されます。顧客は複数のディメンションをサブスクライブすることもできます。

CheckoutLicense API オペレーションで使用するために必要なパラメータは次のとおりです。

  • CheckoutType - 有効な値は Perpetual または Provisional です。

    • Perpetual - チェックアウトされた使用権限の数がプールからなくなる場合に使用されます。例: 購入者には 500 GB のデータを処理する権限があります。データの処理を続けると、500 GB のプールからその量が引き出され、使い果たされます。購入したライセンスの有効期限が切れている、または間もなく切れるかどうかのステータスを取得して、顧客に通知を送信します。

    • Provisional - 使用権限がプールからチェックアウトされ、使用後に返却されるフローティングライセンス使用権限に使用されます。例: ユーザーには、アプリケーション内で同時に 500 人のユーザーを使用する権利があります。ユーザーがログインしてログアウトすると、そのユーザーは引き出され、500 人のユーザープールに戻ります。フローティングライセンスの使用権限の詳細については、AWSLicense Manager の「Seller issued licenses」を参照してください。

  • ClientToken - 大文字と小文字が区別される一意の識別子。これにより、何度試しても正確な結果が得られ、同じになります。各リクエストには、ランダムな汎用一意識別子 (UUID) を使用することをお勧めします。

  • Entitlements - チェックアウトする使用権限のリスト。

    • 階層型使用権限の場合は、Name プロパティと Unit プロパティを次のように指定します。

      {

      "Name": "<Entitlement_Name>",

      "Unit": "None"

      }

    • 設定可能な使用権限には、Name プロパティ、Unit プロパティおよび Value プロパティを次のように指定します。

      {

      "Name": "<Entitlement_Name>",

      "Unit": "<Entitlement_Unit>",

      "Value": <Desired_Count>{

      }

  • KeyFingerprint - このキーフィンガープリントを使用して、ライセンスが AWS Marketplaceによって発行されたものであることを確認します。によって発行されたライセンスのキーフィンガープリント AWS Marketplace は次のとおりです。

    aws:294406891311:AWS/Marketplace:issuer-fingerprint

  • Product SKU – 製品に関連付けられているグローバル一意識別子 (GUID) 形式の AWS Marketplace 製品 ID。

例 設定可能な使用権限

以下は、 CheckoutLicenseAPIオペレーションを使用して という名前の設定可能なエンタイトルメントをチェックアウトするリクエストの例です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"
例 階層型使用権限

以下は、 CheckoutLicenseAPIオペレーションを使用して という名前の機能エンタイトルメントをチェックアウトするリクエストの例です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)
  2. AWS License Manager コンソールを使用してライセンスを付与します。詳細については、「License Manager ユーザーガイド」の「使用権限の配布」を参照してください。

  3. ソフトウェアをデプロイしてテスト AWS アカウント する購入者アカウントとして機能する にサインインします。これは、ライセンスを作成して付与 AWS アカウント した AWS アカウント とは異なるものでなければなりません。

  4. AWS License Manager コンソールに移動して、付与されたライセンスを受け入れてアクティブ化します。詳細については、「AWS License Manager ユーザーガイド」の「付与されたライセンスの管理」を参照してください。

  5. 環境で次のコマンドを実行します。

    # 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)

    前のコマンドでは、PROVISIONALCheckoutType パラメータの値として使用しています。使用権限でドローダウンライセンスを使用している場合は、値には PERPETUAL を使用します。

License Manager APIの呼び出し

お客様の License Manager アカウントに保存されているライセンスを管理するために、ソフトウェアは次のAPI呼び出しを使用できます。

  • GetLicense - ライセンスの有効期限が切れているか、もうすぐ期限切れになるかについて、購入したライセンスのステータスを取得して、顧客に通知を送信します。

  • CheckoutLicense - ユーザーが購入したライセンスを検出します。ユーザーがいくらかのライセンスを消費した時に、 API コールを使用してライセンス数量を更新することもできます。CheckoutLicense を使用すると、顧客が使用したライセンスの数量を継続的に確認できます。顧客がすべてのライセンスを使い果たすと、この呼び出しはエラーを返します。CheckoutLicense を実行するための推奨ケイデンスについては、「ライセンスの更新とアップグレード」を参照してください。

  • ExtendLicenseConsumption - フローティングディメンションの場合、ソフトウェアがライセンスをチェックアウトすると、60 分後に自動的にライセンスがプールに返却されます。ライセンスがチェックアウトされたままの期間を延長する場合は、ソフトウェアがライセンスをさらに 60 分間延長するように ExtendLicenseConsumption を呼び出すことができます。

  • CheckInLicense - フローティングディメンションの場合、ライセンスを使用権限プールに戻す場合は、CheckInLicense を使用してください。

  • ListReceivedLicenses - 購入者が購入したライセンスを一覧表示します。

ライセンスの更新とアップグレード

顧客は AWS Marketplace 管理ポータルでライセンスを更新またはアップグレードできます。追加購入を行うと、 は新しいエンタイトルメントを反映する新しいバージョンのライセンス AWS Marketplace を生成します。ソフトウェアは、同じAPI呼び出しを使用して新しいエンタイトルメントを読み取ります。License Manager の統合に関しては、更新やアップグレードを処理するために特別なことをする必要はありません。

ライセンスの更新、アップグレード、キャンセルなどにより、製品が使用中は、定期的に CheckoutLicense API コールを実行することをお勧めします。定期的に CheckoutLicenseAPIオペレーションを使用することで、製品はアップグレードや有効期限などのエンタイトルメントの変更を検出できます。

15 分ごとにCheckoutLicenseAPI呼び出しを実行することをお勧めします。