도구스개발

카프카 보존 용량 계산기

생산 처리량·보존 기간·복제 계수로 카프카 토픽(삭제 정책)이 실제로 차지할 디스크 용량을 계산합니다.

MB/s

토픽에 실제로 들어오는 데이터량(압축 후 기준)입니다.

보통 3을 씁니다. 파티션마다 리더 1개 + 팔로워(복제계수-1)개가 각자 데이터 전체를 복제해 저장합니다.

%

로그 세그먼트·인덱스 파일 등을 위한 여유분. 실무에서 20~30%가 흔히 쓰입니다.

권장 디스크 용량 (클러스터 전체)

21.6TB

복제본 1개당 논리 데이터량5.77TB
복제 계수 반영 물리 요구량17.3TB
필요 디스크 = 생산 처리량 × 보존 기간(초) × 복제 계수 × (1 + 오버헤드 여유율). 복제본마다 리더·팔로워가 데이터 전체를 각자 복제해 저장하므로, 클러스터 전체 요구량은 복제 계수에 정비례합니다.
삭제(delete) 정책 토픽 기준입니다. 압축(compaction) 정책 토픽은 시간이 아니라 키별 최신 값만 남기는 방식이라 이 산식이 적용되지 않습니다. 결과는 클러스터 전체 물리 요구량이며, 브로커 한 대당 용량은 브로커 수로 나눠(균등 분산 가정) 가늠하세요.

사용 방법

  1. 1토픽의 생산(프로듀서) 처리량을 MB/s 단위로 넣습니다.
  2. 2보존 기간(log.retention.hours 등에 설정한 일수)을 넣습니다.
  3. 3복제 계수(replication factor)와 세그먼트·인덱스용 오버헤드 여유율을 넣어 최종 권장 디스크 용량을 확인합니다.

자주 묻는 질문

필요 디스크 = 생산 처리량(MB/s) × 보존 기간(초) × 복제 계수 × (1 + 오버헤드 여유율)입니다. 예를 들어 10MB/s를 7일 보존하고 복제 계수 3이면 논리 데이터량(10×604,800≈5.77TB)에 복제 계수를 곱해 약 17.3TB가 필요합니다.

카프카는 파티션마다 리더 1개와 팔로워(복제 계수-1)개가 각자 자기 디스크에 데이터 전체를 통째로 복제해 저장합니다. 리더·팔로워가 데이터를 나눠 갖는 구조가 아니라서, 클러스터 전체 디스크 요구량은 복제 계수에 정확히 비례합니다.

로그는 정확히 보존 기간 경계에서 끊기지 않고 세그먼트(log.segment.bytes) 단위로 삭제되어 일시적으로 더 쌓이고, 인덱스 파일(.index/.timeindex)과 컨슈머 그룹 오프셋 등 부가 데이터도 디스크를 씁니다. 실무에서는 20~30% 여유를 두는 것이 일반적입니다.

아닙니다. `cleanup.policy=compact` 토픽은 시간이 아니라 키별 최신 값만 남기고 지우는 방식이라 이 산식이 적용되지 않습니다. 이 계산기는 시간 기준으로 삭제되는 `cleanup.policy=delete` 토픽만 다룹니다.

알아두면 좋은 점

  • 압축(compaction) 정책 토픽은 다루지 않습니다 — 키 카디널리티·값 크기 기반의 별도 산식이 필요합니다.
  • 생산 처리량은 실측값을 넣어야 합니다. 이 계산기가 실제 트래픽을 조회하지 않습니다.
  • 결과는 파티션 전체(모든 리더+팔로워 합)의 물리 디스크 요구량입니다. 브로커 한 대당 필요한 용량은 이 값을 브로커 수로 나눠(균등 분산 가정) 가늠하세요.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 10일 · 결과는 참고용 추정치입니다.