기존 개발하고 있던 서비스의 서버가 한계에 도달하는 경우, 스케일 업(Scale-Up) 혹은 스케일 아웃(Scale-Out) 을 고려할 수 있습니다.
스케일 업 은 기존의 서버를 더욱 높은 사양으로 업그레이드하는 것을 의미합니다. 예를 들어, AWS에서 EC2 t2.micro에서 t2.small로 업그레이드하는 방식이 스케일 업입니다. 스케일 업 방식은 상대적으로 간단하게 서버의 성능을 항상 시킬 수 있다는 장점이 있습니다. 하지만, 특정 서버를 무한정 업그레이드할 수 없으며, 장애에 대한 자동복구(failover)나 다중화(re-dundancy) 방안을 제시하지 않습니다. 또한 스케일 업 전략을 선택하는 경우에는 향후 사용량을 미리 추정하여 미리 고사양의 서버를 확보하는 경우가 있습니다. 이러한 경우 실제 필요한 서버의 사양보다 과한 사양의 장비를 확보할 수 있기 때문에 비용적인 손실이 존재할 수 있습니다.
스케일 아웃 은 비슷한 사양의 장비를 추가하여 수평으로 확장하는 방식입니다. 서버로 들어오는 많은 요청을 비슷한 사양의 서버 n대로 분산시켜 성능을 향상시킵니다. 스케일 아웃 방식은 그때그때 필요한 만큼 서버를 추가할 수 있으므로 상대적으로 스케일 업 방식보다 비용 효율적일 수 있습니다. 또한, 특정 서버의 장애 발생 상황에서도 스케일 업 방식보다 가용성이 높습니다. 하지만, 스케일 아웃 방식은 n대의 서버를 관리해야 하므로 관리 포인트가 늘어나며, 각 서버에 부하를 분산하기 위한 로드 밸런싱에 대한 고민이 추가로 필요하다는 단점이 있습니다.
'4차산업혁명의 일꾼 > 개발문답' 카테고리의 다른 글
프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요? (0) | 2025.04.29 |
---|---|
useEffect를 이용하여 로딩 상태 관리하는 방법과 Suspense를 활용하는 방법에 대한 차이점을 설명해주세요. (0) | 2025.04.28 |
ACID에 대해서 설명해주세요. (0) | 2025.04.25 |
리액트 동시성 모드(Concurrent Mode)에 관해서 설명해주세요. (0) | 2025.04.25 |
리액트에서 컴포넌트가 불필요하게 리렌더링되는 상황을 방지하기 위한 방법을 설명해 주세요. (0) | 2025.04.24 |