
얼마 전 하루 방문자 800명인 블로그가 느리다며 VPS 이전을 준비하는 분을 만났다. 확인해 보니 서버 사양보다 이미지 용량과 캐시 설정이 문제였다. 이미지를 줄이고 페이지 캐시를 적용하자 기존 웹호스팅에서도 속도가 안정됐다. 워드프레스웹호스팅은 방문자 수만 보고 비싼 요금제를 고르면 돈을 쓰고도 같은 문제를 겪기 쉽다.
방문자 수보다 접속이 몰리는 시간을 본다
월 방문자 3만 명은 하루 평균 1천 명이다. 이 숫자만 보면 큰 서버가 필요해 보일 수 있다. 그런데 방문이 하루 24시간에 고르게 퍼진다면 초당 접속량은 크지 않다. 실제로 확인할 것은 특정 시간대에 몇 명이 들어오는지, 그중 몇 명이 캐시되지 않은 페이지를 요청하는지다.
예를 들어 하루 1천 명이 페이지를 두 장씩 보고, 가장 바쁜 시간의 요청량이 평균의 10배라고 가정해도 페이지 요청은 초당 약 0.23건이다. 계산은 2천 건을 8만 6400초로 나눈 뒤 10을 곱한 값이다. 다만 예약 판매나 방송 직후처럼 몇 분 안에 방문이 몰리는 사이트는 일평균으로 판단하면 안 된다. 분석 도구에서 가장 바쁜 5분의 요청량을 따로 봐야 한다.
여기서 ‘동시접속 100명’도 그대로 서버 부하 100건을 뜻하지 않는다. 화면을 읽는 사람은 그 순간 서버에 요청을 보내지 않는다. 반대로 장바구니, 검색, 관리자 화면은 사람이 적어도 PHP와 데이터베이스 작업이 계속 생길 수 있다. 일반 글 중심 블로그와 주문을 받는 쇼핑몰의 적정 사양이 다른 이유다.
작은 블로그라면 공유 웹호스팅부터 확인한다
글과 이미지가 중심이고 방문자가 하루 수백 명에서 1천 명 안팎이라면, 캐시를 쓸 수 있는 공유 웹호스팅으로 시작하는 경우가 많다. 무료 요금제도 시험용 사이트에는 쓸 만하다. 다만 운영 사이트라면 광고 삽입 여부, 자체 도메인 연결, 백업 반출, 저장 공간 제한을 먼저 확인한다. 무료라는 이유만으로 복구 수단까지 포기할 필요는 없다.
요금표에서는 저장 공간보다 PHP 버전 선택, 데이터베이스 제공, 서버 자원 제한, 자동 백업 주기를 눈여겨본다. 워드프레스가 요구하는 PHP와 데이터베이스 버전은 설치 시점에 워드프레스 공식 요구 사항과 대조한다. ‘무제한 트래픽’이라는 문구가 CPU 사용량이나 동시 실행 작업까지 무제한이라는 뜻은 아니다. 이미지 처리나 백업 작업이 잦으면 이런 제한에 먼저 걸릴 수 있다.
저장 공간은 현재 사용량만큼만 잡으면 금방 모자란다. 업로드 파일 3GB, 데이터베이스 1GB라면 임시 파일과 업데이트 여유를 포함해 최소 8~12GB 정도를 검토한다. 백업을 같은 계정 안에 보관한다면 더 필요하다. 다만 백업을 원본 서버에만 두는 방식은 장애 때 함께 사라질 수 있으므로 별도 저장 공간이 필요하다.
VPS가 필요한 때와 숨은 운영 비용
VPS는 자원을 더 세밀하게 조절해야 할 때 유용하다. 캐시되지 않는 요청이 계속 많거나, 여러 사이트를 한꺼번에 운영하거나, 서버 설정을 직접 바꿔야 한다면 검토할 만하다. 반면 VPS를 쓰면 운영체제 보안 업데이트, 방화벽, 웹서버 설정, 장애 감시까지 직접 책임져야 한다. 월 이용료가 비슷해도 운영에 쓰는 시간이 달라진다.
처음 이전할 때는 기존 호스팅의 CPU 제한이나 메모리 부족 기록부터 확인한다. 느린 원인이 무거운 플러그인 하나라면 서버를 키워도 체감 속도가 크게 바뀌지 않을 수 있다. 특히 관리자 화면만 느릴 때는 페이지 캐시로 해결되지 않는다. 느린 쿼리, 외부 서비스 호출, 예약 작업이 밀리는지 순서대로 보는 편이 빠르다.
트래픽 비용도 계산해 둔다. 페이지 한 번에 내려받는 데이터가 평균 2MB이고 한 달에 페이지 조회가 3만 회라면 단순 전송량은 약 60GB다. 이미지를 압축하거나 CDN을 쓰면 원본 서버의 전송량은 달라진다. 반대로 큰 동영상 파일을 직접 제공하면 이 계산을 훌쩍 넘는다. 요금제의 월 전송량과 초과 과금 기준을 실제 페이지 크기에 맞춰 읽어야 한다.
이전 전에는 복원 절차까지 확인한다
호스팅 이전 사고는 복사 과정에서 자주 난다. 워드프레스는 업로드 파일만 옮겨서는 사이트가 돌아오지 않는다. 테마와 플러그인을 포함한 파일, 데이터베이스, 접속 설정을 같은 시점의 묶음으로 확보해야 한다. 워드프레스 공식 백업 안내도 파일과 데이터베이스를 함께 보관하도록 설명한다.
- 이전 전 파일과 데이터베이스를 백업하고, 계정 밖에도 사본을 둔다.
- 새 호스팅에서 복원한 뒤 글, 이미지, 로그인, 문의 양식을 직접 확인한다.
- SSL 인증서가 적용된 상태에서 내부 페이지와 관리자 화면을 시험한다.
- 도메인 연결을 바꾼 뒤에는 구 서버를 바로 해지하지 않고 접속 기록과 오류를 확인한다.
장애가 나면 먼저 사이트 전체가 안 열리는지, 일부 페이지만 느린지 구분한다. 전체 접속이 끊겼다면 도메인 만료와 연결 설정, 호스팅 장애 공지, SSL 인증서 상태를 차례로 확인한다. 특정 화면에서만 오류가 난다면 최근 업데이트한 플러그인과 서버 오류 기록을 본다. 백업 파일이 있다는 사실보다 실제로 복원해 본 기록이 훨씬 든든하다. 저는 호스팅 비용을 올리기 전에 그 기록부터 챙긴다.
