AWS Marketplace Metering Service を使用したコンテナ製品のカスタム計測の設定 - AWS Marketplace

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

AWS Marketplace Metering Service を使用したコンテナ製品のカスタム計測の設定

AWS Marketplace コンテナ製品には、製品ごとに最大 24 の異なる料金ディメンションでカスタム計測を設定できます。各ディメンションには、長期契約料金を関連付けることができます。カスタム計測を有効にするには、コンテナ製品を AWS Marketplace Metering Service と統合します。MeterUsage API オペレーションを使用して、請求 AWS のために、その使用量の独自の料金単位とカスタム計測を定義できます。以下のセクションでは、コンテナ製品のカスタム計測を設定する方法を示します。

料金ディメンションは、製品積載フォームおよび MeterUsage オペレーションを介した 2 つの場所で定義されます。この 2 つの要素方法により、後続のオファーが一般公開される前に意図したとおりに作動することを確実にします。

カスタム計測を設定するには、使用カテゴリ、単位タイプ、料金ディメンションを選択する必要があります。

  • 使用カテゴリ - 使用カテゴリは購入者が製品の内容とその使用方法を理解するために役立ちます。

  • 単位タイプ - 単位タイプは請求の測定単位を定義します。例えば、 GBpsまたは で測定された帯域幅MBps、ホストの数、または MB、GB、TB で測定されたデータなどです。

  • 料金ディメンション – 料金ディメンションは、ユニットあたりの料金を設定している機能またはサービス (ユーザー、スキャン、vCPUs、デプロイされたエージェントなど) を表します。料金設定ディメンションは公開されています。ただし、パブリック製品のプライベートおよび Bring Your Own License (BYOL) オファーを定義することはできます。計測レコードに料金設定を送信しないでください。単位の数量を計測すると、製品を作成するときに定義した料金と共にこれを使用して、購入者の請求書を計算します。

    製品の料金設定が事前定義されたカテゴリまたは単位タイプに適合しない場合は、汎用 [単位] カテゴリを選択できます。次に、ディメンションの説明を使用して単位が何であるかを説明します。

オプションで、追跡するプロパティごとに使用量を配分することもできます。割り当ては購入者にはタグとして表示されます。これらのタグにより、購入者はコストをタグ値別に使用量に分けて表示できます。例えば、ユーザーごとに課金し、ユーザーに「Department」プロパティがある場合、「Department」のキーを持つタグを使用して使用量の割り当てを作成し、値ごとに 1 つの割り当てを行うことができます。これによってレポートする料金、サイズ、総使用量は変更されませんが、顧客は製品に適したカテゴリ別にコストを確認できます。

1 時間ごとに計測レコードを送信することをお勧めします。ただし、日単位または月単位の使用量を集計することもできます。停止が発生した場合は、購入者ソフトウェアの使用を集約し、次の時間帯に送信できます。1 時間に複数のレコードを送信することはできません。

重要

無料トライアルと前払いの使用権限は、時間単位で追跡されます。その結果、これらのレコードを別々に送信すると、購入者に過大請求が発生する可能性があります。

カスタム計測の前提条件

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

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

  2. 製品積載フォームに必要なディメンション情報を入力し、処理のために当社に返送してください。

  3. ( AWS Identity and Access Management IAM) ロールは、 を呼び出すために必要なIAMアクセス許可を持つアプリケーションを実行するタスクまたはポッドに使用しますMeterUsage。IAM マネージドポリシーAWSMarketplaceMeteringRegisterUsageには、これらのアクセス許可があります。

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

  5. 定義したすべての料金ディメンションのレコードを使用して、 MeterUsageAPIオペレーションをテスト呼び出します。

カスタム計測用の製品ロードフォーム

