翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 時間に複数のレコードを送信することはできません。
重要
無料トライアルと前払いの使用権限は、時間単位で追跡されます。その結果、これらのレコードを別々に送信すると、購入者に過大請求が発生する可能性があります。
トピック
カスタム計測の前提条件
製品を公開する前に、次を行う必要があります。
-
で新しいコンテナ製品を作成し AWS Marketplace 管理ポータル、その製品コードを書き留めます。
-
製品積載フォームに必要なディメンション情報を入力し、処理のために当社に返送してください。
-
( AWS Identity and Access Management IAM) ロールは、 を呼び出すために必要なIAMアクセス許可を持つアプリケーションを実行するタスクまたはポッドに使用します
MeterUsage
。IAM マネージドポリシーAWSMarketplaceMeteringRegisterUsage
には、これらのアクセス許可があります。 -
(オプション) AWS CloudTrail ログ記録を表示するには、タスクまたはポッド定義のログ記録を有効にすることをお勧めします。
-
定義したすべての料金ディメンションのレコードを使用して、
MeterUsage
APIオペレーションをテスト呼び出します。
カスタム計測用の製品ロードフォーム
カスタム測定用の製品積載フォームに記入する場合、各製品には最大 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 つの方法は、コスト配分に何を期待するかを購入者にたずねます。次に、購入者のアカウントで追跡するプロパティ全体で使用量を分割できます。プロパティの例には、AccountId
、Business Unit
、Cost Centers
、および商品に関連する他のメタデータが含まれます。これらのプロパティはタグとして購入者に公開されます。タグを使用すると、購入者は AWS 請求コンソール () のタグ値によってコストを使用量に分割して表示できますhttps://console.aws.amazon.com/billing/
一般的なユースケースでは、購入者が 1 つの AWS アカウントを使って商品を購読します。また、購入者には同じ製品サブスクリプションに関連するユーザーが多数います。AccountId
のキーを持つタグを使用して使用量の割り当てを作成し、各ユーザーに使用量を割り当てることができます。この場合、購入者は Billing and Cost Management コンソールで AccountId
タグを有効にして、個々のユーザーの使用状況を分析できます。
販売者のエクスペリエンス
販売者は、すべてのリソースの使用量を集計する代わりに、同じタグセットを使用してリソースの計測レコードを集計できます。例えば、販売者は UsageAllocations
の異なるバケットを含む計測レコードを作成できます。各バケットは、AccountId
や BusinessUnit
などの、タグのセットの UsageQuantity
を表します。
以下の図では、[リソース 1] には固有の AccountId
と BusinessUnit
タグセットがあり、[計測レコード] に 1 つのエントリとして表示されます。
[リソース 2] と [リソース 3] にはどちらも同じ AccountId
タグ、2222
、および同じ BusinessUnit
タグ Operations
があります。その結果、これらは [計測レコード] の 1 つの UsageAllocations
エントリにまとめられます。
また、販売者は、タグのないリソースを割り当てられた使用量の単一の UsageAllocation
にまとめて、UsageAllocations
のエントリの 1 つとして送信することもできます。
制限には以下が含まれます。
-
タグの数 - 5
-
UsageAllocations
のサイズ (カーディナリティ) - 2,500
検証には次の項目が含まれます。
-
タグキーと値に使用できる文字 – a-zA-Z0~9+ -=._:\/@
-
UsageAllocation
リスト全体の最大タグ数 - 5 -
2 つの
UsageAllocations
タグに同じタグ (つまり、同じタグキーと値の組み合わせ) を持つことはできません。その場合は、同じUsageAllocation
を使用する必要があります。 -
UsageAllocation
のAllocatedUsageQuantity
の合計は、総使用量である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" }