본문 바로가기
AWS

AWS MSK 고가용성 설정

by SecuOf 2024. 8. 16.

AWS MSK Kafka 클러스터 설정 및 업그레이드 가이드

AWS MSK 클러스터의 설정 변경과 업그레이드 과정에서 고려해야 할 중요한 사항들을 다루고자 한다. 이 가이드는 Kafka 클러스터의 고가용성 설정, 권장 파티션 수, 그리고 설정 변경 시 주의할 사항들을 설명하는 데 중점을 두고 있다.

1. Kafka 클러스터 고가용성 설정

Kafka 클러스터의 가용성을 높이기 위해 다양한 설정을 고려할 수 있다. 아래는 AWS Support에서 권장하는 설정 값들이다.

default.replication.factor=3
min.insync.replicas=2 
unclean.leader.election.enable=false

주요 설정 항목 설명

- **min.insync.replicas**: `replication.factor - 1`로 설정하는 것이 권장된다. 이는 리더와 하나의 팔로워에게 데이터를 보장하기 위함이다.

- **unclean.leader.election.enable**: `false`로 설정 시 데이터 유실을 방지할 수 있다. `true`로 설정할 경우 가용성을 높일 수 있으나 데이터 유실의 위험이 따른다.

기존 토픽 적용 필요성

이 설정들은 브로커 전체에 적용되지만, 기존 토픽에는 별도로 적용해야 한다. 설정 변경 후에도 기존 토픽은 기존 설정을 유지하므로, 각 토픽에 대해 수동으로 설정을 변경하는 작업이 필요하다.

2. Kafka 클러스터의 권장 파티션 수

Kafka 브로커의 성능을 최적화하기 위해 브로커당 권장되는 파티션 수를 확인하는 것이 중요하다. AWS Support에서는 t3.small 브로커 인스턴스 타입의 경우 브로커당 300개의 파티션을 권장하고 있다. 현재 클러스터에서 브로커당 320개의 파티션이 있어 문제가 발생한 상태이다.

인스턴스 타입별 권장 파티션 수

- **t3.small**: 300개
- **m5.large**: 1000개
- **m5.xlarge**: 1000개

파티션 수를 늘리기 위해서는 인스턴스 타입을 상향 조정하거나, 추가 브로커를 도입해 파티션을 분배해야 한다.

3. 설정 변경 시 주의사항

MSK 클러스터의 모니터링 설정을 변경하려면 클러스터의 재기동이 필요할 수 있다. AWS에서는 롤링 리스타트를 통해 클러스터의 가용성을 유지하며 변경을 적용할 수 있도록 지원한다. 그러나 클러스터의 상태에 따라 소요 시간이 달라질 수 있으므로 이를 고려해 변경 작업을 진행해야 한다.

4. 설정 변경 방법

기존 토픽에 새로운 설정을 적용하려면 Kafka의 토픽 설정 명령어를 사용해야 한다. [Kafka 문서](https://kafka.apache.org/documentation/#topicconfigs)를 참조하여 토픽별 설정을 수정하는 것이 필요하다.

결론

Kafka 클러스터의 성능을 최적화하고 가용성을 보장하기 위해서는 적절한 설정과 클러스터 관리가 필수적이다. 특히, 파티션 수와 고가용성 설정은 클러스터 안정성에 중요한 영향을 미치므로 신중하게 조정해야 한다.

추가적으로 AWS Managed Service에서는 기존 토픽에 대해 설정 변경을 자동화하는 기능을 제공하지 않으므로, 수동으로 관리하는 것이 필요하다. 이러한 과정을 통해 Kafka 클러스터의 성능과 안정성을 극대화할 수 있다.

'AWS' 카테고리의 다른 글

AWS Instance 사용자 이미지 생성 및 ENA 문제  (0) 2020.04.14