Horizontal(수평) vs Vertical(수직) Scaling

2DH·2023년 7월 19일
0

시스템 운영에 있어 Capacity Planning은 피할 수 없는 과제이다. 어떤 방식으로 계획하고 확장하는 것이 좋은 방법인지는 각 환경에 따라 다르겠지만 어떤 방식이 좋은지 판단은 필수적이다.

Scalability (확장성)

  • 현재 구동되는 Application이 HW, 즉 DB, Server 등의 CPI / RAM 등에 지금 사용되는 리소스보다 더 많은 리소스를 사용해야할 때 System에 더 많은 리소스를 제공하는 것을 Scalability라고 한다.
  • 물리적 HW Resource(CPU, RAM, Storage etc), Network 모든 부분.

차이점

Horizontally (수평)

  • 동일한 시스템(상대적으로 수직확장보다 낮은 성능의 시스템)을 병렬의 형태로 확장
  • Load Balancer를 통해 Request 요청을 각각의 시스템으로 분산하여 처리할 수 있도록 한다.
  • Scale Out(확장) / In(축소)
  • 프로그램이 수정 될 경우 수 많은 Machine에 배포되어야 하므로 관리하기 어렵다.
  • MSA와 함께 EKS 같은 오케스레이션 기술이 발달하게 된 계기.

Vertically (수직)

  • 기존 시스템에 더 많은 리소스를 추가하는 방식
    • CPU, RAM, Storage, Power, etc
  • Scale Up
  • 현재 사용하고 있는 프로그램 (Application)을 수정할 필요가 없다.
  • 프로그램 수정 후 한곳 또는 적은 양의 서버에만 배포하면 되어 복잡함이 덜하다.
  • 물리적인 리소스 업그레드의 한계가 존재한다.

참조

https://www.section.io/blog/scaling-horizontally-vs-vertically/

profile
Becoming the Data Engineer

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

1개의 답글