Amazon KinesisとKafkaの主な違いは以下の通りです。

  • データの保持期間:Kinesisには最大7日間の保持期間があります。(追加費用はかかりますが、Long-term data retentionの場合、最大365日間まで
  • セットアップ:KafkaはKinesisよりもセットアップに時間がかかる。データクラスタのインストール(および管理)にはチームが必要です。 
  • SDK のサポート:KafkaはJavaをサポートしています。Kinesisは(AWS経由で)Java、Go、Android、.NETをサポートしています。 
  • 価格:Kafkaはオープンソースで無料です。Kinesisにはセットアップ費用がなく、ユーザーは使用したリソースに応じて支払います。 
  • レビュー:KafkaはウェブサイトG2でKinesisよりも高いカスタマーレビュースコアを持っている(4.4/5 vs. 4.1/5)。

今回はデータストリーマーを紹介します! これらのサービスは、あるアプリケーションから別のアプリケーションへのメッセージの検証とルーティングを行い、ワークロードとメッセージキューを効果的に管理します。その結果 ユーザーは集中型プロセッサを介してメッセージを処理し、大規模なデータストリームをより効率的に処理します。 

Amazon KinesisとApache Kafkaは、両者ともにデータストリームサービスです。元々は分散型ログとして構築されたKinesisとKafkaは、ログイベントを追跡し、複雑なデータストリームをリアルタイムで処理します。しかし、どちらのツールが優れているのでしょうか?  

このレビューでは、Amazon KinesisとKafkaを比較し、機能や価格、カスタマーレビューのスコアなどを紹介しています。 

Table of Contents

  1. Kinesisとは?
  2. Kafkaとは?
  3. Amazon Kinesis vs. Kafka
  4. サポート
  5. 価格
  6. まとめ

Kinesisとは?

Amazon Kinesisは、操作ログ、ソーシャルメディアフィード、ウェブサイトのクリックストリーム、金融取引など、さまざまなソースからデータを取得するリアルタイムデータストリーミングサービスです。Kinesisはその後、このデータを処理して変換し、分析のためにデータストアにロードします。例えばNetflixは、数十億のトラフィックフローを処理するためにKinesisを使用しています。  

KinesisはAmazon Web Services(AWS)の一部です。Amazonによると、Kinesisは毎秒ギガバイトのデータを継続的にキャプチャしています。ユーザーはこれらのデータストリームをAWSのデータストアに転送します。

Xplentyは、Kinesisとの統合を簡単に実現します。Xplentyを使えば、コードを書かなくてもデータを処理することができます。詳細はこちらをご覧ください。  

Integrate Your Data Today!

Try Xplenty free for 14 days. No credit card required.

Kafkaとは?

Apache Kafkaはオープンソースの「イベントストリーミングプラットフォーム」、つまりイベントストリームの書き込みと読み込みを行うプラットフォームです。Kafkaはリアルタイムでデータストリームを処理します(Kinesisのように)。ストリーミングデータの読み取り、保存、分析に使用され、企業に貴重なデータインサイトを提供します。例えば、Uberは、ライドシェアのトリップに関連するビジネスメトリクスにKafkaを使用しています。

KinesisとKafkaの大きな違いは、アーキテクチャにあります。Kafkaは、プラットフォームのデータストアでストリーミングデータを生成するアプリケーション(「Producer」と呼ばれる)と、プラットフォームのデータストアでストリーミングデータを消費するアプリケーション(「Consumer」と呼ばれる)を「分離」します。KafkaはKinesisよりも分散性が高いため、ノードの障害に優れています。 

Apacheによると、Fortune 100社の80%以上の企業がKafkaを使用している(信頼している)とのことです。

Amazon Kinesis vs. Kafka   

Kinesis

Kafka

カスタマーレビュースコア G2.com

4.1/5

4.4/5

データはどこに保存される?

Kinesis Shard

Kafka Partition 

SDKのサポートは?

Java, Android, .NET, Go

Java

データ保持期間

7 日

※追加費用はかかりますが、Long-term data retentionの場合、最大365日間まで

Longer (Users configure retention periods)

必要とされるスキルレベル

Basic

Advanced

カスタマイゼーション

Yes

Yes

パフォーマンス制約

一度に3台のマシンに同期し、書き込み

制限少

ストア

Dynamo db

Zookeeper

価格

使用されたリソースにもとづく 、前払いなし

無償、ただしハードウェアとセットアップコストを考慮する必要あり

サポート

Developer center, チュートリアルなど

チュートリアル, ミートアップ, ビデオなど

KinesisとKafka にはいくつかのユニークな機能があります。 

  • Kinesis は Java、Android、.NET、Go をサポートしていますが、Kafka は Java のみをサポートしています。 
  • Kinesisでは3つのマシンやデータセンターに同期して書き込みを行うことができますが、Kafkaではより多くの設定が可能です。 
  • Kinesisはデータをシャードで保存しますが、Kafkaはパーティションで保存します。

パフォーマンスについては、Kinesis は毎秒数千のメッセージのスループットに達します。しかし、Kafkaは毎秒約30,000メッセージのスループットに達しており、Kafkaに軍配が上がります 

両プラットフォームには制限があります。Kinesisは7日間のデータ保持期間( Long-term data retentionの場合、最大365日間。ただし、7 日を超えて 365 日の制限までの長期保持のために保存されたデータの取得には、GB あたりの料金が課金されます。)があります。Kafkaはセットアップと実行に多くの労力を要します。(Kafkaは分散エンジニアリングとクラスタ管理の経験が必要です)

2つのプラットフォームの代替案としてXplentyがあります。Xplentyは、複雑なデータパイプラインを管理するクラウドベースのETL/ELTツールです。データ統合の代替案として、Xplentyはコードを必要とせず、データベース、データウェアハウス、データレイク、Salesforceなどにデータをロードするための1,000以上のすぐに使える統合機能が付属しています。

Integrate Your Data Today!

Try Xplenty free for 14 days. No credit card required.

サポートとトレーニング

Kinesis

Kinesisには様々なサポートオプションがありますが、すべて親会社のAmazonに属しています。ユーザーはDeveloper Center、Knowledge Center、ヒントやHow toのチュートリアルにアクセスすることができます。 

Kinesis のサポートは G2.com で8/10と評価されています。

Kafka

Kafka は Kinesis よりも多くのコミュニティオプションを提供しており、サミットイベントやミートアップなど、ユーザーがネットワークを構築して技術について議論できる場を提供しています。その他のサポートとしては、チュートリアル、ビデオ、サンプルプロジェクトなどがあります。  

Kafka は G2.com のサポートで 7.3/10 と評価されています。

価格

Kinesis 

Kinesisでは、必要なシャードの数とデータストリームに送信するデータプロデューサーのサイズに基づいて価格が上昇します。費用の前払いはなく、使用したリソースに対してのみ支払うことになります。

Kafka

オープンソースのプラットフォームである Kafka は無料です。しかし、Kinesisよりも多くのセットアップやメンテナンスプロセスが必要になるため、追加のインストール/サポートコストを考慮してください。自分でインフラストラクチャを管理する必要があり、ハードウェアのコストを考慮する必要があります。

Recommended Reading: How Xplenty Pricing Works

Integrate Your Data Today!

Try Xplenty free for 14 days. No credit card required.

まとめ

KinesisとKafkaは、複雑なデータストリームを合理化するデータストリームサービスです。どちらのサービスも信頼性が高く、価値を提供しますが、それぞれに制約もあります。7日以上のメッセージを保持したい場合は、それに対しての追加費用を払わないのであれば、Kafkaが最適なソリューションかもしれません。しかし、データストリームプロセスを機能させるためには(多くの)人間のサポートが必要です。

様々なソースからデータを抽出、転送、ロードしたいが、データエンジニアリングチームが不足している。XplentyのようなETLソリューションの信頼性を探ってみてください。オンラインデモはこちらのリンクからお申し込みください。