カスタム測定用の製品積載フォームに記入する場合、各製品には最大 24 のディメンションを設定できます。ディメンションは次のフィールドで定義されています。

  • [ディメンション名] - コンテナアプリケーションが AWS Marketplace Metering Serviceに計測レコードを送信するときに使用される名前。この名前は、購入者が使用するディメンションを示します。この名前は請求レポートに記載されます。この名前を設定した後に変更することはできません。

  • [ディメンションの説明] 購入者向けのディメンションの説明。説明は最大 70 文字です。製品が購入者に公開された後は、このフィールドを変更することはできません。

  • [ディメンション料金] - 購入者が使用ごとに支払う場合のこの製品の単位あたりのソフトウェア料金。このフィールドでは小数点以下 3 桁がサポートされています。

  • [ディメンション長期レート] - 購入者が前払いした場合の、長期契約におけるソフトウェア料金の合計です。

  • [長期期間 (日数)] - 長期契約の期間 (日単位)。

MeterUsage の統合とプレビューモードのテスト

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

プレビューモードは稼働モードと同じように動作しますが、プレビューモードでは製品を使用する権限を確認しません。MeterUsage プレビューモードで を呼び出すには、Amazon Elastic Container Service (Amazon ECS) または Amazon Elastic Kubernetes Service (Amazon EKS) で 製品を実行してコンテナイメージMeterUsageから を呼び出します。 を使用して に製品を一覧表示 AWS アカウント します AWS Marketplace。計測統合では、ハードコーディングではなく AWS リージョン、動的に を設定する必要があります。ただし、テスト時に、米国東部 (バージニア北部) リージョンで有料コンテナを含む Amazon ECSタスクまたは Amazon EKS ポッドを少なくとも 1 つ起動して、 AWS Marketplace オペレーションチームがそのリージョンのログで作業を検証できるようにします。

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

  • 製品を一般公開する前に、および新しいディメンションを追加した後に、すべてのディメンションをテストします。コンテナ製品に関連付けられた各ディメンションの計測レコードを送信しない場合、リクエストが失敗するエラーが発生します。

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

MeterUsage でのエラー処理

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

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

MeterUsage の一般的なエラーの詳細については、 AWS Marketplace Metering Service API リファレンスの「」を参照してくださいMeterUsage。各 AWS SDKプログラミング言語には、追加情報として参照できる一連のエラー処理ガイドラインがあります。

ベンダー計測タグ付け (オプション)

ベンダー計測タグ付けは、独立系ソフトウェアベンダー (ISVs) が購入者にソフトウェア使用状況をより詳細に把握し、コスト配分を実行するのに役立ちます。

購入者が使用したソフトウェア使用状況をタグ付けするには、さまざまな方法があります。1 つの方法は、コスト配分に何を期待するかを購入者にたずねます。次に、購入者のアカウントで追跡するプロパティ全体で使用量を分割できます。プロパティの例には、AccountIdBusiness UnitCost Centers、および商品に関連する他のメタデータが含まれます。これらのプロパティはタグとして購入者に公開されます。タグを使用すると、購入者は AWS 請求コンソール () のタグ値によってコストを使用量に分割して表示できますhttps://console.aws.amazon.com/billing/。ベンダー計測タグ付けでは、報告する価格、ディメンション、合計使用量は変わりません。お客様は商品に適したカテゴリ別にコストを確認できます。

一般的なユースケースでは、購入者が 1 つの AWS アカウントを使って商品を購読します。また、購入者には同じ製品サブスクリプションに関連するユーザーが多数います。AccountId のキーを持つタグを使用して使用量の割り当てを作成し、各ユーザーに使用量を割り当てることができます。この場合、購入者は Billing and Cost Management コンソールで AccountId タグを有効にして、個々のユーザーの使用状況を分析できます。

販売者のエクスペリエンス

販売者は、すべてのリソースの使用量を集計する代わりに、同じタグセットを使用してリソースの計測レコードを集計できます。例えば、販売者は UsageAllocations の異なるバケットを含む計測レコードを作成できます。各バケットは、AccountIdBusinessUnit などの、タグのセットの UsageQuantity を表します。

以下の図では、[リソース 1] には固有の AccountIdBusinessUnit タグセットがあり、[計測レコード] に 1 つのエントリとして表示されます。

