YongDev
2025. 2. 3. 20:46
2025. 2. 3. 20:46
- 여러 대의 컴퓨터가 네트워크를 통해 하나의 시스템처럼 동작하는 시스템
- 각 노드는 독립적으로 동작하면서도, 시스템 전체적으로는 하나의 일관된 서비스처럼 보이도록 협력
- 확장성 : 트래픽이 증가해도 여러 서버를 추가하여 부하를 분산
- 성능 향상 : 작업을 여러 노드에 분산 처리하여 시스템의 성능을 극대화
- 가용성 : 여러 노드에 걸쳐 시스템이 구성되어 있어 일부 노드가 장애를 겪더라도 시스템은 계속 운영될 수 있음
구성 요소
- 노드
- 분산 시스템의 기본 단위
- 각 노드는 독립적인 컴퓨터로서, 역할에 따라 데이터 저장, 처리, 요청 관리 담당
- 네트워크
- 분산 시스템 내의 노드 간 통신을 담당
- 노드 간 데이터 전송과 상호작용을 관리, 네트워크의 성능이 분산 시스템의 성능에 큰 영향을 미침
- 데이터 복제 및 분산
- 데이터를 여러 노드에 복제하여 저장함으로써 가용성과 내결함성을 보장
- 데이터가 분산되어 저장되면, 하나의 노드에 문제가 발생해도 다른 노드에서 데이터를 제공
주요 원리
- 데이터 일관성
- 모든 노드가 동일한 데이터 상태를 유지하는 능력
- 하나의 노드에서 데이터가 업데이트되면, 다른 노드도 동일한 데이터를 가지게 됨
- 금융 거래, 주문 시스템
- 네트워크 지연이나 장애가 발생하면 데이터가 비동기적으로 처리되면서 동기화 문제가 생길 수 있음
- 가용성
- 시스템이 항상 사용자 요청에 응답할 수 있는 능력
- 하나 이상의 노드가 다운되더라도, 분산 시스템은 여전히 정상적으로 운영 될 수 있어야함
- 소셜 미디어, 스트리밍같은 빠른 피드백 요구
- 내결함성
- 시스템이 일부 노드의 장애에도 불구하고 서비스를 지속할 수 있는 능력
- 데이터 복제 및 분산, 장애 발생 시 자동 복구를 통해 내결함성을 확보
- 그냥 필수
CAP 이론
- 일관성C, 가용성 Availability, 파티션 내성 Parti 이 세가지를 동시에 만족시킬 수 없다는 이론, 3개 중 2개만이라도 만족해라
- 설계
- 일관성 중시 시스템 : 금융 거래 시스템
- 모든 거래가 일관성을 보장해야하므로 가용성보단 일관성
- 네트워크 분할 발새앻도 데이터의 정확성이 우선시
- 가용성 중시 시스템 : 소셜미디어, 스트리밍 서비스
- 빠른 응답이 필수적이므로 일관성을 희생하더라도 가용성과 네트워크 파티션 내성 유지 우선
- 사용자는 약간의 일관성 문제를 느끼지 못하지만 빠른 서비스가 중요하게 작용
장애 대응
- 분산 시스템에서는 노드가 장애를 겪더라도 전체 시스템이 무중단 운영을 유지하는 것이 중요 (하나 장애인데 전체 시스템 중단될 수 있음)
- 노드 장애나 네트워크 장애가 발생했을때 데이터 손실이나 서비스 중단을 방지할 수 있어야함
- 고려사항
- 데이터 복제 : 여러 노드에 데이터 복제
- Failover : 장애 발생시 백업 노드로 트래픽 전환
- 재해 복구 : 치명적인 장애가 발생해도 복구할수있는 계획 수립
네트워크 대역폭
- 분산 시스템에서 노드 간의 데이터 전송 속도는 시스템 성능에 중요한 영향을 미침
- 데이터가 자주 전송되거나 동기화되어야하는 시스템에서 네트워크 대역폭이 부족하면 성능저하
- 네트웤 성능이 느리면, 분산 시스템에서 데이터 일관성 유지나 장애 복구에 문제가 생길수 있음
- 고려 사항
- 네트워크 최적화 : 데이터 전송량 최소화 (압축)
- 지연 : 저장시 지역성 고려
- 캐싱 : 트래픽 줄이기위한 캐싱 전략