Scale up vs Scale out
Scale up
Scale up은 서버 그 자체를 증강시켜 처리 능력을 향상시키는 것을 말한다. 다른 말로 수직 스케일이라고도 한다.
장점
- 구축, 설계가 쉽다.
- 컨트롤러나 네트워크 인프라 비용은 별도로 발생하지 않는다.
단점
- 스토리지 컨트롤러 확장성 한계
- 용량, 성능 확장 제한
- 비싸다.
- 트래픽 부하로 인한 장애 영향도 up
대표적 예로 cpu i3 -> i5 가는 경우 6만원 차이로 성능 향상 1.5배 정도 향상한다. 하지만 i5 -> i7 가는 경우에는 20만원 차이임에도 1.2 ~ 1.3배 정도가 향상한다고 한다.
주요 기술
- 고성능 CPU
- Memory 확장
- SSD
Scale up이 쓰이면 좋은 경우
- 정합성 유지가 어려운 경우
- OLTP(온라인 트랜잭션 처리) - DB 갱신을 요구하는 경우가 많은 경
- 데이터베이스 서버
Scale out
서버의 대수를 증가시켜 처리 능력을 향상키는 것이다. 수평 스케일이라고도 불린다.
장점
- 지속적인 확장이 가능하지만, 복잡성 때문에 무한히 확장 가능한 것은 아니다.
- 분산처리 -> 장애 가능성 down
- Scale up 보다는 저렴
단점
- 설계, 구현의 복잡성
- 관리 비용 증가
- 기본적인 직렬화 존재
- 병렬성이나 대역폭 등 기술적인 문제
- 코어 개수가 증가함에 따라 대역폭이 증가하기 때문에 코어 개수와 성능이 비례 X
주요 기술
- Sharding
- In Memory Cache
- NoSQL
Scale out이 쓰이면 좋은 경우
- 높은 병렬성을 실현하기 쉬운 경우
- 정합성 유지가 쉬운 경우
- 메일 게시판 서버, 데이터 읽기 전용 어플리케이션, 웹 서버
출처
[10분 테코톡] 포도당의 scale up vs scale out, SPOF