목차
분산 시스템이란?
개념
: 여러 대의 독립적인 컴퓨터(노드)가 네트워크를 통해 연결되어 하나의 통합된 시스템처럼 동작하는 구조
특징
- 각 컴퓨터는 독립적으로 작동하지만, 협력하여 작업을 처리함
- 사용자 입장에서는 하나의 시스템처럼 보임
- 데이터와 작업이 여러 노드에 분산되어 저장되고 처리됨
목표
:성능, 확장성, 신뢰성, 가용성, 유지보수성 등을 향상시키기 위해 여러 개의 독립적인 컴퓨터(노드)가 협력하여 하나의 통합된 시스템처럼 동작하도록 설계됨
- 성능(Performance)
- 네트워크 지연이나 부하 증가에도 효율적으로 요청을 처리할 수 있어야함
- 낮은 지연(Latency), 높은 처리량(Throughput) 유지해야함
- 로드 밸런싱을 통해 부하를 균등하게 분산
- 확장성(Scalability)
- 수평 확장: 더 많은 노드를 추가해도 성능이 선형적으로 증가함
- 수직 확장: 노드의 자원을 업그레이드했을 때 효율적으로 활용됨
- 가용성(Availability)
- 시스템이 항상 동작 가능한 상태로 유지되어야 함
- 장애가 발생하거나 일부 노드가 고장나도 시스템 전체가 작동을 멈추지 않도록 설계
- 내결함성(Falut Tolerance)
- 다양한 장애 상황에서도 시스템이 서비스를 제공해야함
- 장애가 발생했을 때 데이터 손실을 방지하거나, 최소화해야함
가용성과 내결함성의 차이
- 일관성(Consistency)
- 분산 시스템의 모든 노드가 동일한 상태를 유지
- 특히 데이터베이스에서는 ACID 속성을 준수하거나 일관된 데이터 상태를 보장하려는 노력이 필요
CAP 이론 (Consistency, Availability, Partition Tolerance)
Partition Tolerance (파티션 감내)
파티션은 두 노드 사이에 통신 장애가 발생하였음을 의미한다.
분리 허용성은 시스템의 노드 간 통신 중단이 아무리 많아도 클러스터가 계속 작동해야 함을 의미함
CAP 이론의 핵심
: 분산 시스템은 일관성, 가용성, 분할 내성 속성 중 두 가지는 만족시킬 수 있지만, 세 가지 동시에 만족시키는 것은 불가능하다. 시스템 설계자는 우선순위를 선택해야함.
Trade Off
: CAP 중 어떤 두 가지를 충족하면 나머지 하나는 반드시 희생되어야 한다는 것을 의미함
CP 시스템
- 일관성(Consistency)과 파티션 감내(Partition Tolerance)를 지원하는 저장소
- 가용성(Availability) 희생
- 즉, 특정 시간대엔 임의의 요청 Q에 대해 응답 A가 반환되지 않는다
- A를 받는 모든 Q에 대해 동일한 A를 반환한다
- 일관성이 중요한 경우(중요한 금융, 의료, 법적 기록 시스템) 사용
AP 시스템
- 가용성(Availability)과 파티션 감내(Partition Tolerance)를 지원하는 저장소
- 데이터 일관성(Consistency)을 희생
- 즉, 특정 시간대엔 동일한 요청 Q에 대해 값이 다른 A를 반환한다
- 가용성이 중요한 경우(사용자 경험을 중시하는 SNS, 전자상거래 시스템) 사용
CA 시스템
- 일관성(Consistency)과 가용성(Availability)을 지원하는 저장소
- 파티션 감내(Partition Tolerance) 희생
- 하지만, 네트워크 장애는 피할 수 없는 일로 여겨지므로, 분산 시스템은 반드시 파티션 감내가 가능하도록 설계되어야한다
- 네트워크 분리를 최소화하는 경우(소규모 네트워크나 단일 노드 기반의 시스템) 사용
즉, 결과적으로 CA시스템은 존재하지 않는다.
'이론' 카테고리의 다른 글
ORM과 트랜잭션 (0) | 2024.11.21 |
---|---|
이벤트 기반 아키텍처(EDA)와 메시지 브로커 (0) | 2024.11.20 |
캐시 (Cache Consistency Management VS TTL(Time To Live)) (0) | 2024.11.18 |
API Gateway (0) | 2024.11.17 |
HTTP vs WebSocket (0) | 2024.11.16 |