2019년 8월 22일 목요일

[IT] 스케일아웃 스케일 업

 어느 사이트나 서버를 운영하다보면 서버에 대한 성능에 대한 한계를 느끼는 경우가 생기게 된다. 예전 IT 운여환경에서는 서버를 교체하는 방식으로 기존 시스템의 성능을 향상 시키는 것이 일반 적이었다.  이러한 서버 성능향상 방법론은 이미 구시대의 유물이 되었다.

스케일 아웃 혹은 스케일 업을 통해 각 사이트에 사정에 맞게 서버 성능 향상에도 옵션이 있다.

1) 스케일 아웃

 ‘스케일 아웃’이란 서버를 여러 대 추가하여 시스템을 확장하는 방법이다. 예를 들어, ‘1’의 처리 능력을 가진 서버에 동일한 서버 4대를 더 추가하여, 총 ‘5’의 처리 능력을 만드는 것이다.

 서버가 여러 대가 되기 때문에 각 서버에 걸리는 부하를 균등하게 해주는 ‘Load Balacing'이 필수적으로 동반되어야 한다. (소프트웨어적 요소가 필요함)


 스케일 아웃의 경우, 서버 한 대가 장애로 다운되더라도 다른 서버로 서비스 제공이 가능하다는 장점이 있고 HCI(hyper converged infrastructure, 예_뉴타닉스, 심플리비티, VMware 등) 에서 주로 사용하는 하드웨어 증가 방법이라고 생각하면 된다.

 반면 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터 변화가 적은 ‘웹 서버’에 더 활용을 많이 하고 있으나, 하드웨어 집적도가 계속 늘어나고 있고 성능도 월등히 좋아져 데이터 변화를 고려하지 않을 정도가 되었다.




2) 스케일 업

‘스케일 업’은 서버에 CPU나 RAM 등을 추가하거나 고성능의 부품, 서버로 교환하는 방법을 의미한다. 예를 들어, ‘1’의 처리 능력을 가진 서버 한 대를 ‘5’의 처리 능력을 가진 서버로 업그레이드시키는 것이다.

CPU나 RAM을 추가하기로 했다면 현재 서버에 추가 부품을 장착할 수 있는 여유 슬롯이 있어야 하며, 그렇지 않은 경우 서버 자체를 고성능으로 교체하는 것이 필요하다.

스케일 업의 경우, 서버 한 대에 모든 부하가 집중되므로 장애 시 영향을 크게 받을 수 있는 위험성이 있으며. 한 대의 서버에서 모든 데이터를 처리하므로 데이터 갱신이 빈번하게 일어나는 ‘데이터베이스 서버’에 적합한 방식이다. 이 또한 위의 내용과 상충이 되는데 요새는 DB 서버도 스케일 아웃 방식으로 많이 구성한다.

스케일 업 방식의 서버 증가 방법엔 치명적인 단점이 있다. CPU나 메모리를 확장할 수 있는 슬롯이 있다 해도, 서버를 증설하고 싶을 시기에는 이미 그 슬롯에 맞는 CPU나 메모리는 시장에서 단종된지 오래인 경우가 많다.

그런 이유로 나는 스케일 아웃 방식의 하드웨어 증설 방법을 선호한다.



댓글 없음:

댓글 쓰기