Amazon MSK のアイコン

Amazon MSK 人気2018年〜

Apache Kafka をフルマネージドで提供し、リアルタイムストリーミングデータ処理を実現するサービス

何ができるか

Amazon MSK (Managed Streaming for Apache Kafka) は、Apache Kafka をクラウド上で簡単に構築・運用できるフルマネージドサービスです。Kafka クラスターのプロビジョニング、設定、パッチ適用、障害対応をすべて AWS が管理するため、開発者はストリーミングアプリケーションの構築に集中できます。オープンソースの Apache Kafka と完全互換であり、既存の Kafka アプリケーションをコード変更なしで移行できます。

どのような場面で使うか

リアルタイムのログ集約と分析、クリックストリームデータの収集と処理、IoT センサーデータのストリーミング、マイクロサービス間のイベント駆動アーキテクチャ、データベースの変更データキャプチャ (CDC)、リアルタイムの不正検知システムなど、大量のストリーミングデータを低レイテンシで処理する必要がある場面で活用されています。

身近な例え

高速道路の料金所に例えるとわかりやすいでしょう。大量の車 (データ) が絶え間なく流れてくる中、料金所 (Kafka ブローカー) が車を整理して適切なレーン (トピック) に振り分けます。Amazon MSK は料金所の建設・保守・拡張をすべて代行してくれるため、利用者は車の流れの設計だけに集中できます。

Amazon MSK とは

Amazon MSK は、Apache Kafka のマネージドサービスです。Apache Kafka はリアルタイムストリーミングデータパイプラインの構築に広く使われるオープンソースプラットフォームですが、自前で運用するにはクラスターの構築、ZooKeeper の管理、ブローカーの監視、パッチ適用など多くの運用作業が必要です。MSK はこれらの運用負荷をすべて AWS に委任でき、99.9% の可用性 SLA を提供します。Kafka のネイティブ API をそのまま利用できるため、既存のプロデューサーやコンシューマーアプリケーションの移行も容易です。

MSK Serverless と MSK Provisioned

Amazon MSK には 2 つのデプロイオプションがあります。MSK Provisioned は従来型のクラスター構成で、ブローカーのインスタンスタイプやストレージ容量を明示的に指定します。ワークロードの特性が予測可能な場合に適しています。MSK Serverless はクラスターの容量管理が完全に自動化されており、トラフィックに応じてスケールアップ・ダウンします。初期設定が簡単で、ワークロードが変動する場合やスモールスタートに最適です。どちらもオープンソース Kafka との互換性は同等です。 MSK Serverless と MSK Provisioned の概念や手法を整理するには Amazon の解説書 が便利です。

セキュリティと統合

Amazon MSK は多層的なセキュリティ機能を提供します。通信の暗号化 (TLS)、保存データの暗号化 (AWS KMS)、IAM 認証、SASL/SCRAM 認証、Apache Kafka ACL によるきめ細かなアクセス制御が可能です。VPC 内にクラスターを配置することで、ネットワークレベルの分離も実現できます。AWS Glue Schema Registry との統合によりスキーマ管理を一元化でき、Amazon S3Amazon RedshiftOpenSearch Service などへのデータ連携も MSK Connect を使って簡単に構築できます。

注意点

  • Kinesis Data Streams と比較して、既存の Kafka エコシステム (Connect、Streams、ksqlDB) をそのまま活用したい場合に MSK が適している
  • MSK Serverless はパーティション数に上限があるため、大規模なワークロードでは MSK Provisioned の利用を検討すること
共有するXB!