AWS Marketplace Metering Service による時間単位の計測を設定する - AWS Marketplace

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

AWS Marketplace Metering Service による時間単位の計測を設定する

注記

Amazon EKS デプロイの場合、ソフトウェアはサービスアカウントの IAM ロール (IRSA)を使用して API オペレーションの RegisterUsage API コールに署名する必要があります。EKS Pod Identity、ノードロール、長期アクセスキーの使用はサポートされていません。

Amazon ECS デプロイの場合、ソフトウェアは Amazon ECS タスク IAM ロールを使用して API オペレーションの RegisterUsage API コールに署名する必要があります。ノードロールまたは長期アクセスキーの使用はサポートされていません。

コンテナ製品でカスタム従量制料金ディメンションの代わりに時間単位、タスク単位またはポッド単位の料金を使用する場合、カスタム計測ディメンションを定義する必要はありません。AWS Marketplace Metering Service を使用すると AWS Marketplace でコンテナ製品を時間単位で計測できます。以下のセクションでは、AWS Marketplace Metering Service を使用した時間単位の計測を設定する方法を説明します。

RegisterUsage API オペレーションは、Amazon Elastic Container Service (Amazon ECS) タスクまたは Amazon Elastic Kubernetes Service (Amazon EKS) ポッドごとに、1 時間あたりのソフトウェア使用量を測定します。使用量は、秒単位で比例配分されます。存続期間の短いタスクやポッドには、最低 1 分の使用量が適用されます。ソフトウェア使用量の継続的な計測は、AWS Marketplace Metering Control Plane によって自動的に処理されます。ソフトウェアでは、開始に使用するソフトウェアの計測のために RegisterUsage を 1 回呼び出すこと以外に、計測に固有のアクションを実行する必要はありません。

RegisterUsage はコンテナを起動したらすぐに呼び出す必要があります。コンテナの起動から最初の 6 時間以内にコンテナを登録しない場合、AWS Marketplace Metering Service は前月分の計測保証を提供しません。ただし、計測は当月以降、コンテナが終了するまで継続されます。

AWS Marketplace Metering Control Plane は、顧客のサブスクリプション状態に関係なく、Amazon ECS タスクと Amazon EKS ポッドの実行に対して引き続き顧客に請求します。これにより、タスクまたはポッドが最初に正常に起動した後に、ソフトウェアが使用権限チェックを行う必要がなくなります。

AWS Marketplace Metering Service API を時間単位の料金でコンテナ製品と統合する方法の詳細については、AWS Marketplace 販売者ワークショップの「時間単位の計測と統合」ラボを参照してください。

時間単位の計測の前提条件

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

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

    詳細については、「概要: コンテナ製品を作成する」を参照してください。

  2. RegisterUsage を呼び出すために必要な IAM アクセス許可を持つアプリケーションを実行するタスクまたはポッドの AWS Identity and Access Management (IAM) ロールを使用します。IAM マネージドポリシー AWSMarketplaceMeteringRegisterUsage には、これらのアクセス許可があります。このポリシーの詳細については、「AWS マネージドポリシーリファレンス」の「AWSMarketplaceMeteringFullAccess」を参照してください。

  3. (オプション) ロギングを表示する場合は、タスクまたはポッドの定義で AWS CloudTrail ロギングを有効にすることをお勧めします。

  4. 定義したすべての料金ディメンションのレコードを使用して、RegisterUsage API オペレーションをテストコールします。

RegisterUsage の統合のテスト

イメージを AWS Marketplace に送信して公開する前に、RegisterUsage API オペレーションを使用して統合をテストします。

Amazon ECS または Amazon EKS で製品を実行して、コンテナイメージから RegisterUsage を呼び出します。AWS Marketplace に製品を掲載する際は、使用している AWS アカウントを使用します。計測統合では、AWS リージョン をハードコーディングするのではなく、動的に設定する必要があります。ただし、テストするときは、米国東部 (バージニア北部) リージョンで、有料コンテナを含む Amazon ECS タスクまたは Amazon EKS ポッドを少なくとも 1 つ起動してください。これにより、AWS Marketplace オペレーションチームはそのリージョンのログを使用して作業内容を検証できます。

注記

製品が Amazon ECS と Amazon EKS の両方をサポートしている場合は、Amazon EKS を起動するだけで、統合が検証されます。

製品および必要なすべてのメタデータと料金情報が公開されるまでは、統合を完全にテストすることはできません。リクエストされた場合、AWS Marketplace カタログオペレーションチームは、計測レコードの受け取りを確認できます。

RegisterUsage でのエラー処理

コンテナ起動時にコンテナイメージが AWS Marketplace Metering Service を統合し、ThrottlingException 以外の例外を受け取る場合、コンテナイメージを終了して不正使用を防止する必要があります。

ThrottlingException 以外の例外は、RegisterUsage API オペレーションへの最初の呼び出しでのみスローされます。同じ Amazon ECS タスクまたは Amazon EKS ポッドの以降の呼び出しでは、タスクまたはポッドの実行中に顧客がサブスクライブを解除した場合でも、CustomerNotSubscribedException はスローされません。この顧客は、サブスクリプションを解除した後で使用状況が追跡されると、実行中のコンテナに対して課金されます。

次の表は、RegisterUsage API オペレーションがスローする可能性があるエラーを説明しています。各 AWS SDK プログラミング言語には、詳細を参照できるように一連のエラー処理のガイドラインが示されています。

エラー 説明
InternalServiceErrorException RegisterUsage は使用できません。
CustomerNotEntitledException 製品の有効なサブスクリプションが顧客にありません。
InvalidProductCodeException リクエストの一部として渡された ProductCode 値が存在しません。
InvalidPublicKeyException リクエストの一部として渡された PublicKeyVersion 値が存在しません。
PlatformNotSupportedException AWS Marketplace では、基盤のプラットフォームからの計測使用量がサポートされていません。Amazon ECS、Amazon EKS、AWS Fargate およびのみがサポートされています。
ThrottlingException RegisterUsage の呼び出しが抑制されます。
InvalidRegionException RegisterUsage は、Amazon ECS タスクまたは Amazon EKS ポッドを起動したのと同じ AWS リージョン で呼び出す必要があります。これにより、withRegion(“us-east-1”) を呼び出す際にコンテナがリージョン (RegisterUsage など) を選択することを防ぎます。