[リソース 2][リソース 3] にはどちらも同じ AccountId タグ、2222、および同じ BusinessUnit タグ Operations があります。その結果、これらは [計測レコード] の 1 つの UsageAllocations エントリにまとめられます。

Metering record showing resource usage allocation from three resources to two accounts.

また、販売者は、タグのないリソースを割り当てられた使用量の単一の UsageAllocation にまとめて、UsageAllocations のエントリの 1 つとして送信することもできます。

制限には以下が含まれます。

  • タグの数 - 5

  • UsageAllocations のサイズ (カーディナリティ) - 2,500

検証には次の項目が含まれます。

  • タグキーと値に使用できる文字 – a-zA-Z0~9+ -=._:\/@

  • UsageAllocation リスト全体の最大タグ数 - 5

  • 2 つの UsageAllocations タグに同じタグ (つまり、同じタグキーと値の組み合わせ) を持つことはできません。その場合は、同じ UsageAllocation を使用する必要があります。

  • UsageAllocationAllocatedUsageQuantity の合計は、総使用量である UsageQuantity と等しくなる必要があります。

購入者エクスペリエンス

次の表は、購入者が AccountId および BusinessUnit ベンダータグを有効化した後の購入者エクスペリエンスの例を示しています。

この例では、購入者は [コスト使用状況レポート] で割り当てられた使用量を確認できます。ベンダー計測タグにはプレフィックス “aws:marketplace:isv” が使用されます。購入者は、請求情報とコスト管理の、[コスト配分タグ][AWS生成コスト配分タグ] でそれらを有効化できます。

[コスト使用状況レポート] の最初と最後の行は、出品者が Metering Service に送信する内容に関係します (販売者のエクスペリエンス 例を参照)。

コスト使用状況レポート (簡略版)
ProductCode 購入者 UsageDimension UsageQuantity aws:marketplace:isv:AccountId aws:marketplace:isv:BusinessUnit
xyz 111122223333 ネットワーク: 検査対象 (GB) あたり 70 2222 オペレーション
xyz 111122223333 ネットワーク: 検査対象 (GB) あたり 30 3333 財務
xyz 111122223333 ネットワーク: 検査対象 (GB) あたり 20 4444 IT
xyz 111122223333 ネットワーク: 検査対象 (GB) あたり 20 5555 マーケティング
xyz 111122223333 ネットワーク: 検査対象 (GB) あたり 30 1111 マーケティング

コード例については、使用量割り当てタグ付きの MeterUsage コード例 (オプション) を参照してください。

コード例

次のコード例は、コンテナ製品を製品の公開とメンテナンスに必要な AWS Marketplace APIsと統合するのに役立ちます。

使用量割り当てタグ付きの MeterUsage コード例 (オプション)

次のコード例は、消費料金モデルを持つコンテナ製品に関連しています。Python の例では、適切な使用量割り当てタグを含む計測レコードを に送信 AWS Marketplace して、顧客に pay-as-you-go料金を請求します。

# NOTE: Your application will need to aggregate usage for the # customer for the hour and set the quantity as seen below. # AWS Marketplace can only accept records for up to an hour in the past. # # productCode is supplied after the AWS Marketplace Ops team has # published the product to limited # Import AWS Python SDK import boto3 import time usageRecord = [ { "AllocatedUsageQuantity": 2, "Tags": [ { "Key": "BusinessUnit", "Value": "IT" }, { "Key": "AccountId", "Value": "123456789" }, ] }, { "AllocatedUsageQuantity": 1, "Tags": [ { "Key": "BusinessUnit", "Value": "Finance" }, { "Key": "AccountId", "Value": "987654321" }, ] } ] marketplaceClient = boto3.client("meteringmarketplace") response = marketplaceClient.meter_usage( ProductCode="testProduct", Timestamp=int(time.time()), UsageDimension="Dimension1", UsageQuantity=3, DryRun=False, UsageAllocations=usageRecord )

の詳細についてはMeterUsage、 リファレンスMeterUsageの「」を参照してください。 AWS Marketplace Metering Service API

レスポンスの例

{ "MeteringRecordId": "string" }