티스토리 뷰

운영하는 서버의 사용자가 많아질수록 서버에 부하가 증가하여 많은 용량과 성능을 요구하게 된다. 이를 해결하고자 서버를 추가로 설치하는 방법과 기존의 서버의 성능을 높이는 방법이 있다. 전자의 방법을 ‘Scale-Out’이라고 하고, 후자의 방법을 ‘Scale-Up’이라고 한다.

 

RDBMS를 사용하는 경우 수직적 확장(Scale-Up)이 필요하고, NoSQL을 사용하는 경우 수평적 확장(Scale-Out)이 유리하다.

 

1. Scale-Out (수평적 확장)

수평적 확장이란 서버를 추가로 설치하여, 여러 대의 서버가 요청을 처리하는 방법이다. 예를 들어, 기존 1대의 서버에서 추가로 3대의 서버를 설치하면 총 4대의 서버가 사용자의 요청을 처리하게 된다.

이 방식은 서버로 전달되는 부하를 여러 대의 서버로 나누어서 처리하기 때문에 로드밸런싱이 필요하다. 또한, 4대의 서버 중 한 대의 서버가 장애로 죽더라도 나머지 3대의 서버로 서비스를 유지할 수 있다.

 

수평적 확장은 데이터의 정합성이 중요한 RDBMS에 적절하지 않다. 사용자의 요청을 여러 대의 서버에서 처리할 때 동일한 데이터를 유지하기 어렵기 때문이다.

따라서 수평적 확장은 NoSQL에 적합하다.

 

2. Scale-Up (수직적 확장)

수직적 확장이란 기존 서버의 성능을 높이는 방법이다. 예를 들어, RAM을 증가시키거나 CPU를 업그레이드하여 서버의 성능을 향상시키는 것이다.

하지만 한 대의 서버에 부하가 집중되기 때문에 장애의 위험성 또한 커진다. 수평적 확장과 달리, 서버에 장애가 발생하면 서비스 또한 중단될 수 있다.

 

수직적 확장은 데이터의 정합성이 중요한 RDBMS에 적합하다. 여러 대의 서버에서 요청을 처리하는 것이 아닌, 한 대의 서버에서 요청을 모두 처리하기 때문에 동일한 데이터를 유지할 수 있다.

 

결론

 


참고

https://velog.io/@eunhye_/DB-Scale-up%EA%B3%BC-Scale-out

 

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30