대용량 트래픽 발생 시 어떻게 대응해야 하나요?
대용량 트래픽을 처리하는 방법은 어플리케이션의 구조와 설계 방식, 시스템 환경에 따라 고정적이지 않고 다양한 방식을 적용할 수 있습니다. 서비스 별로 적용할 수 있는 해결책 중 Spring Framework Reactive Stack 적용, MSA 환경에서 BFF 패턴(WebFlux)적용, Scale-out적용 . 후세션 일관성 유지, 캐싱을 통한 DB 부하 분담 등이 존재합니다.
- 스케일업 아키텍처에서는 추가적인 네트워크 연결 없이 용량을 증강할 수 있고, 추가되는 용량이나 업그레이드 비용만 부가되기에 비용적인 증강은 스케일아웃에 비해 낮다.
- 무엇보다 비교적 업그레이드가 쉽고, 필요 장비와 전력 소모를 어느정도 아낄 수 있다.
- 또한 스케일업도 듀얼 컨트롤러로 고가용성(High Availability, HA) 구성이 가능해 다운 타임을 줄일 수 있다.
- 하지만 온라인 금융 서비스같은 경우 빠르고 정확하면서 단순한 처리가 필요한 OLTP(Online Transaction Processing) 환경에서는 고성능의 스케일업 방식이 적합하다.
- 백업용 스토리지를 구축하는 데 있어서 향후 수년간 데이터 증가 폭이 미미하거나 규모가 작은 경우 스케일업 방식으로 구축하는 편이 경제적일 수도 있다.
- 스케일아웃 아키텍처의 가장 큰 장점 중 하나는 확장의 유연성이다.
- 또한, 하나의 시스템을 모니터링하기 쉬워 보다 이슈에 대응하기 좋다.
- 데이터베이스 워크로드 타입에 따라서 그에 적합한 확장 방식도 달라진다.
- 빅데이터의 데이터 마이닝이나 검색엔진 데이터 분석 처리 등을 대표하는 OLAP(Online Analytical Processing) 애플리케이션 환경에서는 대량의 데이터 처리와 복잡한 쿼리가 이루어지기 때문에 스케일아웃 구성이 더 효율적이라고 할 수 있다.
- 하지만 신입개발자가 아키텍처를 구성할 때 로드밸런싱의 이해도 문제, 서버가 증가함에 따라 같이 증가하는 장애 발생의 확률 또한 올라가는 단점이 있다.
- 서버가 증가하면서 자연스럽게 발생하는 I/O로 인해 지연이 발생할 가능성이 증가한다.