ComputerScience

대용량 트래픽 발생 시 대응

Albosa2lol 2023. 8. 31. 01:10

대용량 트래픽 발생 대응 방법은 서버 확장, 캐싱, 비동기 처리 등이 있습니다.

그중에서 가장 일반적인 방법인 서버 확장에는 수직확장(scale-up)과 수평확장(scale-out) 이 있습니다.

수직 확장(scale-up)은 한 대의 서버를 구성하는 부품(CPU, RAM, DISK 등..)을 추가하거나 업그레이드하여 서버 자체의 처리 능력을 향상시키는 방법입니다. 하지만 성능 확장에는 한계가 존재합니다.

수평확장(scale-out)은 서버의 개수를 늘려서 많은 트래픽을 여러 서버가 나눠서 처리하는 방법입니다. 이때 한 서버에만 트래픽이 몰리는 것을 방지하기 위해 로드 밸런싱으로 트래픽 조절이 필요합니다.

 

 

 

 

==============================================================

 

  • 개발팀 내에서 당장 해결 가능한 장애인지 파악합니다. 그것이 아니라면
    • 대용량 트래픽으로 장애가 발생한다면, 지속적 사용자 불편을 막기위해 사용자 불편을 드려 죄송하다는 공지를 다른 수단(문자나 이메일)로 보내고, 일단 서버를 내릴 것입니다.
    • 서버를 내리고 장애가 발생할 시점의 로그를 파악할 것입니다. 어떠한 장애가 있었는지 볼것입니다.
    • 만약 대용량 트래픽으로 인한 장애라면, 아래 대응 방안을 고려해볼 것입니다.

대응 방안

  1. 로드 밸런서를 이용하여 여러대의 서버가 분산 처리하도록 합니다.
  2. 클라우드 서비스 제공 업체의 오토 스케일링 기능(서버의 부하를 체크하여 서버를 생성하는 방식)을 사용해 봅니다.
  3. 데이터 베이스 샤딩을 적용.(DB 테이블을 수평 분할하여 물리적으로 서로 다른곳에 분산 저장)
  4. 데이터베이스 레플리카 적용
  5. 스케일 업합니다.
  6. 정적 컨텐츠에 대해 CDN 서비스를 이용하여 컨텐츠 다운 시간을 단축시킵니다.
  7. API의 응답속도를 단축시키위해 코드를 리팩토링해봅니다.

참고자료

https://limjunho.github.io/2021/06/22/traffic-handling.html