

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

# AWS Marketplace Metering Service による時間単位の計測を設定する
<a name="container-metering-registerusage"></a>

**注記**  
 Amazon EKS デプロイの場合、ソフトウェアは[サービスアカウントの IAM ロール (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)を使用して API オペレーションの [https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_RegisterUsage.html](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_RegisterUsage.html) API コールに署名する必要があります。[EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)、ノードロール、長期アクセスキーの使用はサポートされていません。  
Amazon ECS デプロイの場合、ソフトウェアは [Amazon ECS タスク IAM](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) ロールを使用して API オペレーションの [https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_RegisterUsage.html](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_RegisterUsage.html) 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 販売者ワークショップ*の[時間単位の計測ラボとの統合](https://catalog.workshops.aws/mpseller/en-US/container/integrate-hourly)を参照してください。

**Topics**
+ [時間単位の計測の前提条件](#hourly-metering-prereqs)
+ [`RegisterUsage` の統合のテスト](#testing-integration-for-registerusage)
+ [`RegisterUsage` でのエラー処理](#hourly-metering-entitlement-error-handling)
+ [を使用してコンテナ製品を AWS Marketplace Metering Service と統合する AWS SDK for Java](java-integration-example-registerusage.md)

## 時間単位の計測の前提条件
<a name="hourly-metering-prereqs"></a>

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

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

   詳細については、「[概要: コンテナ製品を作成する](container-product-getting-started.md#create-container-product)」を参照してください。

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

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

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

## `RegisterUsage` の統合のテスト
<a name="testing-integration-for-registerusage"></a>

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

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

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

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

## `RegisterUsage` でのエラー処理
<a name="hourly-metering-entitlement-error-handling"></a>

コンテナイメージが と統合 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 リージョン のと同じ で呼び出される必要があります。これにより、RegisterUsage を呼び出す際にコンテナがリージョン (withRegion(“us-east-1”) など) を選択することを防ぎます。 | 