Study/Study
Scale Up vs Scale In vs Scale Out
TTOII
2022. 8. 29. 00:13
728x90
Scale Up
서버의 자원이 부족해 서버의 스펙을 상승시키는 것을 말한다.
하나의 서버의 능력을 증강하기 때문에 수직 스케일링(Vertical Scaling)이라고도 한다.
즉, 기존의 하드웨어를 보다 더 높은 사양으로 업그레이드 하는 것을 말한다.
예를 들어 AWS에서 스펙이 더 좋은 인스턴스 타입으로 교체하는 것과 같다.
Scale Out
서버의 스펙을 상승으로는 한계가 있어 효율이 떨어지는 시점이 있다.
기존의 서버와 같은 사양의 서버 대수를 증가시키는 방법으로 처리 능력을 향상시키는 것을 말한다.
이 방식을 Horizontal scaling이라고도 하며 확장이 Scale Up보다 다소 유연하다.
1의 처리 능력을 가진 서버에 동일한 서버 4대를 추가하여 총 5의 처리 능력을 만드는 것이다.
→ 서버가 여러대가 되므로 각 서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필수적으로 동반되어야 한다.
Scale In
더 이상 필요없는 컴퓨팅 수를 줄이는 것을 말한다.
Scale In vs Scale Out
Scale In | Scale Out | |
장점 | 서버를 추가하는 방법이 아니기 때문에 여러대의 서버를 두는 것보다 데이터 정합성 이슈(데이터가 일관되지 않는 문제)에서 자유롭다. | 단일 서버에서 작업이 쌓여 멈춰있는 병목 현상을 줄일 수 있다. |
단점 | 서버 한 대에 모든 부하가 집중되므로 장애 시 서버가 복구될 때까지 서비스를 중단해야 하는 상황이 발생한다. | 여러 대의 서버로 돌아가기 때문에 데이터 정합성 이슈(데이터가 일관되지 않는 문제)가 생길 수 있다. 그에따라 모든 서버에서 데이터 일관성을 유지해야하기 때문에 설계 및 관리가 복잡하다. |
사용 예 | 한대의 서버에서 모든 데이터를 처리하므로 데이터 갱신이 빈번하게 일어나는 'DB 서버'에 적합한 방식이다. | 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터 변화가 적은 서비스에 적당하다. |
네트워크 서버 설계 및 소프트웨어 변경 비용이 더 클 수 있기 때문에 모든 서비스에 적합한 방식은 아니고 클라우드 환경 및 대규모 서비스 환경에서 권장되는 방법이다.
참고
728x90