IoTセンサなどから大量のデータがAWSクラウドに流れてくる場合、Kinesis Data Streamsなどを処理前に挟むことによって、流量制御するのがベストプラクティスだとされています。
しかし、Kinesis Data Stremsはピーク時を考慮して冗長に設定してしまうと、コスト面で大きな負担となる課題がありました。
しかし、AWS re:Invent 2021で発表された「Kinesis Data Streams オンデマンドモード」を使うことで、シャード数をデータ流量に応じて動的に変更してくれます。
今回はKinesis Data Streams オンデマンドモードのメリットとコスト効果についてご紹介します。
Kinesis Data Streamsとは?
Kinesis Data Streamsはストリーミングデータサービスであり、AWSが受け取った大量のデータをAWS内の別のサービスに取りこぼしなく渡すためのサービスです。
例えば、IoTセンサから大量のデータが送信された時に、直接Lambdaのエンドポイントが指定されてしまうと、Lambdaの同時実行数のクォータを簡単に超えてしまうため、スロットリングが発生します。
こんな場合に、Kinesis Data Streamsを間に挟むことによって、同時バッチやシャードあたりの同時実行数を設定することによりLambdaの同時実行数を抑えることができるよ。
オンデマンドモードは何が嬉しいのか?
Kinesis Data Streamsの最大のメリットとして、ピーク負荷を考慮したシャード数を設定する必要がないが挙げられます。
従来のプロビジョンドの東京リージョンでのコストです。
こちらはオンデマンドの東京リージョンでのコストです。
ユースケースによりコストは変わってきますが、ピーク負荷がかなり高かったりする場合はオンデマンドがコストメリットが出そうです。
Kinesis Data Streams オンデマンドの使い方
まずAWSコンソールからKinesisサービスを選択して、対象のデータストリームを開きます。
「設定」から「容量モードを編集」を選択します。
容量モードでオンデマンドを選択し、「変更を保存」をクリックすれば完了です。
オンデマンドモードの注意事項
Kinesis Data Streams オンデマンドモードを使う場合の注意事項です。
- 書き込み200MiB/秒、200,0000レコード/秒。読み取り400MiB/秒以下の制限あり
- 15分未満でトラフィックが以前のピークの2倍以上増加しない
- 過去30日間に観測されたピークの最大2倍に対応
- ピークの2倍以上の負荷の場合、スロットリングが発生する可能性あり
- リシャーディングに伴うデータ重複が許容できる
オンデマンドは動的にシャード数が変化するため、リシャーディングによりデータの順番や重複が発生する可能性があります。
AWSをイチから学ぶなら「RaiseTech」
また、クラウドサービスでトップシェアのAWSの技術を身につけてスキルアップや転職を考えているなら、「RaiseTech(レイズテック)」がオススメです。
現場で使われる技術にフォーカスして、ほかスクールにはない圧倒的なサポートをしてもらえるので、短期集中で環境構築、自動化、DevOpsなどのAWS技術を身に着けることができます。
「RaiseTech」とAWS認定での資格取得によるスキルアップで、もう一段上のエンジニアへステップアップしましょう!
また、AWSで人工知能(AI)もやりたいと考えている人は、完全オンラインのプログラミングスクール「Aidemy」もおすすめだよ。
まとめ
今回は、Kinesis Data Streams オンデマンドモードのメリットとコスト効果についてご紹介しました。
Kinesis Data Stremsをプロビジョンドで使っているかたは、是非オンデマンドも検討してみてはいかがでしょうか。
コメント