티스토리 뷰

#1 스케일 아웃

정의 

접속된 서버의 대수를 늘려 처리 능력을 향상시키는 것입니다.  서버가 증설됨에 따라 트래픽을 나누어 갖게 되고, 각각의 서버가 이를 처리하게 됩니다. 수평 스케일로 불립니다. 

 

특징

장점

  • 병목 현상을 줄일 수 있습니다. 여러 대의 서버를 운영하므로 트래픽을 분산시켜주는 로드 밸런싱을 구현해야 합니다. 이는 트래픽이 증가함에 따라 부하가 적은 서버로 트래픽을 적절히 분담할 수 있음을 알려줍니다.
  • 확장에 유연합니다. 필요에 따라 서버의 수를 원하는 만큼 늘릴 수 있습니다. 
  • 가용성을 높일 수 있습니다. 서버가 여러대인 만큼 하나의 서버가 다운되면 다른 서버로 서비스가 제공되어질 수 있다는 장점이 있습니다.

단점

  • 서버가 여러 대가 되기 때문에 각 서버에 걸리는 부하를 균등하게 해주는 로드밸런싱이 필수적입니다. 
  • 데이터 정합성 문제가 발생할 위험이 높습니다. 대표적인 예로는 각 서버마다 저장하고 있는 세션 정보가 다른 경우입니다.  
  • 서버가 여러대인 만큼 각 대수만큼 비용이 증가합니다. 

 

#2 스케일 업

정의 

서버 그 자체를 증강하는 것에 의해서 처리 능력을 향상시키는 것입니다. 수직 스케일로도 불립니다. 전형적으로 대칭형 멀티 프로세서(SMP)에 대해 프로세서를 추가하는 것이나 프로세서 그 자체를 고성능 모델로 옮겨놓는 것을 가리킵니다. 

쉽게 말하면 본인의 컴퓨터에 여유 슬롯이 있다면 고성능의 RAM이나 CPU를 추가하거나 여유가 없다면 아예 있던 부품을 성능이 더 좋은 부품으로 업그레이드 하는 것입니다. 

대칭형 멀티 프로세싱(SMP) : SMP는 한 개 이상의 프로세서가 장착되고 각 프로세서에 부하를 똑같이 분배시킬 수 있는 운영체제가 구비된 컴퓨터 시스템을 설명하는데 사용되는 단어입니다.

 

특징

장점

  • 어플리케이션 서버에서는 스케일 아웃이 가능해도 빈번히 갱신이 발생하여 정합성 유지가 어려운 데이터베이스 서버에서는 스케일 업을 합니다. 즉 하나의 이미지 데이타베이스에 대해서 빈번히 갱신이 발생하는, 이른바 OLTP(온라인 트랜잭션 처리)(ex 은행 입출금)에 스케일 업이 필요합니다. 
  • 데이터 갱신이 빈번하게 일어나는 '데이터 베이스 서버'에 적합합니다.

단점

  • 서버 한대에 모든 부하가 집중될 것이고 이것으로 문제가 생겨 장애가 생긴다면 서비스 제공이 멈춘다는 위험성이 있습니다.
  • 설치 가능한 CPU, 메모리, 디스크 수의 제한이 있어서 성능을 증가시키는 데 한계가 있습니다.
  • 일정 수준이 넘어가면 부품을 업그레이드 하는 비용에 비해 성능이 좋아지는 증가 폭이 작아집니다. 

 

 

#3 실제 나의 프로젝트에 적용하기

저는 동네 주변에서 헬스를 같이 하거나 피티를 해줄 사람을 매칭해주는 어플리케이션을 개발 중에 있습니다. 

먼저 생각하고 있는 작동 메카니즘은 사용자가 피티를 받고 싶다면 여러 헬스장의 피티 쌤들의 목록이 보여지고 원하는 피티 쌤을 선택해서 컨택하면 됩니다. 아니면 그냥 자유롭게 다른 일반인과 운동을 하고 싶다면 주위에서 동행을 구하는 사람을 목록을 보고 컨택하면 됩니다. 대략 이러한 기능을 가진 서비스입니다. 

스케일 업의 경우에는 ACID를 지키며 데이터를 처리하는 관계형 데이터베이스 서버와 같은 시스템에서 적절합니다. 하지만 스케일 아웃은 비교적 단순한 트랜잭션 처리를 동시 병행적으로 실시하는 웹 서버와 같은 시스템에 용이합니다. 

현재 진행중인 프로젝트인 'HELPARTY'는 웹 어플리케이션이므로 동시 다발적으로 일관된 데이터를 요청받고 응답해야 합니다. 따라서 스케일 아웃을 적용하는 것이 적절해 보입니다. 하지만 스케일 아웃은 정합성 문제를 가지고 있기 때문에 이에 대한 솔루션을 찾아봐야 합니다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함