Kinesis Data Streams を使用すべき理由
Amazon Kinesis Data Streams は、フルマネージドのサーバーレスストリーミングデータサービスであり、ログ、イベント、クリックストリーム、その他の形式のストリーミングデータをリアルタイムで伸縮自在に取り込み、保存することを容易にします。Kinesis Data Streams ではシンプルな従量制料金を使用しています。前払いの費用や最低料金はなく、使用したリソースの料金のみをお支払いいただきます。Kinesis Data Streams には、オンデマンドとプロビジョンドの 2 つの容量モードがあり、どちらにも固有の請求オプションがあります。これらのオプションの詳細については、次のタブをクリックしてください。
AWS 料金計算ツール
Amazon Kinesis Data Streams とアーキテクチャのコストを一回の見積もりで算出します。
-
オンデマンドモード
-
プロビジョンドモード
-
オンデマンドモード
-
オンデマンド容量モードでは、データストリームに書き込まれるデータの GB、およびデータストリームから読み取られるデータの GB ごとに課金されます。アプリケーションによる実行が想定される読み取りおよび書き込みスループットを指定する必要はありません。Kinesis Data Streams は、ワークロードの増減に応じて即座に対応します。
オンデマンドモードでは、料金は取り込み、および取得したデータの量に基づき、アカウント内の各データストリームの 1 時間あたりの料金とともに請求されます。拡張データ保持 (最初の 24 時間を超えて最初の 7 日以内)、長期データ保持 (7 日を超えて最長 1 年)、および拡張ファンアウトといったオプション機能には追加料金がかかります。 また、ご利用のアカウントでオンデマンド容量モードで動作する各ストリームについて時間単位の料金が課金されます。
オンデマンド容量モードは、ワークロードが不明な新しいデータストリームを作成する場合、予測不能なアプリケーショントラフィックがある場合、または容量を管理したくない場合に最適です。
重要な用語
データ (イン): Kinesis Data Streams に取り込まれたデータは、データストリームに書き込まれた GB ごとに課金されます。 これは、サービスに送信するデータレコードの数に、最近接の 1 KB (1,024 バイト) に切り上げられた各レコードのサイズを乗じて算出されます。例えば、データレコードがそれぞれ 4.5 KB の場合、Kinesis Data Streams は各レコードを取り込まれた 5 KB のデータとしてカウントします。Kinesis Data Streams に取り込まれるすべてのデータは、デフォルトで 24 時間保存され、追加料金は発生しません。
データ (アウト): Kinesis Data Streams から取得されたデータは、データストリームから読み取られた GB ごとに課金されます。これは、取得されたレコードの数に、各レコードのサイズを乗じて算出されます。この計算には丸め係数は適用されません。データレコードがそれぞれ 4.5 KB の場合、Kinesis Data Streams はそれぞれを 4.5 KB の出力データとしてカウントします。
ストリームごと: ご利用のアカウントでオンデマンド容量モードで動作する各ストリームについて時間単位の料金が課金されます。
拡張データ保持: Kinesis Data Streams は、デフォルトで 24 時間データを保存します。拡張データ保持では、ストレージを最長で 7 日間延長できます。24 時間を超えて最長で 7 日間保存されたデータについては、GB-月の料金に基づいて請求されます。
長期データ保持: 長期データ保持により、データストリームを最長 365 日間保存できるオプションが提供されます。最初の 7 日間は拡張データ保持の料金が請求され、その後、7 日間を経過した後、指定された保持期間まで保存されたデータについてはより低い GB-月の料金に基づいて請求されます。
拡張ファンアウト: 拡張ファンアウトは各データコンシューマーにシャードあたりの独自の読み取りスループット (最大 2 MB/秒) を提供して、読み取り並行処理を改善します。コンシューマーが拡張ファンアウトを利用する場合、取得データ GB あたりの追加料金が発生します。
リージョン別料金
料金例
米国東部において、オンデマンド容量モードで稼働する Amazon Kinesis Data Stream に、1 秒あたり 1,000 レコード (各レコードのサイズは 3 KB) のストリーミングデータを送信するとします。データを 1 日間保持し、単一のコンシューマーを使用してそのデータを処理したいと考えています。月額料金は次のように計算されます。
3 KB のレコードサイズ、最近接の 1 KB に切り上げ = 3 KB
取り込まれたデータ (GB/秒) = (1,000 レコード/秒 * 3 KB/レコード) / 1,048,576 KB/GB = 0.00286 GB/秒
取り込まれたデータ (GB/月) = 30 日/月 * 86,400 秒/日 * 0.00286 GB/秒 = 7,413.12 GB/月
コンシューマーは 1 つなので、以下のとおりとなります。
取得したデータ (GB/秒) = 1 (コンシューマー) * (1,000 レコード/秒 * 3 KB/レコード) / 1,048,576 KB/GB = 0.00286 GB/秒取得されたデータ (GB/月) = 30 日/月 * 86,400 秒/日 * 0.00286 GB/秒 = 7,413.12 GB/月
1 日間の保持は、データ取り込み料金に含まれています。
米国東部での料金は、取り込まれた GB データあたり 0.08 USD です。
データ (イン) の月額料金 = 7,413.12 GB * 0.08 USD/GB = 593.04 USD
米国東部での料金は、取得された GB データあたり 0.040 USD です。
データ (アウト) の月額料金 = 7,413.12 GB * 0.040 USD/GB = 296.50 USD
ストリームはその月の 30 日間使用されるため、次のようになります。
ストリームごとの料金 = 30 * 24 * 0.040 (レート) = 28.80 USD合計月額料金 = 593.04 USD + 296.50 USD + 28.80 USD = 918.34 USD
-
プロビジョンドモード
-
プロビジョンド容量モードでは、書き込みおよび読み取りリクエストレートに基づいて、アプリケーションに必要なシャードの数を指定します。シャードは、全体で 1 MB/秒の書き込みと 2 MB/秒の読み取りを提供する容量の単位です。
プロビジョンド容量モードは、予測可能なアプリケーショントラフィックがある場合、トラフィックが一貫しているか徐々に増加するアプリケーションを実行する場合、または容量要件を予測できる場合にコストを管理するのに最適です。
重要な用語
シャード時間: シャードとは、Amazon Kinesis データストリームの基本的なスループットの単位をいいます。お客様のスループット要件に応じて、ストリーム内で必要なシャード数を指定できます。各シャードについて、1 時間あたりの料金に基づいて請求されます。
1 つのシャードは、1 MB/秒または 1,000 レコード/秒の取り込み容量を提供します。
データコンシューマーが拡張ファンアウトを使用する場合、各シャードは、それを使用する各コンシューマーに最大 2 MB/秒のデータ出力を提供します。
データコンシューマーが拡張ファンアウトを利用しない場合、シャードから並行してデータを処理するコンシューマーの数にかかわらず、各シャードは最大 2 MB/秒のデータ出力を提供します。
PUT ペイロードユニット (25 KB): レコードとは、データプロデューサーが Amazon Kinesis データストリームに追加するデータをいいます。PUT ペイロードユニットは、1 つのレコードを構成する 25 KB ペイロード (チャンク) で計算されます。例えば、5 KB のレコードは 1 つの PUT ペイロードユニット、45 KB のレコードは 2 つの PUT ペイロードユニット、1 MB のレコードは 40 の PUT ペイロードユニットが含まれます。PUT ペイロードユニットは、100 万件の PUT ペイロードあたりの料金に基づいて請求されます。
拡張ファンアウト: 拡張ファンアウトは各データコンシューマーにシャードあたりの独自の読み取りスループット (最大 2 MB/秒) を提供して、読み取り並行処理を改善します。コンシューマーが拡張ファンアウトを利用する場合、コンシューマー/シャード時間ごとに時間単位の料金、ならびに取得データ GB あたりの料金が発生します。
拡張データ保持: Kinesis Data Streams は、デフォルトで 24 時間データを保存します。拡張データ保持では、ストレージを最長で 7 日間延長できます。拡張データ保持を開始すると、データストリームで発生したシャード時間ごとに追加料金が請求されます。
長期データ保持: 長期データ保持により、データストリームを最長 365 日間保存できるオプションが提供されます。最初の 7 日間は拡張データ保持の料金が請求され、その後、7 日間を経過した後、指定された保持期間まで保存されたデータの GB-月の料金に基づいて請求されます。
長期保持データの取得: GetRecords API を使用してデータを取得する場合、7 日間を超えて保存されたデータの取得には GB ごとの料金が請求されます。24 時間 (デフォルト) 保存されたデータの取得、または最大 7 日間の拡張データ保持については課金されません。拡張ファンアウトコンシューマー (SubscribeToShard API) が使用されている場合、長期保持データ取得についての料金は発生しません。
リージョン別料金
料金例
データプロデューサーが 1 秒あたり合計 100 件のレコードを格納し、各レコードは 35 KB であるものと仮定します。この場合、合計データ入力レートは 3.4 MB/秒です (100 レコード/秒 * 35 KB/レコードを 1,024 で除算 = 3.4 MB/秒)。わかりやすいように、各レコードのスループットとデータサイズは 1 日を通して安定的で一定であるとします。なお、Amazon Kinesis ストリームのスループットはいつでも動的に調整できます。
最初に、ストリームが必要なスループットを得るために必要なシャード数を計算します。1 シャードは 1 MB/秒のデータ入力容量を提供し、1,000 レコード/秒をサポートするため、4 シャードであれば 4 MB/秒のデータ入力容量を提供し、4,000 レコード/秒をサポートします。そのため、4 シャードのストリームで、100 レコード/秒での 3.4 MB/秒というスループット要件を満たすことができます。
その後、米国東部リージョンの料金で、毎月の Kinesis Data Streams の費用を計算します。
シャード時間: 1 シャードの費用は 0.015 USD/時間、0.36 USD/日 (0.015 USD * 24) です。使用するストリームには 4 つのシャードがあるので、費用は 1.44 USD/日 (0.36 USD * 4) です。31 日ある月の場合、月額のシャード時間コストは 44.64 USD (1.44 USD x 31) となります。
PUT ペイロードユニット (25 KB): 使用するレコードは 35 KB のため、各レコードは 2 つの PUT ペイロードユニットを含みます。データプロデューサーが毎秒合計 100 レコードまたは 200 PUT ペイロードユニットを追加します。すなわち、267,840,000 レコード/月、または 535,680,000 PUT ペイロードユニット/月です。100 万 PUT ペイロードユニットの費用は 0.014 USD であるため、毎月の PUT ペイロードユニットの費用は 7.499 USD (0.014 USD * 535.68) となります。
オプションで、ストリームのデータ保持期間を 24 時間から最長 7 日間に延長することができます。この例では、データストリームが拡張データ保持を 1 か月間有効にしていたと想定します。または、データの損失を防ぐことが重要な場合にのみ拡張データ保持を選択できます。これにより、拡張保持のコストを節約できます。
拡張データ保持 (最長 7 日間): 拡張データ保持では、シャード時間あたり 0.020 USD の追加料金がかかります。ストリームで 1 か月あたり 2,976 シャード時間 (4 シャード * 24 時間/日 * 31 日/月) が利用される場合、1 か月間の拡張データ保持費用は 59.52 USD (0.020 USD * 2,976) となります
シャード時間と PUT ペイロードユニットの費用を加算して算出される Amazon Kinesis Data Streams の合計費用は、1.68 USD/日、または 52.14 USD/月となります。1 日あたり 1.68 USD の費用で、フルマネージド型のストリーミングデータインフラストラクチャを利用して、4 MB/秒、または 337 GB/日のデータを、信頼性が高く、伸縮自在な方法で、継続的に取り込むことができます。また、月額 59.52 USD の追加料金をお支払いいただくことで、保持期間を 24 時間から最長 7 日間に延長することもできます。
オプションで 7 日を超える期間にわたってデータを保持したり、拡張ファンアウトを使用したりすることもできます。
長期データ保持 (7 日間を超える期間にわたって存在するデータ): データストリームを 30 日間保持したいと仮定します。24 時間から 7 日間までは拡張データ保持のシャード時間料金が適用され (計算については上記を参照)、7 日間を超えて 30 日間 (23 日間) までの期間については長期データ保持の料金が適用されます。23 日間の長期保持料金について、デフォルトのコンシューマー (GetRecords API) を使用する場合は、ストレージに 0.023 USD/GB-月、データ取得に 0.021 USD/GB の追加料金がかかります。3.4 MB/秒のデータ入力レートに基づいて、累積で 3.4 (入力レート) * 1,024 * 1,024 * 3,600 = 12,902,400,000 バイト (1 時間あたり) となります。
月末には、使用量は次のようになります。
3,565,158 * 23 日 * 24 時間/日 = 7,122,124,800,000 バイト-時間
これを GB-月に変換してみましょう。
7,122,124,800,000 バイト-時間 / 1,073,741,824 バイト/GB = 6,633 GB/月したがって、23 日間の保持の合計ストレージコストは 6,633* 0.023 USD = 152.56 USD/月となります。
長期データ取得 (7 日間を超える期間存在しているデータ): GetRecords API を使用してレコードをフェッチする単一のコンシューマーを使用してすべての長期データを取得する場合、最初の 7 日を超えて保存されたデータについてのみ取得料金が発生します。6,623 GB のデータを取得しているため、月末に 6,623 * 0.021 = 139.08 USD が請求されます。拡張ファンアウトコンシューマーを使用して取得した長期データについては、以下に説明するように拡張ファンアウトデータ取得料金が課金されます。
拡張ファンアウトコンシューマーのシャード時間: 拡張ファンアウトはシャードあたり追加料金 0.015 USD がかかり、この費用はデータコンシューマーごとに追加されます。ストリームには毎月 2,976 シャード時間の費用 (4 シャード * 24 時間/日 * 31 日/月) がかかるため、この期間を通じて拡張ファンアウトを利用する各コンシューマーには 44.64 USD の費用が発生します (2,976 * 0.015 USD)。同一期間の 2 個のコンシューマーは 89.28 USD の費用を負担することになります。
拡張ファンアウトデータ取得: 拡張ファンアウトを使用してコンシューマーがストリームから取得するデータには、0.013 USD/GB の料金がかかります。1 か月にわたって 2 つのシャードストリームが 50,000 MB のデータを取り込み、2 つのデータコンシューマーが拡張ファンアウトを利用し、この月にこのデータすべてを取得した場合、取得されるデータの合計は、100,000 MB (50,000 MB x 2 コンシューマー) または 97.6 GB となります。各 GB のコストは 0.013 USD なので、拡張ファンアウトの合計コストは 1.26 USD (97.6 * 0.013 USD) です。
* データが 24 時間 (デフォルト) 保存される場合、または拡張データ保持のために最長 7 日間保存される場合、Amazon Kinesis データストリームからのレコードの取得は無料です。7 日を超えて 365 日の制限までの長期保持のために保存されたデータの取得には、GB あたりの料金が課金されます。
* 拡張ファンアウトを利用する場合、コンシューマー/シャード時間あたり、ならびに収集データ GB あたりの時間料金が発生します。
* AWS は、データプロデューサーから Amazon Kinesis Data Streams へのデータ転送、またはすべてのリソースが同じリージョンにある場合は Amazon Kinesis Data Streams から消費アプリケーションへのデータ転送については課金しません。
* データプロデューサーが別のリージョンの Kinesis Data Stream に書き込みを行っている場合、AWS はデータ転送について課金しません。ただし、オンデマンドモードでは、消費アプリケーションが別の AWS リージョンのデータストリームからデータを読み取る場合、追加料金が発生します。標準の AWS データ転送料金に基づいて請求されます。
* Amazon Kinesis Data Streams は現在 AWS 無料利用枠で利用できないことにご注意ください。AWS 無料利用枠は、一部の AWS のサービスを無料で試用できるプログラムです。AWS 無料利用枠の詳細については、AWS 無料利用枠をご覧ください。
サービスレベルアグリーメント (SLA)
Amazon Kinesis Data Streams サービスレベルアグリーメントの詳細については、よくある質問をご覧ください。