Как называется сервис Kafka в Amazon?

Ответ

В AWS это полностью управляемый сервис Amazon Managed Streaming for Apache Kafka (MSK).

Ключевые особенности:

  • Полностью управляемый: AWS автоматически настраивает, масштабирует, обновляет и обслуживает инфраструктуру Kafka (брокеры, Zookeeper).
  • Высокая доступность: Данные реплицируются между зонами доступности (AZ).
  • Безопасность: Поддержка шифрования данных в покое и при передаче, аутентификация с помощью IAM, SASL/SCRAM или TLS-сертификатов, и сегментация сети через VPC.
  • Совместимость: Полная совместимость с API Apache Kafka, что позволяет использовать существующие клиентские приложения и инструменты.

Пример создания кластера через AWS CLI:

aws kafka create-cluster 
    --cluster-name "production-msk-cluster" 
    --kafka-version "3.5.1" 
    --number-of-broker-nodes 3 
    --broker-node-group-info file://broker-config.json 
    --encryption-info '{"EncryptionInTransit": {"ClientBroker": "TLS", "InCluster": true}}' 
    --enhanced-monitoring "PER_TOPIC_PER_BROKER"

Альтернативы в других облаках:

  • Azure: Azure Event Hubs (PaaS-сервис с Kafka-совместимым endpoint) или Azure HDInsight с Kafka.
  • Google Cloud (GCP): Confluent Cloud (управляемый сервис от создателей Kafka) или Pub/Sub (родной сервис обмена сообщениями GCP, не является Kafka, но решает схожие задачи).

Ответ 18+ 🔞

Слушай, ну это же просто сказка для ленивых инженеров, а не сервис! Amazon Managed Kafka, или MSK, короче. Представь: тебе нужно развернуть Кафку, а это, блядь, ёперный театр с настройкой, зукрипером, который отдельно с ума сходит, и кучей других радостей. Так вот AWS тебе говорит: «Расслабься, чувак, мы всё сделаем». И правда, они эту всю хуйню — брокеров, зукрипера, обновления, масштабирование — берут на себя. Ты только говоришь, сколько тебе надо и как круто.

Что в нём такого офигенного:

  • За тебя всё делают: Серьёзно, ты можешь забыть про админские пляски с бубном. Масштабируется, обновляется, чинится — всё автоматом. Просто ебушки-воробушки.
  • Не упадёт: Данные он раскидывает по разным дата-центрам (зонам доступности) внутри региона. Один центр накрылся медным тазом — другому похуй, всё работает.
  • Не простудится: Шифрует всё, что можно: и данные на дисках, и по проводам летящие. Можно прикрутить свою аутентификацию (IAM или другие методы) и спрятать кластер глубоко в своей приватной сети (VPC). Доверия к безопасности — овердохуища.
  • Работает со всем, что ты знаешь: Полная совместимость с Apache Kafka. Твои старые приложения, коннекторы и тулзы будут работать, как ни в чём не бывало. Никаких сюрпризов.

Вот, например, как его накодить через консольку (CLI):

aws kafka create-cluster 
    --cluster-name "production-msk-cluster" 
    --kafka-version "3.5.1" 
    --number-of-broker-nodes 3 
    --broker-node-group-info file://broker-config.json 
    --encryption-info '{"EncryptionInTransit": {"ClientBroker": "TLS", "InCluster": true}}' 
    --enhanced-monitoring "PER_TOPIC_PER_BROKER"

Смысл в том, что ты в файлике broker-config.json описываешь, на каких мощных тачках это всё будет крутиться, а команда делает всё остальное. Мониторинг включаешь детальный, чтобы потом не гадать, что там происходит.

А если ты, хитрая жопа, решил сбежать из экосистемы AWS?

  • В Azure: Можешь взять Azure Event Hubs — это их родной PaaS, который умеет говорить на языке Kafka, так что твои клиенты подключатся без проблем. Или, если прям очень хочется, HDInsight с Кафкой внутри, но это уже больше ручных настроек.
  • В Google Cloud (GCP): Там есть Confluent Cloud — это управляемая Кафка от самых её создателей, красота. А можно пойти другим путём и использовать их родную штуку Pub/Sub. Это не Кафка, но задачи асинхронной отправки сообщений между сервисами решает на ура. Выбор есть, но MSK — это просто очень удобно, когда ты уже в AWS.