하지만 굳이 Kafka를 쓰실 필요는 없습니다. ◦ On-premise Kafka: 쓰지 마. ◦ Amazon Kinesis, Google Pub/Sub, ...: 어지간해서는 그냥 이거 써도 상관 없음. • MSK 제대로 쓰려면 거의 1년은 기다려야 할 겁니다. (중요) ◦ 다른 걸 쓰는 게 더 나을 수도 있습니다. (역시 중요)
목적 Message 교환 변경 사항 누적/처리 설계 사상 flexibility/configurable delivery guarantee persistency/scalability/thro ughput 구현체 ActiveMQ, RabbitMQ, ... Kafka 관련 서비스 AWS SQS, GCP Task Queue, Azure Service Bus AWS Kinesis, GCP Pub/Sub, Azure Event Hubs
◦ 수집된 log의 일부를 지워야 한다면? ◦ 시간의 흐름에 따라 변하는 record schema에 맞춰서 stream을 읽거나 쓰려면? ◦ 수집되고 있는 record를 실시간으로 처리하려면? ◦ Stream의 내용을 microservice에서 가져다 쓰려면? ◦ Storage의 변경 사항을 event stream으로 바꾸거나, 반대로 event stream의 내용을 storage에 반영하려면?
수집된 log의 일부를 지워야 한다면? ▪ Log Retention Policy ◦ 시간의 흐름에 따라 변하는 record schema에 맞춰서 stream을 읽거나 쓰려면? ▪ Schema Registry ◦ 수집되고 있는 record를 실시간으로 처리하려면? ◦ Stream의 내용을 microservice에서 가져다 쓰려면? ▪ Kafka Streams (Interactive Query) ◦ Storage의 변경 사항을 event stream으로 바꾸거나, 반대로 event stream의 내용을 storage에 반영하려면? ▪ Kafka Connect
Hub Kafka Persistency Policy Coarse Coarse Coarse Fine Streaming Support Amazon Kinesis Analytics External Framework External Framework Kafka Streams, KSQL Semantics At Least Once At Least Once At Least Once At Least Once, Exactly Once Ecosystem Medium Small Small Rich Protocol HTTP(S) HTTP(S) HTTP(S) / AMQP / TCP (Kafka) TCP
Kafka를 쓰는 게 낫겠네요?” / “아뇨.” • Kafka는 가장 관리하기 까다로운 시스템 중 하나 ◦ Zookeeper 관리 ◦ Kafka Broker 관리 ◦ 중단되면 안 됨: Rolling Upgrade • 결론: “골치 아프니까 그냥 Cloud Service 쓰자.” or “골치 아파도 쓴다!”
of Amazon MSK supports Apache Kafka version 1.1.1.” • Security Feature (0.9.0)가 빠져 있음 (e.g., SSL) ◦ 민감한 데이터를 전송하기 어려움. • Elastic Scale 기능도 빠져 있음. • 총평: 발표일에 맞춰서 서둘러서 만든 듯한 느낌.
GCP ◦ GCP에서 제공 (2.1.0 - 최신!) ◦ Confluent Tools + BigQuery, Dataflow 등과의 통합을 지원 ◦ AWS와의 연결 지원: 단, ap-northeast 미지원 • Azure HDInsight ◦ Azure에서 제공 (1.1.0) ◦ Elastic Scale, Mirrormaker 등의 기능 + 다른 HDInsight component와의 통합을 지원
서비스에서 Kafka 쪽으로 방향을 틀 정도로. ◦ Amazon이 서둘러서 Managed Kafka Service를 내놓을 정도로. • 하지만 굳이 바꾸실 필요는 없습니다. ◦ Kafka의 장점은 다양한 툴들과의 연동을 지원하는 생태계. ◦ 다른 시스템과의 연동이 딱히 필요 없다면 그냥 계세요. • MSK가 나올 때까지 기다리셔도 되고, 다른 걸 쓰셔도 됩니다. ◦ GCP Confluent Cloud도 있고, Azure HDInsight도 있고. ◦ 어차피 한국 입장에서는 딱 맞는 게 아직 없음.