네이버 뉴스 서비스가 대용량 서비스 환경이어서 토이프로젝트도 이를 이해하고 구현하는 목적을 설정해 대용량 서비스 환경을 가정했다. 그 예시를 찾아본 결과 등록 사용자 수, 월 사용자 수, 서비스 액세스 횟수, 시간 대비 최대 트래픽의 수치가 일일 로그 용량에 기가바이트, 테라바이트 급으로 영향을 미치는 것을 말하는 것을 확인했다.
예를 들면 페이스북에서 2020년 기준으로 하루 4 페타바이트를 생성하며 실 사용자수는 기준 27억이다. 네이버 라인 같은 메신저의 경우 매년 1월 1일 0시만 되면 최대 트래픽의 수치가 급증하고, 알리바바의 경우 매년 11월 11일만 되면 세계 최대의 쇼핑 이벤트인 광군제 때문에 초당 54만 건의 주문 트래픽도 견뎌냈다.
이번 뉴스 서비스 토이프로젝트의 경우에는 의류 브랜드 FOLDER 온라인 스토어의 사용자 수와 트래픽을 참고했으며
2017년 기준의 1/4 수준으로 설정했다. 이는 회원수 5만명, 최대 트래픽 규모는 분단위 액세스 약 1000회이다.
처음부터 페이스북, 네이버 라인의 트래픽을 가정하고 토이프로젝트를 진행하기엔 내게 부족한점이 많아 기준을 낮게 잡았다.
그런데 대용량 서비스 환경에서는 서버 1대만 사용하는 구조로는 장애 발생과 트래픽 과부하 문제에 어떻게 대응할지가 문제였다. 이를 위해 서버 리소스를 증설해야 하는데 스케일업(Scale-up) 보다는 고가용성이 장점인 스케일아웃(Scale-out)으로 멀티 서버의 구조를 가져가야 한다는 것을 알게 됐다. 스케일아웃의 경우 서버 1대에 장애가 생기더라도 다른 서버를 활용해 서비스 제공이 가능하므로 웹 서비스에서 많이 사용하기 때문이다.
따라서 토이프로젝트에는 최소 2대 이상의 서버를 갖는 멀티 서버를 갖도록 했다.
💡 스케일업(Scale-up)
서버에 CPU나 RAM 등을 추가해 서버 처리 능력을 향상하는 방법이다.
💡 스케일아웃(Scale-out)
서버의 대수를 늘려 처리 능력을 향상하는 방법이다.
💡 추후 스케일업과 스케일아웃에 대해 별도로 포스팅 후 링크를 달아둘 테니 참고 바란다.
출처
뉴스 서비스 토이프로젝트
페이스북 관련 내용
medium.com/@srank2000/how-facebook-handles-the-4-petabyte-of-data-generated-per-day-ab86877956f4
네이버 라인 관련 내용
engineering.linecorp.com/ko/blog/how-line-messaging-servers-prepare-for-new-year-traffic/
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
'개발 간 의사결정' 카테고리의 다른 글
뉴스 서비스 토이프로젝트 - 세션 클러스터링(Session Clustering) with Redis (0) | 2021.04.29 |
---|