AWS License Manager との AMI 製品の契約料金 - AWS Marketplace

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

AWS License Manager との AMI 製品の契約料金

契約料金の Amazon マシンイメージ (AMI) ベースの製品では、AWS License Manager を使用してライセンスを製品に関連付けます。

AWS License Manager は、顧客が購入したライセンス (使用権限とも呼ばれる) をアプリケーションで追跡および更新できるようにするライセンス管理ツールです。このセクションでは、製品についての情報を提供します。このセクションでは、製品を AWS License Manager と統合する方法について説明します。統合が完了したら、AWS Marketplace に製品リストを公開できます。

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

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

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

ライセンスモデル

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

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

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

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

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

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

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

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

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

ドローダウンライセンス

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

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

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

ドローダウンライセンスの場合は、CheckoutLicense API オペレーションを使用して、消費されたライセンスユニットを確認できます。

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

Amazon Simple Storage Service (Amazon S3) に、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" }

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

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

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

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

フローティングライセンスの場合は、CheckInLicense API オペレーションを使用してライセンス単位を使用権限プールに戻すことができます。

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

製品の料金は、同時接続ユーザー数に基づいて決定されます。顧客は 10 ユーザー分のライセンスを 1 年間購入します。顧客は AWS Identity and Access Management (IAM) アクセス許可を与えてソフトウェアを起動します。ユーザーがログインすると、アプリケーションが CheckoutLicense API オペレーションを呼び出して数量を 1 つ減らします。ユーザーがログアウトすると、アプリケーションは CheckInLicense API オペレーションを呼び出してそのライセンスをプールに返します。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 つのレベル (ベーシック、中級、プレミアム) のいずれかの契約に署名できます。これらの階層にはそれぞれ独自の料金設定があります。CheckoutLicense API オペレーションを呼び出し、リクエストで可能なすべての階層を指定して、ソフトウェアが顧客がサインアップした階層を特定できます。

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

リクエスト

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. AWS Marketplace 管理ポータル で新しい AMI 製品を作成し、その製品コードを書き留めます。

  2. 必要な料金情報を製品積載フォーム (PLF) に記入し、処理のために当社に返送してください。

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

    必要な 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. 定義したすべての料金ディメンションのレコードを使用して、RegisterUsage API オペレーションをテストコールします。

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

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

注記

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

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

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

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

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

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

  5. (フローティング使用権限の場合にのみ必須) CheckoutLicense レスポンスで受け取った LicenseConsumptionToken を使用して CheckinLicense API オペレーションを実行します。このアクションは、以前にチェックアウトした使用権限を、使用可能な使用権限のプールに戻します。

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

AMI 製品用のアプリケーションをビルドするリリースプロセスに従い、製品公開プロセスに従って製品を AWS Marketplace に送信します。

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

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

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

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

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

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

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

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

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

  • 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 - AWS Marketplace 製品に関連付けられているグローバル一意識別子 (GUID) 形式の製品 ID。

例 設定可能な使用権限

以下は、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"
例 階層型使用権限

以下は、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)
  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 コールを実行することをお勧めします。CheckoutLicense API オペレーションを定期的に使用して、製品はアップグレードや有効期限などの使用権限の変更を検出できます。

CheckoutLicense API コールは 15 分ごとに実行することをお勧めします。