5.8 분산 시스템#
분산시스템은 공유하는 공동의 목표를 달성하기 위해 여러 개의 개별 컴퓨팅 노드에서 컴퓨팅 리소스를 활용하는 컴퓨터 프로그램의 모음을 의미합니다.
➕ 분산 시스템의 장점#
수평적 확장
Machine들을 필요할 때 추가 확장 가능합니다.
낮은 latency
Machine을 물리적으로 유저와 가깝에 위치 시킴으로서 지연을 낮춥니다.
fault tolerance
하나의 서버가 다운되면 다른 서버들이 그 일을 처리할 수 있습니다.
➖ 분산 시스템의 단점#
복잡성은 분산 시스템의 가장 큰 단점입니다. 많은 머신들이 존재할 수록 더 많은 메시지와 더 많은 데이터들을 서로 주고 받게 됩니다. 이는 다음과 같은 이슈들을 발생시킵니다.
데이터 통합, 일치
데이터와 애플리케이션의 상태를 분산시스템에서 동기화 하기 까다롭습니다. 특히 노드들이 시작할때, 멈출때, 실패했을때는 더욱 그렇습니다.
Network and communication failure
메시지들이 올바른 노드에 도달하지 않거나 순서가 틀릴경우 통신과 기능 장애를 초래할 수 있습니다.
Management overhead
더 많은 모니터링, 로깅, 로드 밸런싱이 분산 시스템의 연산과 실패 작업에 투입되어야 합니다.
분산 스토리지 시스템#
분산 스토리지 시스템은 네트워크의 여러 서버나 노드에 데이터를 분산 저장하는 형태의 저장 시스템을 의미합니다.
모든 데이터를 단일 중앙 위치에 저장하는 대신 분산 저장 시스템은 데이터를 여러 위치에 분산하여 가용성, 내결함성, 확장성을 높일 수 있습니다. 대표적으로 Amazon S3 가 있습니다.
분산 스토리지 시스템 운영 방식#
데이터가 작은 조각으로 분할하고 각각의 조각이 여러 서버나 노드에 복제되어 저장됩니다.
이렇게 되면 한 서버가 실패해도 다른 노드에서 데이터를 검색할 수 있습니다.
또한 데이터 복제를 통해 데이터에 더 빠르게 액세스할 수 있도록 하여 가장 가까운 노드에서 데이터를 검색할 수 있게 합니다.
분산 스토리지 시스템의 이점#
Scalability
머신들을 필요할 때 추가 확장할 수 있습니다.
Redundancy
동일한 데이터를 여러 곳에 복제해서 저장하기 때문에 High Availability, BackUp, Disaster Recovery(DR) 가 보장됩니다.
DR: 데이터나 시스템 등의 비상 상황에서 비즈니스 연속성을 유지하기 위한 계획과 전략을 일컫습니다.
지난번 카카오 먹통 대란의 경우 재해복구(DR)를 제대로 마련하지 않은 것으로 확인됐습니다.
Cost
저렴한 서버 여러대를 연결하여 많은 양의 데이터를 저장 가능하게 합니다.
Performance
분산 스토리지는 여러 시나리오에서 한개의 단일 서버보다 더 좋은 퍼포먼스를 보여줍니다.
소비자에게 더 가깝게 데이터를 저장합니다.
대용량의 파일을 빠르게 접근가능하도록 합니다.