개념 정리

서버 스케일링? (Sever scaling // Scale up / Scale out

eojin_Hyun 2022. 3. 30. 10:20

트래픽 참고이미지

서버 스케일링이 필요한 이유?

 사용자가 서비스를 이용할 때, 서버에는 사용자들의 요청들을 받게 됩니다. 이때 발생되는 데이터 전송 수치를 트래픽이라고 하며, 사용자가 많아질수록 많은 요청들을 받아지게되며 이것을 트래픽이 높아진다라고 합니다. 

트래픽이 높아질수록 서버는 많은 요청들을 처리하기 위해 서버가 있는 컴퓨터의 CPU, 메모리를 사용하게 되는데, 이게 트래픽이 높아지면 높아질수록 서버는 일을 바로바로 처리할 수 없게되어 응답이 점점 밀리게됩니다. 이현상을 병목현상이라고 합니다. 

 

이런 문제를 해결하기 위한 방법이 서버 스케일링입니다.

 

스케일링 방법

 서버 컴퓨터가 트래픽을 견디지 못하게된다면 서버가 다운되는 현상이 발생하는데 이를 해결하기 위한 방법으로 스케일업, 스케일아웃 두가지 방법이 있습니다.

스케일업

 스케일 업은 서버의 컴퓨터 성능을 높이는 방법입니다. CPU나 메모리의 성능을 높여서 더 많은 트래픽들을 처리할 수 있도록 하는 것이죠. 스케일업의 경우, 서버 한 대에 모든 요청들이 집중되므로 서버에 문제가 발생(다운등)했을 경우 운영에 있어 영향을 크게 받는다는 위험성이 있습니다. 서버에서 모든 데이터 를 처리하므로 데이터 갱신이 빈번하게 일어나는 '데이터 베이스 서버'에 적합한 방식이라고 합니다.

 

스케일 아웃

 스케일 아웃은 서버를 여러대로 늘리는 것입니다. 트래픽을 여러대의 서버로 분산시켜 한 곳에 과한 트래픽이 발생하지 않도록 예방하는 것입니다. 여기서 서버가 여러대가 되기때문에 각 서버에 걸리는 부하를 균등하게 해주는 '로드밸런싱'이 필수로 적용되어야 합니다. 스케일업과는 다르게 서버 한 대가 장애로 다운되더라도 다른 서버로 서비스 제공이 가능하다는 장점이 있습니다. 다만 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터 변화가 적은 '웹 서버'에 적합한 방식이라고 합니다.

 

오토스케일링

서버의 과부하, 장애 등과 같이 서비스 불능 상황 발생시 자동으로 서버를 복제하여 서버 대수를 늘려주는 작업을 해주는 AWS 서비스