대역폭의 기본 개념
대역폭(Bandwidth)은 네트워크 연결이 단위 시간당 전송할 수 있는 최대 데이터량을 의미한다. 흔히 도로의 차선 수에 비유된다. 차선이 넓을수록 동시에 더 많은 차량이 지나갈 수 있듯이, 대역폭이 클수록 동시에 더 많은 데이터를 전송할 수 있다. 단위는 bps(bits per second)이며, 서버 환경에서는 Mbps(메가비트)나 Gbps(기가비트)를 사용한다. 주의할 점은 비트(bit)와 바이트(Byte)의 차이다. 1Gbps는 초당 약 125MB의 데이터를 전송할 수 있다는 의미이지 1GB가 아니다.
대역폭과 처리량, 지연의 관계
대역폭은 파이프의 굵기, 처리량(Throughput)은 파이프를 통해 실제로 흐르는 물의 양, 지연(Latency)은 물이 파이프의 한쪽 끝에서 다른 쪽 끝까지 도달하는 시간에 대응한다. 대역폭이 1Gbps여도 네트워크 혼잡, 패킷 손실, 프로토콜 오버헤드 등으로 실제 처리량은 이보다 낮다. 지연은 대역폭과 독립적인 지표이며 물리적 거리, 라우팅 경로, 처리 시간에 의해 결정된다. 대역폭이 아무리 넓어도 지연이 높으면 실시간 통신에서 체감 속도가 느려진다.
서버 호스팅에서의 대역폭
서버 호스팅이나 VPS 서비스를 선택할 때 대역폭은 가장 중요한 스펙 중 하나다. 제공 방식은 크게 두 가지로 나뉜다. 월간 트래픽 할당 방식은 한 달에 사용할 수 있는 총 전송량을 정해두는 것이다. 1TB/월이라면 한 달 동안 들어오고 나가는 데이터의 합이 1TB를 넘으면 추가 과금되거나 속도가 제한된다. 포트 속도 보장 방식은 네트워크 인터페이스의 최대 속도를 명시하는 것이다. 1Gbps 포트라면 순간 최대 전송 속도가 1Gbps까지 가능하다.
대역폭이 부족하면 발생하는 문제
웹 서비스의 경우 대역폭이 부족하면 동시 접속자 수가 늘어날 때 페이지 로딩 속도가 급격히 느려진다. 이미지, CSS, JavaScript 파일의 전송이 지연되어 사용자 경험이 저하된다. 스트리밍 서비스는 버퍼링이 발생하고, API 서버는 응답 시간이 길어진다. 극단적인 경우 서버의 네트워크 인터페이스가 포화 상태에 도달하여 새로운 연결 자체를 거부하게 된다. 이것이 대역폭 고갈로 인한 서비스 장애다.
대역폭 최적화 방법
정적 파일을 CDN으로 분산하면 원본 서버의 대역폭 소모를 대폭 줄일 수 있다. 이미지 최적화(압축, WebP 변환, 적절한 해상도)로 파일 크기를 줄이는 것도 효과적이다. HTTP 응답에 gzip 또는 Brotli 압축을 적용하면 텍스트 기반 콘텐츠(HTML, CSS, JS)의 전송량을 60~80% 절감할 수 있다. 불필요한 API 호출을 줄이고, 캐싱 헤더를 적절히 설정하여 동일 리소스의 재전송을 방지하는 것도 대역폭 관리의 기본이다.
대역폭 모니터링
서버의 네트워크 사용량은 실시간으로 모니터링해야 한다. 리눅스에서 iftop은 인터페이스별 실시간 트래픽을 확인할 수 있고, vnstat는 일별, 월별 트래픽 통계를 제공한다. Prometheus의 node_exporter가 네트워크 인터페이스 메트릭을 수집하면 Grafana에서 시계열 그래프로 시각화할 수 있다.
답글 남기기