본문 바로가기

이론

분산 시스템과 CAP 이론

목차

     

    분산 시스템이란?

    개념

    : 여러 대의 독립적인 컴퓨터(노드)가 네트워크를 통해 연결되어 하나의 통합된 시스템처럼 동작하는 구조

     

    특징

    - 각 컴퓨터는 독립적으로 작동하지만, 협력하여 작업을 처리함

    - 사용자 입장에서는 하나의 시스템처럼 보임

    - 데이터와 작업이 여러 노드에 분산되어 저장되고 처리됨

     

    목표

    :성능, 확장성, 신뢰성, 가용성, 유지보수성 등을 향상시키기 위해 여러 개의 독립적인 컴퓨터(노드)가 협력하여 하나의 통합된 시스템처럼 동작하도록 설계됨

     

    • 성능(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