1000명의 사용자를 예상하고 서버를 구축했는데, 10000명의 사용자가 애플리케이션 사용한다고 가정해 보자.
이러한 경우 기존에 사용하던 서버로는 한계가 있다. 사용자가 늘어감에 따라 서버에는 부하가 증가한다.
따라서 스케일 업
과 스케일 아웃
중 하나를 선택해서 인프라를 재구성해야 한다.
스케일 업
이란, 우리가 현재 사용하고 있는 서버 자체의 성능을 증강
시켜 처리 능력을 향상시키는 것으로, CPU 업그레이드 또는 RAM 추가 등으로 하드웨어 장비의 성능을 높이는 접근 방법이다.
우리가 사용하는 컴퓨터가 느려졌다면 성능이 더 좋은 새로운 컴퓨터를 구매하는 것이 가장 간편한 방법인 것과 비슷한 논리이다.
용량, 성능 확장의 한계
성능 증가 폭이 미미해진다.
하나의 서버가 모든 클라이언트의 트래픽을 담당
기존의 서버와 같은 사양 또는 비슷한 사양의 서버 대수를 증가시키는 방법으로 처리 능력을 향샹시키는 것
스케일 업 보다는 인프라 재구성에 있어서 다소 유연한 방법
스케일 아웃
이란 기존 서버와 비슷한 사양의 서버의 대수를 추가해 여러 대의 서버를 두는 방법이다.
‘1’의 처리 능력을 가진 서버에 동일한 서버 4대를 더 추가하여, 총 ‘5’의 처리 능력을 만드는 것이다.
용량, 성능 확장의 한계가 없다.
여러 개의 서버를 두어 분산처리하기 때문에 장애 가능성이 감소한다.
즉, 단일 서버에 작업이 쌓여서 멈춰있는 병목현상
을 줄일 수 있다.
스케일 업
에 비해 비용 저렴
여러 개의 서버를 관리하기 때문에 관리 비용이 증가한다. (라이센스 비용
)
모든 서버에서 데이터의 일관성을 유지해야 하기 때문에 설계 및 관리가 복잡하고,
데이터의 불일치가 발생할 수 있다.
병렬 컴퓨팅 환경을 구성하고 유지하려면 로드 밸런싱에 대한 높은 이해도가 요구된다.
💡 병렬 컴퓨팅 환경 : 여러 개의 프로세서를 통해 하나의 프로그램을 처리하는 환경
💡 로드 밸런싱 : 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리한다.
스케일 업
: 한 대의 서버에서 모든 데이터를 처리하므로 데이터 갱신이 빈번하게 일어나는 경우 적합
스케일 아웃
: 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터의 변화가 적은 경우 적합