Cloudflare, R2 위에 구축한 서버리스 이벤트 스트리밍 K2 퍼블릭 베타 공개
- Cloudflare가 K2를 퍼블릭 베타로 공개함. 이벤트를 순서 있는 로그로 저장하는 서버리스 스트리밍 서비스이고 장기 보관을 지원해 소비자가 오래 멈춰 있어도 데이터가 사라지지 않음
- 내부 구현은 R2 객체 스토리지 위의 파티션된 내구성 로그임. append를 지원하지 않는 객체 스토어 특성상 엣지 메모리에 쓰기를 모아 세그먼트 파일로 기록하고, R2의 원자적 연산으로 순서와 오프셋을 부여해 별도 조정 서비스가 필요 없음
- 객체 스토리지 기반이라 produce 지연이 늘어 p99 기준 약 1초임. 글쓴이는 지연보다 비용이 중요한 대용량 파이프라인에 맞는 트레이드오프라고 설명함
- 원래 Basin Pipelines의 수집 계층용 내구성 버퍼로 만들었음. Cloudflare 엣지가 335개 도시에 흩어져 있고 장비 조각이 작고 수명이 짧아 Kafka 같은 전통 분산 시스템을 그대로 돌리기 어려운 게 배경임
- 댓글에서 가격이 읽기와 쓰기 각 $0.04/GB, 저장 $0.02/GB/월로 언급됐고, Kafka 호환 API가 준비 중이라는 답도 나옴
Hacker News opinions
Cloudflare를 진지하게 쓰는 고객이면 보안 걱정 좀 될 듯. LLM이 코드 빨리 짜준다지만 인력은 줄이면서 제품은 미친 속도로 쏟아내잖아.
그건 좀 다르게 봐. 지금 primitives 세트를 만드는 중이고, AI 시대엔 런타임이 중요하지 언어는 덜 중요해.
난 이번 릴리스 반가움. 진짜 필요했던 구멍이 채워졌어. 다음은 제대로 된 데이터베이스랑 D1 개선이겠지.
그건 그냥 인식 문제임. 작년에 2천 명 뽑았고 그 전해엔 인턴 포함 2천 명 뽑았어. 다른 회사보다 뉴스가 많았을 뿐이야.
얘네 원래 이렇게 빨랐음. 베타를 자주 내는 스타일이고. 내 걱정은 시장 장악해서 결국 독점되는 쪽이야.
제품을 vibe coding으로 만든다는 얘기는 아닌 것 같아. 저자 둘 다 이 분야 전문가고, Cloudflare는 인수한 팀이 거의 독립적으로 제품을 만드는 구조거든.
글 쓴 사람이고 K2 테크 리드임. 질문 있으면 받을게.
글 다 읽었는데 Queues랑 K2를 언제 골라야 하는지 아직도 잘 모르겠음.
나도 테스트 중인데 write는 1초 미만인데 E2E 전달이 p95 2.5초, p99 7.5초 나옴. 이 정도가 정상인가?
GKE pub/sub나 Kafka, 다른 큐 서비스 대비 뭐가 좋은 거임?
셋업하고 관리하는 비용이 큼. K2는 읽기와 쓰기 $0.04/GB, 저장 $0.02/GB/월이라 볼륨이 몇 GB 안 되는 팀엔 꽤 유용해. GKE pub/sub은 비교하면 비싸 보이더라.
Google PubSub은 좋은 제품이고 K2의 핵심 이점은 비용, 특히 장기 보관이야. 객체 스토리지 위라 디스크 기반보다 훨씬 싸게 저장하고 그걸 가격에 반영했어. Kafka(MSK, Confluent)보다 싸고 완전 서버리스라 클러스터 관리가 없음. 단점은 produce 지연이 p99 1초 정도로 더 높다는 것.
객체 스토리지가 새 데이터 기반이 되는 중. S3 위에 Kafka 만들고 S3 위에 GitHub 만들고. 난 디스크 달린 시스템 관리하는 것보다 stateless 서버랑 버킷 하나가 좋음.
S3를 쓰는 이유는 bit rot에 대한 엔지니어링 보장 때문인데, 비 AWS 서비스가 같은 보장을 주는지가 의문임. R2도 포럼 보면 객체가 사라졌다는 글이 가끔 올라옴.
100ms 미만 지연이 필요 없는 데이터 시스템은 다 객체 스토리지로 가는 게 맞음. 우리 팀이 R2 팀 옆에 앉아 있어서 제품을 같이 진화시킬 수 있는 게 S3 위에 짓는 사람들보다 유리함.
그럼 egress 요금이 문제 되는 거 아님? 아니면 그래도 디스크보다 싼 거고?
S3는 아직도 저평가됨. 사내에서 만든 작은 도구로 도커 컨테이너 레지스트리를 S3로 교체했는데 잘 돌아감.
아파서 머리가 안 돌아가서 AI 돌려봤는데, '이 작업을 끝내라'는 Queue, '이벤트가 발생했다는 걸 기록하라'는 K2로 정리되더라. 재생, 순서 보장, 여러 시스템이 같은 이벤트를 읽는 건 K2.
재밌는 제품인데 업계 표준이 아닌 것 위에 올라타는 건 항상 꺼려짐. Kafka 호환 API 만든다니 그건 해결되지 않을까.
AutoMQ나 WarpStream과 뭐가 다른 거임? 그것도 S3 위 서버리스인데. Kafka도 inkless diskless topics로 객체 스토리지에서 돌아가긴 함.