반응형
웹 아키텍쳐에서 DB는 병목 지점이다. (대용량 처리시 아키텍쳐를 어떤식으로 구성해야하는지 고민해보자)
1. 스케일업(scale-up), 스케일 아웃 (scale-out)이란?
- 하나의 서버의 사양을 보다 높은 사양으로 업그레이드하는 것을 말한다.(더 좋은 성능으로 더많은 요청을 처리)
- 서버의 대수를 늘려 부하를 분산시켜 더많은 요청을 처리
스케일업 | 스케일 아웃 | |
유지보수 및 관리 | 쉬움 | 여러 노드를 관리해야함 (분산 필요) |
확장성 | 제약있음 (서버의 성능을 높이는데 한계) | 자유로움 |
장애복구 | 서버가 1대, 다운타임 존재 | 장애에 탄력적인 대응 가능 |
※ 스케일 아웃시 같은 입력에대해서는 항상 같은 결과를 반환해야함
- 따라서 다음과 같은 구조를 띄게 된다.
데이터 베이스의 스케일 아웃은 어려운가?
- 스케일 아웃에는 상태가 없어야 하는데, DB에는 데이터의 상태가 존재함 따라서 서버보다 더많은 비용이 발생 (스케일 아웃이 가능한 방법이 존재함)
※ 참고 https://willseungh0.tistory.com/131
따라서 서버 아키텍쳐는 상태관리는 DB에 위임 서버는 상태 관리를 하지않는 형태로 발전
DB는 왜 병목지점?
- 앞서 말한 스케일 아웃이 어렵기 때문에 병목지점이 될 수 있음
- DB는 디스크에서 데이터를 가져오기 때문에 속도가 상대적으로 느림 (병목지점이 될 수 있음)
- 서버와 DB사이에 네트워크 구간이 존재 (네트워크 상황에 따라 요청속도가 느려질 수 있음)
반응형
'프로그래밍 > 대용량 시스템에 대한 이해' 카테고리의 다른 글
완화전략 - Backpressure, Throttling 이란? (0) | 2023.12.01 |
---|---|
kafka란? - 카프카 기초 다지기 1 (1) | 2023.02.19 |
Kafka 설치 및 구동 방법 (0) | 2023.02.18 |
Message Queue란? (0) | 2023.02.18 |
2. 대용량 트래픽 처리 아키텍쳐 종류 (0) | 2022.10.23 |