백엔드 개발 · 심화
두 개 이상의 데이터센터에 걸쳐 Kafka 클러스터를 운영할 때 재해 복구(Disaster Recovery, DR) 전략을 수립하는 방안에 대해 설명하시오. 특히 MirrorMaker 2.0 또는 Confluent Replicator를 활용한 액티브-패시브(Active-Passive) 또는 액티브-액티브(Active-Active) 구성 시 고려해야 할 사항과 데이터 일관성 유지 방안을 포함하시오.
힌트 · 비동기 복제, 데이터 일관성, 토픽 리네이밍, 컨슈머 오프셋 동기화, 네트워크 지연 및 분할 뇌(split-brain) 문제 방지가 핵심입니다.
MirrorMaker 2.0Confluent Replicator액티브-패시브액티브-액티브데이터 일관성
모범답안
두 개 이상의 데이터센터에 걸쳐 Kafka 클러스터를 운영할 때 재해 복구(DR) 전략은 매우 중요합니다. MirrorMaker 2.0 또는 Confluent Replicator를 활용한 액티브-패시브 구성은 한쪽 데이터센터 장애 시 다른 쪽으로 장애 조치하는 방식입니다. 이때 토픽 리네이밍을 통해 원본과 복제본 토픽을 구분하고, 컨슈머 오프셋 동기화를 통해 데이터 유실 없이 소비를 재개하는 것이 핵심입니다.
액티브-액티브 구성은 양쪽 데이터센터 모두에서 데이터를 처리하지만, 데이터 일관성 유지가 더 복잡합니다. 양방향 복제 시 발생할 수 있는 데이터 충돌을 방지하기 위해 토픽별 쓰기 권한을 제한하거나, 고유 식별자를 사용하여 중복 데이터를 처리하는 전략이 필요합니다.
두 구성 모두에서 네트워크 지연은 복제 지연으로 이어질 수 있으며, 데이터센터 간 네트워크 분할(split-brain) 발생 시 데이터 불일치나 서비스 중단을 막기 위한 엄격한 리더십 선출 메커니즘과 장애 감지 및 복구 절차가 필수적입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- Kafka Connect 클러스터를 프로덕션 환경에서 고가용성(High Availability) 및 확장성(Scalability)을 보장하도록 설계하고 운영하기 위한 방안을 설명하시오. 특히 Source/Sink 커넥터의 장애 발생 시 데이터 유실 없이 복구하는 전략에 대해 구체적으로 제시하시오.
- 수백 개의 토픽과 수천 개의 파티션을 가진 대규모 Kafka 클러스터에서 안정적인 성능을 유지하기 위한 브로커, 프로듀서, 컨슈머 각 계층에서의 주요 튜닝 파라미터와 그 효과에 대해 설명하시오. 특히 네트워크, 디스크 I/O 관점에서 최적화 방안을 포함하시오.
- Kafka 클러스터에 대한 End-to-End 보안(인증, 인가, 암호화)을 구현하기 위한 아키텍처를 설계하고, 각 보안 요소(SSL/TLS, SASL, ACL)의 역할과 설정 방법을 설명하시오. 또한, 보안 적용 시 성능에 미치는 영향과 최적화 방안을 논하시오.
- 대규모 컨슈머 그룹에서 잦은 리밸런싱(rebalancing)이 발생할 경우 서비스에 미치는 영향과 이를 최소화하기 위한 전략을 설명하시오. 특히 `max.poll.interval.ms`, `session.timeout.ms`, `heartbeat.interval.ms` 등의 파라미터와 컨슈머 애플리케이션 로직 관점에서의 최적화 방안을 제시하시오.