Apache Kafkaをベンダーロックインなしで、より容易に、より便利に
三谷氏はAivenのサービスが容易に導入できることを、オープンソースの分散データストリーミングプラットフォームのApache Kafkaのサービスを例に紹介した。Apache Kafkaはイベント駆動型のアプリケーションやほぼリアルタイムのデータ転送とパイプラインストリーム分析など、アプリケーション間で大量データを迅速に移動する場合に最適だ。Aivenではこれを、ベンダーロックインなしのフルマネージドのサービスで提供する。
Aiven for Apache Kafkaは、クラスタの設定、ノードの展開、クラウドの移行、バージョンアップをワンクリックで実行できる。「Apache Kafkaの複雑さを気にすることなく、アプリケーションの作成と実装に集中できます」と三谷氏。自らApache Kafkaのサーバーをセットアップするのはかなり手間だ。Apache Kafkaサーバーを構築できても、高可用性やセキュリティの確保や未知の障害への対応など、専門知識と多くの人的リソースも必要となる。
Aivenでは、Apache Kafkaをフルマネージドで提供するので、ユーザーは不健全なノードや突然のダウンタイムなどを心配する必要はなく、オンデマンドでApache Kafkaクラスタを作成できる。たとえばApache Kafkaのノードが故障した際には、Aivenのサービスならノードを自動で修復できる。コントロールセンターがノードの故障を検知し、自動で代替ノードを作成、クラスタメンバーからデータを同期しリバランス処理を行う。
またApache Kafkaのパーティションでメッセージの分散が不均一になると、メッセージのバランスが崩れレスポンスが遅くなり、メモリー不足のエラーでディスクが足りなくなりブローカーが停止することもある。オープンソースのApache Kafkaで対処するには、コマンドラインの操作が必要で、煩雑な手順となる。Aivenではコントロールセンターがパーティションの分散をチェックし、パフォーマンスと可用性のためにデータが最適に配置されるよう自動で調整する。セッションでは、TwitterのAPI経由でツイートの内容をApache Kafkaに取り込むデモを行った。ツイートをJSON形式で取得し、Key-Valueストアにメッセージとユーザーのメタ情報を格納。操作するごとにストリーミングされる情報を取得し、メッセージが追加される様子が紹介された。
Aivenでは、Apache Kafkaをより便利に使うためのオープンソースツールのエコシステムも用意している。Apache Kafkaと外部システムを容易に接続するKafka Connect、異なるクラウドやリージョンへのレプリケーションを可能にするMirrorMaker 2、オープンソーススキーマレジストリおよびREST APIを提供するKarapaceなどがある。
Aiven for Apache FlinkはAivenが新しく提供するサービスで、イベントストリームのSQL処理が可能となる。「これは、イベントのリアルタイムアラートやアグリゲーション、フィルタリング分析に最適です」と三谷氏。前述のデモで取得したApache Kafkaのメッセージにはたくさんのメタ情報があったので、Apache Flinkを用いてフィルタリングし、タイムスタンプとメッセージだけにする様子もデモで紹介された。