
몇 년 전 작은 쇼핑몰에서 트래픽초과 경고가 왔다. 주문이 늘었나 싶었는데, 접속 기록을 보니 같은 상품 이미지를 짧은 시간에 반복해서 가져가는 요청이 대부분이었다. 서버 요금제를 올리기 전에 무엇이 한도를 채웠는지 확인해야 하는 이유다.
먼저 어떤 한도를 넘었는지 확인한다
호스팅 화면의 ‘트래픽’은 보통 서버가 방문자에게 보낸 데이터 전송량을 뜻한다. 페이지를 한 번 열 때 내려가는 HTML, 이미지, 글꼴, 스크립트가 모두 포함될 수 있다. 다만 업체마다 집계 방식과 초과 시 조치가 다르다. 월 전송량이 소진된 것인지, 순간 접속이 몰려 CPU나 메모리 제한에 걸린 것인지부터 구분해야 한다.
월 한도가 소진됐다면 관리 화면에서 사용량이 언제 급증했는지 본다. 그래프가 일정하게 오르면 평소 페이지 용량과 방문 수의 문제일 가능성이 크다. 한두 시간에 수직으로 올랐다면 특정 파일 요청, 봇, 외부 사이트에서 이미지를 직접 불러가는 상황을 의심한다. 반대로 전송량에는 여유가 있는데 사이트가 느리거나 접속이 끊긴다면 서버 자원이나 데이터베이스 상태를 먼저 봐야 한다.
방문자에게 보이는 오류 화면만으로 원인을 단정하지 않는다. 호스팅 업체가 자체 차단 화면을 보여줄 수도 있고, 서버가 과부하 상태에서 503 응답을 돌려줄 수도 있다. 장애 시각, 관리 화면의 사용량 그래프, 웹서버 접속 기록을 같은 시간대로 맞춰 보는 편이 빠르다.
페이지 용량과 방문 수로 필요한 양을 계산한다
대략적인 월 전송량은 ‘페이지 한 번 열 때 전송되는 데이터 × 하루 페이지 조회 수 × 30일’로 잡는다. 예를 들어 한 페이지를 여는 데 평균 1.5MB가 들고 하루 2,000번 조회된다면 약 90GB다. 월 100GB 요금제에서는 평소 방문만으로도 여유가 거의 없다. 같은 사이트가 하루 500번 조회된다면 약 22.5GB라서 당장 상위 요금제를 살 이유는 약하다.
이 계산은 출발점이다. 재방문자의 브라우저 캐시는 전송량을 줄이고, 이미지가 많은 상품 페이지나 파일 다운로드는 늘린다. 검색 봇 요청도 서버에서는 전송량으로 잡힐 수 있다. 실제 판단에는 최근 4주간의 일별 사용량과 가장 바빴던 날의 사용량을 함께 쓴다. 월평균이 낮아도 특정 행사일에 일일 한도를 넘는 요금제가 있기 때문이다.
접속 기록에서는 전송 바이트가 큰 주소와 요청 횟수가 많은 주소를 따로 뽑는다. 큰 이미지 한 장이 정상 방문마다 내려가는 문제와 작은 파일을 봇이 수만 번 요청하는 문제는 처방이 다르다. 방문자 수만 보고 서버 사양을 고르면 이 차이가 보이지 않는다.
접속이 막혔다면 복구 순서를 지킨다
먼저 장애 시각과 현재 설정을 기록하고, 호스팅 관리 화면에서 남은 전송량과 차단 여부를 확인한다. 초과로 차단됐다면 업체의 임시 증량이나 추가 전송량 구매가 서비스 복구에는 가장 빠를 수 있다. 단, 결제 전에 과금 단위와 한도가 다시 초기화되는 시점을 확인한다. 원인이 그대로면 추가한 용량도 금방 소진된다.
이어서 접속 기록에서 급증한 요청을 찾는다. 특정 파일이 문제라면 이미지 크기와 형식을 줄이고 캐시 설정을 확인한다. 외부 사이트가 이미지를 반복해서 가져간다면 해당 파일의 직접 호출을 제한할 수 있다. 봇 요청이 몰렸다면 요청 경로와 빈도를 근거로 속도 제한이나 방화벽 규칙을 적용한다. 정상 검색이나 실제 방문까지 막히지 않는지 적용 직후 접속 기록으로 확인해야 한다.
전송량이 아니라 CPU나 메모리 한도 문제라면 다른 순서가 필요하다. 같은 시간대의 서버 자원 사용량, 느린 데이터베이스 질의, 예약 작업, 오류 기록을 본다. 캐시가 꺼졌거나 예약 작업이 중복 실행되는 경우에는 요금제만 올려도 문제가 반복된다. 설정을 바꾸기 전에는 파일과 데이터베이스 백업을 확보하고, 복구 후에는 주요 페이지와 주문·문의 기능까지 직접 확인한다.
다음 초과를 막을 기준을 만든다
평소 사용량이 월 한도의 70~80%에 계속 닿는다면 요금제 변경을 검토할 만하다. 한 달 중 하루만 튄다면 먼저 그날의 요청을 설명할 수 있어야 한다. 이미지 최적화, 캐시, 불필요한 다운로드 제거로 줄일 수 있는 전송량을 계산한 뒤에도 여유가 없다면 그때 상위 요금제를 비교한다.
알림은 한도에 도달한 뒤보다 사용량 70%와 90% 지점에 받는 편이 낫다. 일별 전송량과 가장 큰 응답 파일 몇 개만 주기적으로 봐도 갑작스러운 변화를 잡기 쉽다. 백업 파일을 공개 경로에 두거나 대용량 파일을 사이트에서 직접 배포하고 있지는 않은지도 확인한다. 이런 파일 하나가 예상보다 많은 전송량을 만들 수 있다.
트래픽초과가 났을 때 내가 가장 먼저 보는 것은 요금표가 아니라 사용량이 꺾인 시각과 그때 많이 요청된 파일이다. 숫자가 설명되면 저가 요금제로도 안정적으로 운영할 수 있고, 증설이 필요할 때도 얼마를 늘려야 할지 근거가 생긴다.
