AWS - MSK


簡介

MSK 全名是 Managed Streaming for Apache Kafka,在介紹這個服務之前我們先來了解一下 Kafka


Apache Kafka 架構

Kafka 是開源分散式事件串流平台可以對於即時消化與轉換與串流資料的優化方案,他結合 Message Brokering,Data Stirage 與 Stream Processing,提供即時與歷史資料分析並且保證順序不會有訊息遺漏且確保一次處理。

Apache Kafka Function 是個 Message Broker 服務在 Cluster Server 上面。Topic 在 Kafka Cluster 上建立,可以讓 Producers 寫 Message 到 Topic 上面。這個 Message 是可持久化的。多個 Subscriber App 可以使用這個 Message 當作服務之間解耦。這就是所謂 Pub/Sub 架構。

Apache Kafka 也如 functions 可以串流資料儲存解耦 Puber Suber

image


Amazon MSK

安裝且設定 Kafka Cluster 非常複雜,但是使用 Amazon MSK,顧客使用可受惠於 AWS 代管服務,幫忙處理好資源配置,無需遷移到 Amazon MSK 的 kafka 舊版 App 進行程式碼修改,即可支援 Kafka App 工具與外掛

image

MSK 服務整合

Amazon MSK 可以將 AWS 的資料從服務到服務之間的傳輸,可以使用 MSK Connect 可以指定來源與目的,這與 Flink 類似。程式插件部署為 MSK Connector

Athena 也可以與 MSK 進行整合,讓 Athena 可以對 MSK 進行 SQL 查詢

Redshift 提供將資料流提取到 Redshift materialized view 的方法,不需要先暫存到 S3 同時可以已更低延遲更低儲存成本的方式提取串流資料

MSK Serverless

MSK Serverless 是一種 MSK Cluster Type 可以自動擴展,他不需要思考正確的 Cluster 大小或是擴展 Cluster,此外 MSK Cluster Serverless 也有 Pricing Model 提供不同的方案供使用者選擇

MSK Serverless 相容於 Kafka,也能與 CloudWatch 進行整合,收集、觀察與分析 MSK 的指標也能用 Prometheus 來監控。

更新於