このトピックでは、ApsaraMQ for MQTT の Basic Edition および Platinum Edition インスタンスの課金項目と料金について説明します。
課金概要
ApsaraMQ for MQTT は、Basic Edition、Platinum Edition のインスタンスを提供します。これらのインスタンスエディションの違いに関する詳細については、「インスタンスエディション」をご参照ください。
Basic Edition と Platinum Edition のインスタンスは、課金方法と課金項目が共通です。課金項目は次のとおりです:
課金項目 | 課金方法 | 課金サイクル |
サブスクリプション 選択した仕様とサブスクリプション期間に基づいて請求が計算されます。サービスの利用前に支払いが必要です。 | 月次 | |
インスタンス料金の計算式は次のとおりです:
インスタンス料金 = (最大接続数の単価 + 最大メッセージ TPS の単価 + 最大サブスクリプション関係数の単価) × サブスクリプション期間 (月単位)
最大接続数
課金項目の詳細
接続数とは、特定のインスタンスにおける任意の時点でのクライアントの TCP 接続の数を指します。この数値は一時的な値であり、1 分ごとに更新されます。
購入する最大接続数は、サービスのピーク時のオンライン接続数を上回るようにしてください。これにより、上限を超えた際のスロットリングを防ぎ、一部のクライアントが接続に失敗する事態を回避できます。
例
instance_a の同時オンライン接続数が 10:00 に 1,000、10:01 に 2,000 であった場合、サービスの正常な運用を確保するためには、2,000 を超える最大接続数の仕様 (例えば 5,000) を購入する必要があります。
単価
インスタンスタイプ | 最大接続数 | 価格 (USD/月) |
Basic Edition インスタンス | 1,000 | 29 |
5,000 | 142 | |
10,000 | 284 | |
20,000 | 567 | |
50,000 | 1,417 | |
100,000 | 2,833 | |
Platinum Edition インスタンス | 100,000 | 3,852 |
300,000 | 11,329 | |
500,000 | 18,805 | |
1,000,000 | 37,836 | |
2,000,000 | 75,446 |
最大メッセージ TPS
課金項目の詳細
メッセージトランザクション/秒 (TPS) は、特定のインスタンスで 1 秒あたりに生成および消費されるメッセージの合計です。この値は 1 分ごとに更新されます。
購入する最大メッセージ TPS は、メッセージ送受信のピーク TPS を上回るようにしてください。これにより、上限を超えた際のスロットリングを防ぎ、一部のメッセージ操作が失敗する事態を回避できます。
計算ルール
メッセージ TPS には、ApsaraMQ for MQTT を使用して送受信されたメッセージのみが含まれます。ApsaraMQ for RocketMQ を使用して送受信されたメッセージは含まれません。
サービス品質 (QoS) レベルが 1 で cleanSession=false のメッセージの場合、サーバーサイドでのプッシュに失敗すると、メッセージは再試行のためにオフラインメッセージとして保存されます。これは 1 つのサブスクライブメッセージとしてカウントされます。
メッセージ TPS の計算時、メッセージ数には QoS レベルに基づく係数が乗算されます。係数の詳細については、「料金係数」をご参照ください。
たとえば、クライアントが QoS=2 および cleanSession=true に設定されている場合、料金係数は 5 です。クライアントが 10 件のメッセージを生成した場合、生成されたメッセージ数は 10 × 5 = 50 として計算されます。
例
5 つのトピックがあり、プロデューサーが各トピックに 20 件のメッセージを送信すると仮定します。各トピックを 100 のクライアントがサブスクライブします。すべてのクライアントは同じ QoS レベルを使用し、料金係数は 2 です。
送受信されたメッセージの総数は、次のように計算されます:(トピック数 × メッセージ数 + トピック数 × メッセージ数 × クライアント数) × 料金係数 = (5 × 20 + 5 × 20 × 100) × 2 = 20,200 メッセージ
単価
インスタンスタイプ | 最大メッセージ TPS (メッセージ/秒) | 価格 (USD/月) |
Basic Edition インスタンス | 1,000 | 284 |
5,000 | 1,417 | |
10,000 | 2,833 | |
20,000 | 5,665 | |
Platinum Edition インスタンス | 20,000 | 5,211 |
50,000 | 7,930 | |
100,000 | 12,009 | |
200,000 | 18,125 | |
500,000 | 42,368 |
最大サブスクリプション関係数
課金項目の詳細
サブスクリプション関係とは、特定のインスタンスに登録され、保持されているサブスクリプションの数を指します。
購入する最大サブスクリプション関係数は、サービスで必要とされる数を上回るようにしてください。これにより、上限を超えた際のスロットリングを防ぎ、一部のメッセージ操作が失敗する事態を回避できます。
一部のクライアントが使用されなくなり、そのサブスクリプション関係を保持する必要がない場合は、速やかにサブスクリプション関係をパージしてシステムリソースを節約できます。詳細については、「サブスクリプション関係のパージ」をご参照ください。
計算ルール
サブスクリプション関係数は、1 分間の統計期間で測定されます。システムは 1 秒に 1 回サンプリングを行い、60 個のサンプルの中から最大値を使用します。
たとえば、1 分以内に、サブスクリプション関係数が最初の 1 秒で 30、2 秒目で 20、...、60 秒目で 50 であった場合、その分のサブスクリプション関係数は 50 となります。
ApsaraMQ for MQTT でクライアント (クライアント ID) がサブスクライブするトピックごとに、1 つのサブスクリプション関係がカウントされます。このカウントは、メッセージ送信のシナリオとは無関係です。
同じクライアントによる親トピックとその子トピックへのサブスクリプションは、別々のサブスクリプション関係としてカウントされます。
たとえば、Client_1 が TopicA、TopicA/sub_1、および TopicA/sub_2 をサブスクライブした場合、これは 3 つのサブスクリプション関係としてカウントされます。
Message Queuing Telemetry Transport (MQTT) プロトコルに従い、クライアントが cleanSession=true を設定した場合、クライアントがオフラインになった後、サーバーサイドはそのクライアントのすべてのトピックサブスクリプションをクリーンアップします。cleanSession=false の場合、サーバーサイドはクライアントのトピックサブスクリプションを保持し、それらは引き続きサブスクリプション関係としてカウントされます。
例
Instance_A には、TopicA、TopicB、TopicC の 3 つのトピックがあります。10 のクライアントがサーバーサイドに接続されています。
10 のクライアントはそれぞれ、TopicA、TopicB、TopicC にメッセージを生成します。各クライアントは、メッセージを消費するために TopicA と TopicB のみをサブスクライブします。
このシナリオでは、サブスクリプション関係数は 10 × 2 = 20 となります。
単価
インスタンスタイプ | 最大サブスクリプション関係数 | 価格 (USD/月) |
Basic Edition インスタンス | 1,000 | 12 |
10,000 | 114 | |
50,000 | 567 | |
100,000 | 1,133 | |
200,000 | 2,266 | |
500,000 | 5,665 | |
1,000,000 | 11,329 | |
Platinum Edition インスタンス | 100,000 | 1,586 |
500,000 | 7,477 | |
1,000,000 | 15,180 | |
2,000,000 | 30,133 | |
5,000,000 | 75,446 |