Amazon Kinesis と Kafka の主な違い:

  • データ保持: Kinesis には最大7日間の保存期間有り。
  • セットアップ: Kafka は Kinesis よりもセットアップに時間がかかり、データ・クラスターをインストール(および管理)するためのチームが必要。
  • SDK(ソフトウェア開発キット) 対応: Kafka は Java に対応、Kinesis(AWS経由)は Java、Go、Android、.NET に対応。
  • 価格: Kafka はオープンソースで無料。Kinesis はセットアップ費用がなく、ユーザーは使ったリソースに対して料金を支払う。
  • レビュー:Webサイト G2において、Kafka は5つ星中4.4で Kinesis は4.1 であり、Kafka の方がスコアが高い。

データストリーマーのご紹介です!このサービスは、あるアプリケーションから別のアプリケーションへのメッセージを検証してルーティングし、ワークロードとメッセージキューを効果的に管理するものです。その結果 ユーザーは、一元化されたプロセッサーを通じてメッセージを処理し、大規模なデータストリームをより効率的に処理することができます。

Amazon Kinesis と Apache Kafkaという2つのデータストリームサービスは、もともと分散ログとして構築さたものであり、ログイベントを追跡して、複雑なデータストリームをリアルタイムで処理します。でもこのツールのうち、どちらが最も価値をもたらすのでしょうか?
そこで本記事では、特徴、価格、カスタマーレビューのスコアなどで、Amazon Kinesis と Kafka を比較してみました。

Kinesis とは

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

また、Kinesis は AWS(Amazon Web Services)の一部であり、Amazon によると、Kinesis は毎秒ギガバイトのデータを継続的に取得します。そしてユーザーはそのデータストリームを AWS のデータストアに転送します。

Integrate.io で、Kinesis との統合がしやすくなり、コードなしでデータを処理できるようになりました。詳細はこちら

Kafka とは

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

Kinesis と Kafka の大きな違いは、そのアーキテクチャにあります。Kafkaは、プラットフォームのデータストアでストリーミングデータを生成するアプリケーション(「プロデューサー」と呼ばれる)を、プラットフォームのデータストアでストリーミングデータを消費するアプリケーション(「コンシューマー」と呼ばれる)から「切り離し」ます。また、Kafka は Kinesis よりも散在性が高いので、ノードの障害に有効です。
ちなみに Apache によると、フォーチュン100社の80%以上で Kafka が使われて(そして信頼して)います。

Amazon Kinesis と Kafkaの比較:機能

Kinesis

Kafka

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

星5つ中4.1

星5つ中4.4

データの保存場所

Kinesis のシャード

Kafka のパーティション

SDK対応

Java, Android, .NET, Go

Java

データ保持期間

7日間

長期保存(ユーザーによる保存期間の設定)

必要なスキルレベル

基礎

上級

カスタマイズ

有

有

性能上の制約

同期して書き込むのは一度に3台まで

制限が少ない

保存

Dynamo db

Zookeeper

価格

使用するリソースに応じて、初期費用なしで利用可能

無料(オープンソース)だが、ハードウェア/セットアップ費用の考慮が必要

サポート

デベロッパーセンター、チュートリアルなど

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


KinesisとKafkaには、ユニークな特徴が以下のようにいくつかあります。

  • Kinesis は Java、Android、.NET、Go に対応し、Kafka は Java のみ対応
  • Kinesis は3台のマシンまたはデータセンターに同期して書き込むことができ、Kafka のユーザーはより多くの設定が可能。
  • Kinesis ではデータはシャードで保存され、Kafka ではデータはパーティションで保存される。

パフォーマンスについては、Kinesis の処理能力は毎秒数千通に達しており、Kafka の処理能力は毎秒約30,000通に達しています。これは Kafka の圧勝と言えますね。

ただ、両プラットフォームには制限があります。Kinesis のデータ保持期間は7日間であり、Kafka はセットアップと運用に多くの労力を必要です。(Kafka には分散エンジニアリングとクラスタ管理の経験が必要)

両プラットフォームに代わるものがあります。Integrate.io は、複雑なデータパイプラインを管理するクラウドベースの ETL/ELT ツールです。データ統合の代替手段として、Integrate.io はコードを必要とせず、データベース、データウェアハウス、データレイク、Salesforce などにデータを格納するための1,000以上の統合機能がすぐに使える状態で提供されています。

サポートとトレーニング

Kinesis

Kinesis には様々なサポートオプションがありますが、すべて親会社であるAmazonの下にあり、そこでユーザーは、デベロッパーセンター、ナレッジセンター、チュートリアルにアクセスし、ヒントやハウツーを得ることができます。

ちなみに、Kinesis は G2.com のサポート部門で10段階の8にランク付けされています。

Kafka

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

ちなみに、Kafka は G2.com のサポート部門で10段階の7.3にランク付けされています。

価格設定

Kinesis 

Kinesis の価格設定では、必要なシャードの数と、データストリームに送信するデータプロデューサーのサイズに応じて増加します。初期費用はかからず、使用したリソースに対してのみ支払いが発生します。

Kafka

オープンソースのプラットフォームである Kafka は無料ですが、Kinesis よりもセットアップとメンテナンスのプロセスが大きく、追加のインストール/サポートの費用を考慮しないといけません。インフラを自分で管理し、ハードウェアのコストについても考える必要があります。

おすすめ記事:Integrate.io の料金設定の仕組み

まとめ

Kinesis と Kafka は、複雑なデータストリームを効率化するデータストリームサービスです。どちらのサービスも信頼性が高く、価値を提供してくれますが、限界もあります。例えば メッセージを7日以上保存したい場合、Kafka はソリューションを提供できるかもしれませんが、そのデータストリーム処理を機能させるには、人間のサポートが多数必要です。

様々なソースからデータを抽出、変換、格納 したいのに、データエンジニアリングチームがない時は、Integrate.io のような ETL ソリューションにお任せください。デモや14日間のリスクフリーパイロットをご希望の方は、こちらからぜひお問い合わせください。

Integrate.io: Delivering Speed to Data
Reduce time from source to ready data with automated pipelines, fixed-fee pricing, and white-glove support
Integrate.io