서버 개발/시스템 설계
[시스템 설계] 시스템 규모 확장
_금융덕후_
2024. 10. 16. 12:00
728x90
반응형
수평적 vs 수직적
수직적 규모 확장 (스케일 업)
스케일업이란 서버의 자원을 고사양 자원으로 업그레이드 하거나 추가하는 행위를 말한다.
주로 CPU, RAM 메모리, 디스크 등을 추가한다.
수직적 확장의 단점:
- 자원을 추가하는 것에는 한계가 있다. (무한히 증설하는 것은 불가능하다)
- 장애 Failover나 서비스 다중화의 방안이 없다.
- 만약 서버 장애가 발생한다면 모든 서비스의 중단이 발생한다.
수평적 규모 확장 (스케일 아웃)
스케일 아웃이란 클러스터의 성능을 개선하기 위해 더 많은 서버를 추가하는 행위를 말한다.
수평적 확장에 필요한 것들
로드밸런서
로드밸런서란 부하분산집합에 속한 서버들의 트래픽을 고르게 분산하는 역할을 한다.
로드밸런서는 보통 사설 주소를 통해 내부 서버들과 통신한다.
여러대의 서버중 한대의 서버가 다운되면 트래픽을 다른 서버로 전송하는 역할을 하며,
클러스터를 구성하는 서버들이 트래픽을 감당하지 못하면 서버를 추가해 대응이 가능하다.
데이터베이스 다중화
데이터베이스 다중화란 마스터-슬레이브 관계를 설정하여 데이터를 클러스터로 구성하는것을 말한다.
데이터의 원본은 마스터에 복제본은 슬레이브에 저장한다.
쓰기 연산은 마스터만 지원하며, 슬레이브는 읽기 연산만을 지원한다.
대부분의 서비스는 읽기 연산이 쓰기 연산보다 압도적으로 많기 때문에
여러대의 슬레이브로 읽기 연산을 하면 부하의 분산이 가능해진다.
데이터베이스 다중화의 장점
- 성능적 측면: 병렬 처리되는 쿼리 수가 많아진다.
- 안정성 측면: 일부 디비가 다운되더라도 잔여 디비로 쿼리 수행이 가능하다.
- 가용성 측면: 일부 디비가 다운되더라도 잔여 디비의 복제본 데이터를 제공 가능하다.
디비가 다운되는 경우에는 어떻게 될까?
슬레이브가 다운되면 읽기 연산은 다른 슬레이브로 전달되게 한다.
하나뿐인 슬레이브가 다운되면 읽기 연산은 마스터에게로 전달되게 한다.
마스터가 다운되면 슬레이브 중에 한대가 마스터를 대체한다.
마스터가 다운된 경우는 슬레이브의 복제 데이터가 최신이 아닐수 있으므로 다중화 기법을 고려해야 한다.
728x90
반응형