해결된 질문
작성
·
67
답변 2
1
안녕하세요. Jung Su Kim 님,
우선 강의를 수강해주셔서 진심으로 감사드립니다.
정말 좋은 질문을 해주셔서 기쁩니다. 제가 강의에서 서비스 복구 방안으로 백업 클러스터를 언급 하였지만 자세히 설명 드리지 못했던 점에 대해 죄송한 말씀드립니다. 추후 강의 개선에서 피드백을 반영 하도록 하겠습니다.
먼저 백업 클러스터 개념에 대해 말씀드리면, 메인 클러스터가 장애를 겪고 있을 때 서비스를 지속적으로 사용자에게 제공하기 위한 복구 시스템입니다. 스포티파이와 같은 대규모 서비스에서는 데이터의 무결성과 낮은 지연시간 그리고 고가용성이 중요하기 때문에 백업 클러스터를 설계할 때 실시간 또는 비동기 방식으로 메인 클러스터와 데이터 상태를 유지하는 데이터 동기화, 지리적 장애에 대비해 물리적으로 다른 지역에 배치하고, 트래픽 증가에 대응할 수 있는 성능과 용량을 준비합니다.
그래서 먼저 서비스의 장애를 감지를 하여야 합니다. 그러기 위해서 시스템의 Health Check 및 모니터링 도구를 통해서 장애를 감지하고, 로드밸런서 또는 DNS 를 통해 응답 실패율과 지연시간에 대한 수치 증가를 탐지하여야 합니다.
이후, Failover 단계로 장애가 확인되면 메인 클러스터로의 트래픽을 중단하고 백업 클러스터로 라우팅을 합니다. 이를 위해서 DNS 스위칭 또는 로드밸런서의 백업풀이 활성화 되어야 합니다. 백업 클러스터 활성화 트리거를 시켜주는 것이라고 보시면 됩니다. 데이터베이스 Read Replica 에서 master 로 전환, 캐시 또는 메세지 큐 복구, 사용자 세션 재연결 및 인증과 같은 백업 클러스터 활성화 단계를 진행하게 됩니다.
Failback 단계인 메인 클러스터가 복구된 이후에는 시스템의 상태를 백업 클러스터와 비교하여, 데이터 정합성 검증 및 복제 완료를 확인합니다. 트래픽 라우팅을 메인 클러스터로 재설정하게 되며, 로드밸런서 또는 DNS 레코드를 초기 상태로 복원하게 됩니다.
모든 트래픽이 정상적으로 메인 클러스터로 이동하고 백업클러스터가 비활성화 상태로 돌아가도록 확인, 로그와 모니터링 데이터 분석으로 문제 발생 지점을 검토하여 원인을 분석합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. Jung Su Kim님께서 질문하신 Spotify 서비스의 시스템 디자인에서 백업 클러스터 사용 및 전환에 대한 방안에 대해 설명드리겠습니다.
백업 클러스터의 역할:
서비스 Fail 시 동작:
복구 및 원래 서비스로의 전환:
더 나은 이해를 위해 유사한 시스템 디자인과 백업 클러스터 활용에 대한 실제 사례 및 상세한 방법론을 다루는 자료를 참조하실 수 있습니다:
- “시스템 디자인에서 고가용성을 위한 백업 및 복구 전략”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.