카테고리 없음

Master-Replica 구조 250103

mezzanineX 2025. 1. 3. 12:22

q1: Master-Replica 구조

a1:

Master-Replica 구조는 데이터베이스 복제 및 분산 시스템에서 자주 사용되는 아키텍처로, Master(Primary) 서버와 Replica(Secondary) 서버 간에 데이터 복제 및 부하 분산을 구현하는 방식입니다. 이 구조는 데이터의 고가용성, 부하 분산, 데이터 일관성을 확보하는 데 중요한 역할을 합니다.

Master-Replica 구조의 구성
1. Master (Primary)
• 주 서버로, 데이터의 쓰기 작업을 처리합니다.
• 데이터베이스의 모든 변경 작업(INSERT, UPDATE, DELETE 등)은 Master에서 발생합니다.
• Master는 데이터를 모든 Replica 서버에 전파하여 일관성을 유지합니다.
2. Replica (Secondary)
• 보조 서버로, 주로 읽기 작업을 처리합니다.
• Replica는 Master 서버에서 발생한 데이터 변경 사항을 주기적으로 복제하여 최신 상태로 유지됩니다.
• Replica는 일반적으로 읽기 전용으로 사용되며, 데이터 조회나 분석 작업 등을 처리합니다.

Master-Replica 구조의 특징
• 부하 분산: Master 서버는 쓰기 작업만 처리하고, Replica 서버들은 읽기 작업을 담당하므로 읽기 작업의 부하를 분산시킬 수 있습니다.
• 고가용성: Master 서버에 장애가 발생하면, 하나의 Replica 서버를 Master로 승격하여 서비스를 지속할 수 있습니다.
• 데이터 일관성: Master에서 일어나는 모든 변경 사항은 Replica 서버로 복제되어 일관성 있는 데이터를 제공합니다.

Master-Replica 구조의 장점
1. 읽기 부하 분산:
• 대규모 서비스에서 읽기 작업이 많이 발생할 경우, 여러 Replica 서버를 두어 읽기 요청을 분산시킬 수 있습니다. 이는 Master 서버의 부담을 줄이고 성능을 향상시킵니다.
2. 고가용성 (High Availability):
• Master 서버가 장애를 일으킬 경우, Replica 중 하나를 새로운 Master로 승격시킬 수 있어 서비스 중단 없이 계속 운영할 수 있습니다.
3. 확장성:
• 시스템의 부하가 커지면 Replica 서버를 추가하여 수평적으로 확장할 수 있습니다.
• 특히 읽기 작업이 많은 시스템에서 효과적인 확장 방법입니다.
4. 데이터 안전성:
• Master 서버의 데이터를 여러 Replica 서버에 복제하여 데이터 손실을 방지할 수 있습니다. 하나의 서버가 장애를 일으켜도 다른 서버에서 데이터를 복구할 수 있습니다.

Master-Replica 구조의 단점
1. 쓰기 성능 제한:
• 모든 쓰기 작업은 Master 서버에서만 처리되므로, 시스템에 쓰기 작업이 많은 경우 Master 서버가 성능 병목이 될 수 있습니다.
• 여러 Replica 서버가 있을지라도 쓰기 작업의 부하 분산은 되지 않기 때문에, 성능 최적화를 위해 Master 서버의 성능을 높여야 할 수 있습니다.
2. 데이터 동기화 지연:
• Master 서버에서 발생한 데이터 변경이 Replica 서버에 즉시 반영되지 않을 수 있습니다. 이로 인해 최신 상태의 데이터가 Replica에 반영되기까지 지연이 발생할 수 있습니다.
• 데이터 복제 방식에 따라 **비동기 복제(asynchronous replication)**나 **동기 복제(synchronous replication)**를 사용할 수 있으며, 동기 복제의 경우 성능 저하가 있을 수 있습니다.
3. 복잡한 장애 복구:
• Master 서버에 장애가 발생하면 Replica를 승격시켜야 하는데, 이 과정에서 승격된 Replica가 정상적으로 동작하는지 확인하고 복구 절차가 필요할 수 있습니다.

Master-Replica 구조의 데이터 복제 방식
1. 비동기 복제 (Asynchronous Replication):
• Master 서버에서 데이터를 수정한 후, Replica 서버에 실시간으로 반영되지 않습니다. 대신, Master는 데이터를 수정하고, 수정 사항을 Replica에 주기적으로 전파합니다.
• 이 방식은 성능을 우선시하지만, 데이터 일관성에서 지연이 발생할 수 있습니다.
2. 동기 복제 (Synchronous Replication):
• Master 서버에서 데이터를 수정할 때, 그 변경 사항이 모든 Replica 서버에 즉시 반영됩니다. 데이터가 수정되기 전에 모든 Replica에 반영되어야 하므로 데이터 일관성이 보장됩니다.
• 동기 복제는 데이터 일관성에서 유리하지만, 성능 측면에서는 비동기 복제보다 느릴 수 있습니다.
3. 반동기 복제 (Semi-Synchronous Replication):
• 동기와 비동기의 중간 방식으로, 최소한 하나의 Replica 서버에 데이터 변경 사항을 전파한 후 작업을 완료합니다.
• 성능과 데이터 일관성 사이에서 균형을 맞춘 복제 방식입니다.

Master-Replica 구조의 적용 사례
• 웹 애플리케이션: 읽기 작업이 많은 웹 애플리케이션에서 Master-Replica 구조를 통해 웹 서버와 데이터베이스 서버의 부하를 분산하고, 데이터의 고가용성을 보장합니다.
• 대규모 데이터 분석 시스템: Replica 서버는 데이터를 복제하여 분석 또는 조회 작업을 담당하고, Master 서버는 데이터를 최신 상태로 유지하면서 쓰기 작업을 처리합니다.
• 클라우드 기반 서비스: 클라우드에서 Master-Replica 구조는 수평 확장이 용이하며, 고가용성을 제공하는 데 중요한 역할을 합니다.

결론

Master-Replica 구조는 데이터베이스의 부하 분산, 고가용성, 성능 향상을 위해 매우 유용한 아키텍처입니다. 그러나 쓰기 성능과 데이터 동기화 지연 등의 단점도 고려해야 하므로, 특정 시스템의 요구 사항에 맞는 복제 방식과 설계를 선택하는 것이 중요합니다.

반응형