[レポート]ANT398 – Amazon Managed Streaming for Kafka (Amazon MSK)入門 #reinvent

本記事はAWS re:Invent 2018のSession「ANT398 - [NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK)」のレポートです。

re:Invent 中に発表された Apache Kafka のフルマネージドサービス「Amazon Managed Streaming for Kafka (Amazon MSK)」の入門セッションです。

セッションについて

スピーカー

Damian Wylie - Principal Product Manager

概要

Discover the power of running Apache Kafka on a fully managed AWS service. In this session, we describe how Amazon Managed Streaming for Kafka (Amazon MSK) runs Apache Kafka clusters for you, demo Amazon MSK and a migration, show you how to get started, and walk through other important details about the new service.

資料

ストリーミング処理について

  • モバイル・サーバー・IoTデバイスなどから、データは常に生成されている
  • リアルタイムにデータ処理できるのになぜバッチで処理する必要があるのか?
  • バッチ処理すると、データが処理されるまでの時間がかかり、データの価値は落ちてしまう

このようなケースに Apache Kafka は向いている

Apache Kafka はリアルタイムデータ処理のスイスアーミーナイフ

Apache Kafka クラスター管理の課題

Apache Kafka を運用できるスキルセットをもった人材の確保が難しい

Apache Kafka を AWS で運用すると、以下のような困難が伴う

  • セットアップが難しい(Broker/Zookeeper)
  • HA を実現するのが難しい
  • コンソールやメトリクスダッシュボードがない
  • スケール操作が複雑
  • AWS 連携は自作

Amazon Managed Streaming for Kafka がこれらを解決

  • フルマネージド
  • 高可用
  • セキュア(通信・ストレージ)

パブリックプレビューのため、申請なしに、利用可能

MSK を使うには?

  • Apache Kafka 1.1.1 が利用可能(最新版は 2.1.0)
  • 管理コンソールまたは AWS CLI から利用可能
  • ブローカー数とストレージを指定

Apache Zookeeper について

Amazon Managed Streaming for Kafka のクラスターの裏では Apache Zookeeper が HA 構成で動作している。

Zookeeper は AWS 掛かん前に面倒を見てくれる上、利用費は発生しない。

GA で提供予定の機能

  • スケールアップ・スケールアウト
  • パーティション・リアサインメント
  • ストレージの自動スケール

AWS 連携

  • VPC 内に構築
  • KMS による encryption at-rest
  • コントロール・プレーン API は IAM 認証
  • CloudWatch メトリクス

Amazon MSK の何が嬉しい?

  • Apache Kafka を採用しやすくなる
    • AWS 上で Apache Kafka を運用する上でのベストプラクティスを織り込んだフルマネージドサービス
    • 利用者はアプリ開発に専念できる
  • Apache Kafka にもフィードバックするよ

利用費

  • ブローカーのインスタンスとストレージ
  • Apache Zookeeper の追加費用は発生しない

Amazon Kinesis Data Streams と MSK の違い

ストリーム向けメッセージングサービスとして

  • 機能は似通っている
  • ユースケースも同じ

違っている点もある

項目 Kinesis Data Streams MSK
プロビジョニング スループット クラスター
スケーリング シームレス クライアントにはあまりシームレスでない
利用費 安い 高い
AWS連携 高い これから
周辺ツール Kinesis ファミリーと仲がよい Kafkaのエコシステムを使える

最後に

Amazon MSK はフルマネージドサービスなだけに EC2 上での Apache Kafka に比べて運用負荷は大幅に軽減されます。

Apache Kafka すでに利用していて、AWS 移行、または、EC2 からフルマネージド移行したいユーザーにはかなり刺さるのではないかと思います。