Ответ
В 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.