카프카에서 계층 저장소(Tiered storage)가 필요한 이유
데브원영
2023년 10월에 오픈소스 카프카 3.6.0 이 릴리즈 되었는데요,
이때 큰 관심을 받았던 내용 중 하나가 바로 계층 저장소(Tiered storage) 였습니다.
2020년 11월에 릴리즈 된 Cofluent Platform 6.0 과는 다르게 해당 기능은 아직 얼리 엑세스 모드로 쓸 수 있는 상태라 프로덕션 환경에서 사용하기엔 다소 무리가 있습니다만,
상당히 가치 있는 내용이라 많은 분들이 기대를 가지고 있는것 같습니다.
Kafka 에서 계층 저장소가 필요한 이유는 크게 2가지가 있습니다.
📌 컴퓨팅 리소스 감소
카프카는 여러대의 브로커(서버)의 로컬 파일시스템에 레코드를 세그먼트 단위로 저장하는 구조입니다.
만약 리텐션 기간을 길게 가져가서 디스크 공간을 많이 사용하는 토픽이 있을 경우 자연스럽게 브로커의 디스크 공간을 크게 구성해야하는데 이게 생각보다 쉽지 않고 비용이 많이 발생합니다.
때문에 이러한 상황을 만족시키기 위해 로컬 파일시스템보다는 리모트 저장소를 활용하는게 좀더 효율적인데요,
우리에게 친숙한 AWS S3, HDFS, Azure storage 등의 리모트 저장소를 사용할 수 있게 함으로써 리텐션 기간을 길게 가져가야하는 토픽에 대한 저장공간 이슈를 해결할 수 있습니다.
📌 휴먼 리소스 감소
저도 항상 겪는 고질적인 문제입니다만,
카프카 브로커 서버를 증설하거나 각 브로커 노드간 데이터 불균형이 발생할 경우 이를 적절히 분산시키기 위해서는 파티션 재설정(partition reassign) 수행이 필수입니다.
이러한 이슈에 대해 자동화하거나 특정 툴을 사용하긴 매우 까다로운 작업이라 운영자가 직접 수동으로 처리를 해야하는데 이때 자칫 잘못하면 휴먼 fault 가 발생할수도 있고 모니터링에 휴먼 리소스가 많이 들어가게 됩니다.
만약 리모트 저장소를 사용하게 된다면 브로커 노드간 데이터 불균형에 대한 모니터링을 신경쓰지 않아도 되고, 파티션 재설정(partition reassign) 작업도 각 노드의 파티션 리더만 재설정되는 수준으로 끝나기 때문에 노드 추가나 업그레이드가 훨씬 수월해집니다.
'아파치 카프카 애플리케이션 프로그래밍 with 자바' 책의 저자이자 개발 유튜버이신 데브원영님께서 개인 블로그에 이에 대한 내용을 자세하게 정리해주셨으니
관심있으신 분들께서는 공유드린 원문 링크를 참고해주세요.
📚 원문
https://blog.voidmainvoid.net/509?fbclid=IwAR16AJJjm3dUMRklfN2cw46MSvonHxqWHKXDImrdFfLWTl1NpJIJ-Q3R9xY
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 10월 24일 오후 3:20
집
... 더 보기이번 발표를 보고 애플은 끝났다라고 말하는 사람들도 많지만, 나는 오히려 초심으로 돌아갔다고 느껴진다. 이제 진짜 시작한다는 느낌도 들고.
테키 입장에서는 특히 한국 사람 입장에서는 아무것도 없는 것 같이 느껴질 수 있다. 하지만, 기능들 발표한 걸 보면 작아 보이는 것들이 보통 사람들의 매일의 일상속에 필요한 것들이다.
직전 애플 행사에선 AI 기술 따라가야된다고 뭔가 기술적인 아젠다를 말하는데 힘썼는데, 이번엔 WWDC임에도 사용자들에게 필요한 것들을 많이 내 놓았다. 이것이 애플의 철학이 아닌가.