SaaS サブスクリプションでの使用量の計測の設定
Software as a Service (SaaS) サブスクリプションでは、販売者がすべての使用量を計測し、販売者が提供する計測レコードに基づいて AWS が顧客に請求します。SaaS 契約では、販売者は、顧客の契約による使用権限を超えた使用量のみを計測します。以下のセクションでは、SaaS 製品の使用量の計測の設定方法について説明します。
販売者のアプリケーションで顧客の使用量を計測する際に、アプリケーションは未払いの使用量を AWS に提供します。アプリケーションは、製品を作成するときに定義した価格ディメンション (所定の 1 時間に、転送された GB 数やスキャンされたホスト数など) を計測します。たとえば、アプリケーションに送信されたデータ量に基づいて課金する場合は、データ量を計測して、該当する計測レコードを 1 時間に 1 回送信できます。AWS はその計測データと、販売者が製品の作成時に指定した価格を使用して、顧客への請求を計算します。
注記
オプションとして、追跡するプロパティ全体で使用量を分割できます。これらのプロパティはタグとして購入者に公開されます。これらのタグにより、購入者はコストをタグ値別の使用量に分けて表示できます。例えば、ユーザーごとに課金し、ユーザーに Department
プロパティがある場合、Department
のキーを持つタグを使用して使用量の割り当てを作成し、値ごとに 1 つの割り当てを行うことができます。これによってレポートする料金、サイズ、総使用量は変更されませんが、顧客は製品に適したカテゴリ別にコストを確認できます。詳細については、「ベンダー計測タグ付け (オプション)」を参照してください。
時間単位での計測
すべてのお客様の使用量を時間単位で AWS に報告することをお勧めします (一度にまとめて送信できる顧客の数は 25 以内)。これにより、お客様は使用量とコストを可能な限り細かく把握できます。1 時間を超える期間 (1 日など) で使用量を集計する場合は、以下の考慮事項に注意してください。
-
AWS は、販売者から受信した計測レコードに基づいてのみ、製品の使用料金を顧客に請求できます。製品の計測レコードが正常に送受信されるようにしておくことは販売者の責任です。AWS CloudTrail を使用すると、送信したレコードが正確であることを確認できます。その情報を使用すると、継続的な監査を実行することもできます。詳細については、「AWS CloudTrail による AWS Marketplace メータリング API コールのログ記録」を参照してください。
-
「サブスクリプション」料金モデルの SaaS の場合 (「契約」料金モデルまたは「消費量での契約」ではない)、購入者はいつでもサブスクリプションを解除できます。購入者がこのサブスクリプション解約アクションを開始すると、販売者は
unsubscribe-pending
通知を受け取り、最終unsubscribe-success
通知の前に報告されていないすべての使用量を送信を 1 時間以内に行う必要があります。2 回目の通知以降は、すべて無視されます。他の 2 つの料金モデルには、サブスクリプションの時間に基づいて設定された期間があり、購入者はその期間中にサブスクリプションを解約することはできません。自動更新をオフにすることのみが可能です。自動更新でない場合は、その期間の終了時に同じ通知が送信されます。 -
計測レコードを 1 時間ごとに送信せず、アプリケーションまたはネットワークの停止が発生した場合、レコードはさらに遅れます。これにより、サブスクリプションの有効期限が切れた後にアプリケーションまたはネットワークの停止が復元された場合、未報告の使用が発生する可能性があります。
-
報告する使用量がない場合でも、1 時間ごとに計測レコードを送信し続け、その時間について報告する使用量がない場合は数量 0 と記録できます。購入者のディメンションの使用量を 0 以上報告した後は、レコードを変更できないことに注意してください。したがって、過去 1 時間の使用量を報告するのがベストプラクティスです。報告された使用量は、請求サイクル全体を通して購入者の AWS Billing and Cost Management コンソールに表示されます。コンソールには、製品の各ディメンションが個別の明細項目に表示され、ディメンションの価格が単位あたり 0 USD であっても、消費されたユニットの合計数と、その請求サイクルまたはこれまでに消費された明細項目の合計コストが表示されます。有効にすると、AWS Cost and Usage Report (CUR) には、単位あたりの料金を含む詳細が表示されます。これらのレポートはリアルタイムでは更新されません。
-
公開中、AWS Marketplace オペレーションチームは、SaaS アプリケーションでの製品公開前に、計測レコードが正常に送信されるかどうかをテストします。通常、チームは SaaS のモックサインアップを実行し、計測レコードが受信されたことを確認します。
注記
SaaS 製品が、計測を別の方法で処理する別の AWS マネージドサービス (Amazon SageMaker Ground Truth、または AWS WAF など) と統合されている場合は、AWS Marketplace 計測サービスと統合する必要はありません。顧客への二重請求を避けるため、製品の計測は 1 つのシステムでのみ行う必要があります。現時点で、AWS Marketplace は新しい AWS WAF 製品を公開していないことに注意してください。
使用状況を計測するように製品を設定します。
AWS Marketplace Metering Service の BatchMeterUsage
オペレーションを使用して、計測レコードを AWS に配信します。以下に留意してください。
-
当社では、
BatchMeterUsage
オペレーションによるバッチ処理を使用することを販売者に求めています。 -
当社では、毎時 0 分に計測リクエストを重複排除します。
-
リクエストは、製品/顧客/時間/ディメンションの組み合わせごとに重複排除されます。
-
リクエストはいつでも再試行できますが、元の数量と異なる数量で計測した場合は、元の数量で課金されます。
-
同じ顧客、ディメンション、時間に対して複数のリクエストを送信する場合、レコードは集計されません。
-
-
顧客が商品を購読している場合、販売者は最大で過去 6 時間のタイムスタンプ付きの計測レコードを送信できます。顧客が登録を解除した場合、出品者は顧客が登録を解除してから 1 時間以内に計測レコードを送信する必要があります。
-
BatchMeterUsage
ペイロードは 1 MB を超えてはなりません。ペイロードのサイズを超えないように、BatchMeterUsage
リクエストで送信する使用状況レコードの数を選択します。 -
AWS Marketplace Metering Service は、AWS 全般リファレンスの「AWS Marketplace エンドポイントとクォータ」に一覧表示される AWS リージョン で利用できます。SaaS 計測製品では、製品のリクエスト時に、デフォルトで米国東部 (バージニア北部) リージョンが有効になっています。他のリージョンを使用する場合は、AWS Marketplace Seller Operations
チームまでお問い合わせください。詳細については、「BatchMeterUsage」を参照してください。
コード例については、SaaS 製品統合のコード例 を参照してください。
例: ホストスキャン
販売者は、コンピューティングハードウェアで既知のセキュリティ脆弱性を分析する製品を提供しているとします。顧客は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのスキャンを手動で開始またはスケジュールします。製品は、スキャンを実行すると、スキャンした固有のホストの数を 1 時間ごとに集計します。この例の製品では [Hosts (ホスト)] カテゴリを使用しています。スキャンされたホストのタイプに複数のディメンションを宣言できます。たとえば、小型、中型、そして大型のホストに異なる料金を請求できます。
例: ログ分析
顧客の製品、トレンドの報告、および異常によって生成されたログを取り込む SaaS 製品を提供しているとします。顧客がログをその製品にアップロードすると、販売者は受信したデータの量をメガバイト、ギガバイト、またはテラバイト単位で計測します。毎時 10 分ごとの cron ジョブが、直前の 1 時間の顧客ごとの使用量を読み取ります。そのジョブは、バッチレポートを作成し、BatchMeterUsage
オペレーションを使用してそのレポートを AWS に送信します。この例の製品では [Data (データ)] カテゴリを使用しています。この製品は、特定の 1 時間に保存されたログデータの量を計測することもできます。その場合、この製品は、1 時間に受信したデータと 1 時間に保存された総データの 2 つのディメンションで計測できます。顧客がこのデータを削除するか、期限が切れるまで、保存されたデータの計測を続行できます。
ベンダー計測タグ付け (オプション)
ベンダー計測タグ付けは、独立系ソフトウェアベンダー (ISV) がソフトウェアの使用状況についてより詳細な情報を購入者に提供し、コスト配分を行うのに役立ちます。
購入者が使用したソフトウェア使用状況をタグ付けするには、さまざまな方法があります。1 つの方法は、コスト配分に何を期待するかを購入者にたずねます。次に、購入者のアカウントで追跡するプロパティ全体で使用量を分割できます。プロパティの例には、Account
ID
、Business Unit
、Cost Centers
、および商品に関連する他のメタデータが含まれます。これらのプロパティはタグとして購入者に公開されます。タグを使用すると、購入者は AWS 請求コンソール (https://console.aws.amazon.com/billing/
一般的なユースケースでは、購入者が 1 つの AWS アカウント を使って商品を購読します。また、購入者には同じ製品サブスクリプションに関連するユーザーが多数います。Account ID
のキーを持つタグを使用して使用量の割り当てを作成し、各ユーザーに使用量を割り当てることができます。この場合、購入者は Billing and Cost Management コンソールで Account ID
タグを有効にして、個々のユーザーの使用状況を分析できます。
販売者のエクスペリエンス
販売者は、すべてのリソースの使用量を集計する代わりに、同じタグセットを使用してリソースの計測レコードを集計できます。例えば、販売者は UsageAllocations
の異なるバケットを含む計測レコードを作成できます。各バケットは、AccountId
や BusinessUnit
などの、タグのセットの UsageQuantity
を表します。
以下の図では、[リソース 1] には固有の AccountId
と BusinessUnit
タグセットがあり、[計測レコード] に 1 つのエントリとして表示されます。
[リソース 2] と [リソース 3] にはどちらも同じ AccountId
タグ、2222
、および同じ BusinessUnit
タグ Operations
があります。その結果、これらは [計測レコード] の 1 つの UsageAllocations
エントリにまとめられます。
また、販売者は、タグのないリソースを単一の UsageAllocation
にまとめて、UsageAllocations
のエントリの 1 つとして送信することもできます。
制限には以下が含まれます。
-
タグの数 - 5
-
UsageAllocations
のサイズ (カーディナリティ) - 2,500 -
リクエストの最大サイズ - 1 MB
検証には次の項目が含まれます。
-
タグのキーと値に使用できる文字 - a-zA-Z0-9+ -=._:\/@
-
UsageAllocation
リスト全体の最大タグ数 - 5 -
2 つの
UsageAllocations
タグに同じタグ (つまり、同じタグキーと値の組み合わせ) を持つことはできません。その場合は、同じUsageAllocation
を使用する必要があります。 -
UsageAllocation
のAllocatedUsageQuantity
の合計は、総使用量であるUsageQuantity
と等しくなる必要があります。 -
ペイロードの最大サイズは 1 MB 以下でなければなりません。これには、入力属性キー (例:
UsageRecords
、AllocatedUsageQuantity
、タグ) が含まれます。注記
ペイロードの制限を超えないようにするには、ビジネス要件に基づいて最大サイズを設定したサンプルリクエストオブジェクトを作成し、そのオブジェクトを JSON 文字列に変換して、サイズをバイト単位で取得します。1 回の API コールが 1 MB の制限を超えないようにしてください。例えば、1 つの
UsageRecord
リクエストの最大サイズが 200 KB の場合、リクエストの一部として 5 つを超えるUsageRecords
を送信しないでください (200 KB * 5 = 1 MB)。
購入者エクスペリエンス
次の表は、購入者が 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 | マーケティング |
コード例については、使用量割り当てタグ付きの BatchMeterUsage のコード例 (オプション) を参照してください。