Basic/코딩기초

[트래픽] 서버가 트래픽을 견디는 법?

코딩공대 2023. 2. 20. 23:59
728x90

1. 트래픽?

트래픽(traffic)이란 서버와 스위치 등 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양을 말한다.
트래픽이 너무 많으면 서버에 과부하가 걸려서 기능에 문제가 생길 수 있다.

 

2. 서버가 트래픽을 견디는 방법

진짜 많은 사용자가 서비스를 이용하면 그만큼 서버에게 많은 요청이 들어갑니다.
웹 서비스를 제공한다고 한다면 웹서버가, API 서버를 운영한다면 API 서버와 데이터베이스에게도 요청이 갈 것이다.
이때, 요청이 많아지면 그걸 '트래픽이 많아졌다'라고 한다.
나 같은 백엔드 개발자는 이런 상황을 잘 대처해야 한다.

트래픽이 많아질수록 서버는 바빠진다. 그 이유는 서버에 요청이 많아지면 요청에 응답하기 위해 서버 컴퓨터에서는 CPU와 메모리를 사용한다. 이때 트래픽이 점점 더 많아질수록 서버 컴퓨터에는 CPU와 메모리가 남지 않을 것이다. 그러면 서버가 응답을 바로바로 못하고 밀리게 되는 병목현상이 발생한다. 또한, 서버가 다운되는 문제까지 발생할 수도 있다.

서버 컴퓨터들이 트래픽 문제를 해결하기 위해서는 두 가지 방법이 있습니다.

※ 자! 이제! 서버가 트래픽을 견디는 방법 두 가지에 대해 알아보자.

  • 스케일 업
    • 스케일 업은 서버 컴퓨터 자체의 성능을 높이는 방법이다. 컴퓨터의 CPU나 메모리의 성능을 더 높이면 더 많은 요청들이 들어와도 거뜬히 처리할 수 있다.
  • 스케일 아웃
    • 스케일 아웃은 서버 컴퓨터의 대수를 높여서 트래픽을 분산시키는 방법이다. 트래핏을 분산시켜 하나의 서버가 일하는 양을 줄여주는 것이다.
대부분의 회사는 스케일 아웃 방식을 이용해서 서버를 관리한다.
그 이유는 스케일 아웃방식은 스케일 업 방식보다 저렴한 가격에 많은 트래픽을 처리할 수 있다는 장점 때문이다.

지금은 AWS등과 같이 클라우드가 트래픽이 늘어나면 자동으로 서버를 스케일링해주는 오토 스케일링(Auto Scaling)을 이용한다.

 - 서버 입장에서 처리해야 할 일을 로드(Load)라고 이야기하고, 스케일 아웃을 통해 로드를 분산 키시는 과정을 로드밸런싱이라고 한다.

 - 서버 스케일링 작업 외에도 캐시서버를 사용해서 서버의 계산 작업을 줄여줄 수도 있다. 실제로 IT 서비스에서 서버의 부하를 줄이기 위해 여러 가지 테크닉을 사용한다고 한다.