대용량 트래픽 발생 대응 방법은 서버 확장, 캐싱, 비동기 처리 등이 있습니다.
그중에서 가장 일반적인 방법인 서버 확장에는 수직확장(scale-up)과 수평확장(scale-out) 이 있습니다.
수직 확장(scale-up)은 한 대의 서버를 구성하는 부품(CPU, RAM, DISK 등..)을 추가하거나 업그레이드하여 서버 자체의 처리 능력을 향상시키는 방법입니다. 하지만 성능 확장에는 한계가 존재합니다.
수평확장(scale-out)은 서버의 개수를 늘려서 많은 트래픽을 여러 서버가 나눠서 처리하는 방법입니다. 이때 한 서버에만 트래픽이 몰리는 것을 방지하기 위해 로드 밸런싱으로 트래픽 조절이 필요합니다.
==============================================================
- 개발팀 내에서 당장 해결 가능한 장애인지 파악합니다. 그것이 아니라면
- 대용량 트래픽으로 장애가 발생한다면, 지속적 사용자 불편을 막기위해 사용자 불편을 드려 죄송하다는 공지를 다른 수단(문자나 이메일)로 보내고, 일단 서버를 내릴 것입니다.
- 서버를 내리고 장애가 발생할 시점의 로그를 파악할 것입니다. 어떠한 장애가 있었는지 볼것입니다.
- 만약 대용량 트래픽으로 인한 장애라면, 아래 대응 방안을 고려해볼 것입니다.
대응 방안
- 로드 밸런서를 이용하여 여러대의 서버가 분산 처리하도록 합니다.
- 클라우드 서비스 제공 업체의 오토 스케일링 기능(서버의 부하를 체크하여 서버를 생성하는 방식)을 사용해 봅니다.
- 데이터 베이스 샤딩을 적용.(DB 테이블을 수평 분할하여 물리적으로 서로 다른곳에 분산 저장)
- 데이터베이스 레플리카 적용
- 스케일 업합니다.
- 정적 컨텐츠에 대해 CDN 서비스를 이용하여 컨텐츠 다운 시간을 단축시킵니다.
- API의 응답속도를 단축시키위해 코드를 리팩토링해봅니다.
참고자료
'ComputerScience' 카테고리의 다른 글
GET, POST의 개념과 데이터의 흐름 (0) | 2023.09.03 |
---|---|
ORM 이란? 사용시 쿼리가 복잡해질 경우 해결 방법은? (0) | 2023.08.31 |
HTTP와 HTTPS의 개념 및 차이점 (0) | 2023.08.29 |
HTTP와 HTTPS (0) | 2023.08.29 |
프로토콜 ) TCP와 UDP의 특징과 차이 (0) | 2023.08.25 |