워드프레스를 운영하다 보면 미디어 파일이 지속적으로 쌓이면서 워드프레스 전체의 용량이 커지게 됩니다.
이런 경우 백업에도 시간이 오래걸리고 서버가 CPU와 램을 많이 사용해 느려지기도 합니다.
미디어 오프로드란 S3 호환 오브젝트 스토리지 등을 활용해 미디어 파일만 다른 곳에 저장해두고 내 서버는 글자와 CSS, JS 등을 불러오도록 설정하는 것입니다.
보통 디스크 용량과 트래픽의 대부분을 차지하는 건 이미지 또는 영상이므로 미디어 파일을 오프로드하면 훨씬 워드프레스가 쾌적해집니다. 실제로 대형 커뮤니티나 네이버, 카카오 등 대기업은 미디어 오프로드와 CDN을 함께 사용하고 있습니다.
Next 3
사실 워드프레스 내에서 S3을 검색하면 나오는 플러그인이 몇 개 있지만 대부분 개발이 중단되었거나 기능이 제한된 경우가 많았습니다.
때문에 외부에서 자체 판매하는 플러그인들을 알아보게 되었고 크게 3가지 플러그인이 괜찮은 것 같습니다.
Next 3 플러그인은 themedev에서 개발한 미디어 오프로드 플러그인으로 다음과 같은 스토리지를 지원합니다.
- Amazon S3
- DigitalOcean
- Bunny CDN
- Wasabi
Bunny CDN의 경우 스토리지와 CDN을 모두 제공하는데 두 가지 모두 플러그인에 호환이 가능합니다.
지원되는 CDN은 위와 같습니다. 사실 워드프레스에서 이미지 링크만 바꾸면 CDN을 적용할 수 있기에 다른 CDN도 전부 사용할 수 있습니다.
스토리지에서 바로 미디어 파일을 불러오는 것도 가능하지만 대부분의 스토리지 서비스는 CDN과 함께 쓸 것을 권고하며 직접 미디어 파일을 불러오는 것을 금지하는 경우도 있습니다.
CDN을 사용하면 속도가 빨라지기 때문에 굳이 사용하지 않을 이유가 없습니다. 특히 클라우드플레어의 경우 무료이므로 추가 비용 없이 설정 가능합니다.
정리하면 다음과 같이 작동합니다.
워드프레스에 미디어 파일을 올리면 자동으로 스토리지 서비스로 전송되고 내 워드프레스 서버에서는 삭제됩니다. 게시글 내의 미디어 파일 링크는 CDN으로 변경되어 저장되고, 누군가 해당 게시글을 방문하면 CDN은 스토리지의 미디어 파일을 가져와 캐시한 후 제공합니다.
일단 미디어 파일이 캐시된 후에는 게시글에 방문자가 있을 때마다 CDN에서 바로 캐시된 미디어 파일을 제공하게 됩니다.
Next 3 플러그인의 장점은 Lifetime 플랜이 있다는 점입니다. 새로운 업데이트를 받기 위해 매년 결제하지 않아도 됩니다. 단점은 워드프레스 하나(도메인 하나)에만 라이센스가 적용된다는 것입니다.
WP Media Folder
다음은 JoomUnited에서 만든 WP Media Folder 플러그인입니다. 이름에서 볼 수 있듯이 애초에 오프로드를 목적으로 만들어진 플러그인은 아니지만 추가 기능으로 미디어 오프로드를 제공하고 있습니다.
다음과 같은 스토리지를 지원합니다.
- Google Drive
- Google Photos
- Dropbox
- OneDrive Personal
- OneDrive Business
- Amazon S3
- DigitalOcean
- Linode
- Wasabi
- Google Cloud
굉장히 다양한 스토리지를 지원하지만 실제로 본인이 계획한 스토리지가 잘 작동할지 확인해야 합니다. 예를 들어 와사비의 경우 기본적으로 버킷을 비공개로 설정해놓습니다. 버킷을 공개로 바꾸려면 무조건 CDN을 사용해야 하고 와사비에 직접 메일로 문의해야 합니다.
구글 드라이브나 구글 포토의 경우 API에 제한이 있어 미디어 파일을 업로드할 때 속도가 느릴 수 있습니다. 물론 다른 스토리지도 API 제한은 있지만 구글 드라이브나 구글 포토의 경우 애초에 서버와 통합하는 용도가 아니기에 API 제한이 심할 확률이 높습니다.
1년 69달러이며 설치할 수 있는 워드프레스 사이트 개수에 제한이 없습니다.
마찬가지로 CDN 연결을 지원합니다.
Leopard
마지막으로 엔바토 마켓에서 판매 중인 레오파드 플러그인이 있습니다.
다른 두 플러그인은 자체 판매 중이여서 리뷰를 확인할 수 없었는데 레오파드 플러그인은 다운로드 수와 리뷰가 투명하게 공개된다는 점이 신뢰가 갔습니다.
그러나 디자인(UI) 자체는 세 가지 플러그인 중 가장 조잡해보입니다.
지원하는 스토리지는 다음과 같습니다.
- Amazon S3
- Google Cloud
- Wasabi
- DigitalOcean
- Bunny CDN
- Cloudflare R2
클라우드플레어 R2를 지원하는 게 장점입니다. 클라우드플레어 R2를 이용하는 경우 CDN을 제한 없이 이용할 수 있기 때문입니다.
아직까지 S3 Generic(S3 호환 스토리지)을 지원하지 않지만 더 많은 스토리지를 추가하려고 노력 중이라는 개발자의 답변을 받았습니다.
무엇보다도 워드프레스 하나에만 라이선스가 적용되지만 엔바토 마켓 정책 상 평생 플러그인 업데이트를 받는 게 가능합니다. 현재 가격이 59달러이므로 가장 저렴한 선택지입니다.
마찬가지로 CDN을 위한 커스텀 CNAME을 입력할 수 있습니다.
마치며
사실 굉장히 큰 규모의 워드프레스 사이트를 운영하지 않는 이상 미디어 오프로드 없이도 잘 작동합니다. 다만 사이트는 가벼우면 가벼울수록 좋고 특히 워드프레스를 백업할 때 미디어 파일을 제외할 수 있다는 점이 장점입니다.
클라우드플레어 R2처럼 프리티어(무료 사용 가능한 자원)를 제공하는 경우도 있기에 플러그인만 구매하면 사실상 무료로 시도해 볼 수 있습니다.