데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약
Redpanda는 Apache Kafka와 완벽하게 호환되는 고성능 스트리밍 데이터 플랫폼입니다. C++로 작성되어 Kafka의 Java 기반 구현보다 2~10배 빠른 처리 속도를 자랑하며, 클라우드 네이티브 환경에 최적화되어 있습니다. 데이터 엔지니어와 데이터 사이언티스트가 실시간 스트리밍 파이프라인을 구축할 때 필수 도구입니다.
기존 Kafka 클라이언트(Python, Java 등)를 그대로 사용 가능. 마이그레이션 비용 제로.
C++ 엔진으로 싱글 노드에서 10M+ 메시지/초 처리. 메모리 효율 6배 ↑.
S3 등 오브젝트 스토리지와 자동 연동. 무한 스토리지, 비용 최적화.
기존 Kafka, Pulsar, Kinesis 등의 대안을 비교하면 Redpanda의 우월성이 명확합니다. 특히 C++ 기반의 낮은 지연과 운영 단순성이 강점입니다.
| 기능 | Redpanda | Apache Kafka | Apache Pulsar | AWS Kinesis |
|---|---|---|---|---|
| 언어 | C++ (고성능) | Java (무거움) | Java (복잡) | Managed (벤더 락인) |
| Throughput | 10M+ msg/s | 1M msg/s | 2M msg/s | ~1M msg/s |
| 호환성 | 100% Kafka API | 기준 | 부분 호환 | Kinesis 전용 |
| 운영 복잡도 | 단일 바이너리 | 다중 JVM | BookKeeper + ZK | 매니지드 |
| Tiered Storage | 기본 지원 (S3) | 플러그인 | 지원 | 제한적 |
| 리소스 사용 | 낮음 (6GB RAM) | 높음 (32GB+) | 매우 높음 | 페이 투 유즈 |
Redpanda는 Kafka와 동일한 개념을 사용합니다: Brokers, Topics, Partitions, Producers, Consumers, Groups. 차이점은 Wasm 지원과 Tiered Storage입니다.
Brokers: 클러스터 노드. rpk로 관리.
Topics: 스트림 논리 단위. 파티션으로 샤딩.
Tiered Storage: 로컬 SSD + 원격 S3 자동 오프로드. 무한 보존 가능.
docker run -d --pull=always -p 8082:8082 \
-p 9092:9092 -p 0.0.0.0:9644:9644 \
--name redpanda-1 \
--cpuset-cpus=0 \
docker.redpanda.com/redpandadata/redpanda:v24.2.1 \
redpanda start --overprovisioned --set redpanda.tls=false \
--set redpanda.enable_transactions=false \
--set redpanda.auto_create_topics=true \
--set redpanda.kafka_address_peers=9092 \
--set redpanda.check=false --set redpanda.dev-mode=true
docker exec -it redpanda-1 rpk topic create my-topic -p 3
pip install kafka-python
from kafka import KafkaProducer
import json
import time
producer = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8')
)
for i in range(10):
producer.send('my-topic', {'message': f'Hello Redpanda {i}'})
time.sleep(1)
producer.flush()
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'my-topic',
bootstrap_servers='localhost:9092',
value_deserializer=lambda m: json.loads(m.decode('utf-8')),
group_id='my-group'
)
for message in consumer:
print(message.value)
redpanda.yaml 또는 rpk cluster config로 설정. 재시작 필요.
| 설정 | 기본값 | 설명 | 실무 추천 |
|---|---|---|---|
| num_wal_segments | 5 | WAL 세그먼트 수 | 50 (고throughput) |
| retention_local_target_ms | 2d | 로컬 보존 시간 | 1d (Tiered 사용) |
| cloud_storage_enable_remote_read | false | S3 읽기 활성 | true |
| log_segment_size | 1GiB | 로그 세그먼트 크기 | 64MiB (많은 토픽) |
| rpc_server | 0.0.0.0:33145 | Admin 포트 | 방화벽 개방 |
| enable_tiered_storage | false | Tiered 활성 | true (프로덕션) |
클러스터 확장: rpk cluster membership --add-node new-node:33145