애플리케이션을 개발할때 이용고객을 100명 정도로 예상하고 서버를 구축했다.그러나 생각보다 이용고객들이 많아져서 1000명이 이용한다. 여기서 기존에 사용하던 서버는 한계가 있다. 그래서 스케일 업과 스케일 아웃으로 인프라를 제구성 해야한다.
일단 스케일 업과 스케일 아웃의 개념을 알아보자
💻스케일 업(Scale Up)
스케일 업(Scale Up)은 쉽게 말해서 서버의 덩치를 키우는 것이다. 사용중인 서버 자체 성능을 증강 시켜 처리능력을 향상 시키는 것으로 CPU를 업그레이드 시키거나 RAM을 추가하는 방법으로 하드웨어 장비의 성능을 높이는 접근 방법이다.
스케일 업(Scale Up)은 비교적 접근하기도 수월하고 , 구현하기도 쉽다.예를 들어 게임을 시작했는데 기존의 컴퓨터가 게임하기에는 너무 낮은 사양이어서 컴퓨터를 바꾸거나 RAM을 추가하거나 CPU를 교체하는것이 스케일 업(Scale Up)과 가장 유사하다 조금 극단적이지만 컴퓨터를 새로 사는것도 스케일업이라고 볼수 있다.
스케일 업(Scale Up)의 장단점
- 장점
- 하드웨어만 추가/교체하는 작업이기 때문에 구현과 설계가 쉽다.
- 여러대의 서버를 두는것 보다 데이터 정합성 이슈에서 자유롭다.
- 컨트롤러나 네트워크 인프라 비용이 추가적으로 발생하지 않는다.
- 단점
- 용량, 성능 확장의 한계가 있다. 가장 좋은 CPU와 가장 큰 용량의 RAM을 사용하더라도 그것을 초과하는 성능으로 업그레이드 하는것은 불가능하다.
- 스케일 업의 수준이 일정 수준을 넘어가면 성능 증가 폭이 작아진다.
- 하나의 서버가 모든 사용자의 트래픽을 담당해야하기 때문에 해당 서버에 문제가 생길 경우 문제를 해결하기 전까지 서버를 중단해야하는 큰 문제가 발생할 수 있다.
💻스케일 아웃(Scale Out)
스케일 아웃이란 기존 서버와 비슷한 사양의 서버의 대수를 추가해 여러대의 서버를 두고 운영하는 방식이다.
스케일업에 비해서 다소 유연한 방법이다.서버가 여래대가 되기 때문에 각서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필요하다.
컴퓨터 한대가 고장나더라도 다른 컴퓨터가 있어서 서비스 제공이 안정적이라는 장점이 있다.
스케일 아웃(Scale Out)의 장단점
- 장점
- 용량,성능 확장의 한계가 없고 하드웨어를 변경하는것이 아닌 비슷한 성능의 서버를 여러대 두는 방식이기 때문에 지속적으로 확장이 가능하다.
- 하나의 서버가 트래픽을 담당하는 스케일 업 방식과는 다르게, 여러개의 서버를 둬서 분산 처리하기 때문에 장애 가능성이 감소한다.
- 스케일 업에 비해서 비용이 저렴하다.
- 단일 서버에 작업이 쌓여서 멈춰있는 병목현상을 줄일 수 있다.
- 단점
- 여러개의 서버를 관리하기 때문에 관리 비용이 증가한다.(라이센스 비용 등)
- 모든 서버에서 데이터의 일관성을 유지해야하기 때문에 설계 및 관리가 복잡하다.
- 병렬 컴퓨팅 환경을 구성하고 유지하려면 로드밸런싱에 대해서 깊은 이해가 필요하다.
스케일 업은 데이터 갱신이 빈번하게 일어나는 경우 적합하다.
스케일 아웃은 데이터 변화가 적은 경우 적합하다.(모두 동일한 데이터를 가지고 있어야 하므로)
상황에 맞게 합리적인 방식을 선택하는 것이 가장 중요하다.
'Dev > 인프라' 카테고리의 다른 글
[Server] CI/CD (0) | 2021.11.08 |
---|---|
[Server] 로드 밸런싱(Load balancing) (0) | 2021.11.05 |
[AWS] EC2 인스턴스 구축하기 (0) | 2021.10.24 |
[Server]운영 서버에 대한 정리 (0) | 2021.10.21 |
[Server]MSA(MicroService Architecture)란? (0) | 2021.06.18 |