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