---
title: "Cloudflare 버리고 Bunny.net으로 갈아탄 이유와 실전 마이그레이션 가이드"
published: 2026-04-07T13:23:05.000Z
canonical: https://jeff.news/article/1633
---
# Cloudflare 버리고 Bunny.net으로 갈아탄 이유와 실전 마이그레이션 가이드

Cloudflare에 대한 단일 장애점 우려와 벤더 의존성 문제로 슬로베니아 CDN 업체 Bunny.net으로 블로그를 이전한 경험기. Pull Zone 설정부터 캐싱 전략, Origin Shield, 엣지 룰 설정까지 실전 단계별로 정리했음.

- 오랜 Cloudflare 사용자가 자기 블로그를 슬로베니아 기반 CDN인 **Bunny.net**으로 옮긴 경험기
  - 가장 큰 동기는 단일 장애점(SPOF) 우려 — Cloudflare 하나에 모든 사이트가 묶여 있으면 계정 정지 한 방에 전부 날아감
  - Cloudflare 장애가 날 때마다 뉴스에 뜨는 상황도 불안 요소
  - "인터넷을 미국 단일 기업에 중앙집중하는 게 맞나?"라는 근본적 의문도 깔려 있음

- Bunny.net은 EU(슬로베니아) 기업으로, CDN 성능은 이미 Cloudflare와 경쟁할 수준
  - PoP 네트워크 규모는 Cloudflare보다 작지만 글로벌 속도 벤치마크에서 상위권
  - 가입하면 $20 크레딧을 주고, 신용카드 등록하면 $30 추가 — 14일간 무료 체험 가능
  - 체험 이후에는 사용량 기반 과금인데, 대부분의 경우 월 몇 센트 수준. 단, **최소 과금 $1/월**

> [!TIP]
> 무료 서비스의 "제품"이 되는 대신 $1/월로 "고객"이 되는 셈이라는 저자의 포인트가 인상적

### 마이그레이션 실전 가이드

- **도메인 레지스트라**는 Cloudflare에서 Porkbun으로 이전
  - 유럽 레지스트라를 찾아봤지만 INWX는 무료 WHOIS Privacy가 없어서 탈락
  - Porkbun이 Cloudflare 인프라 위에서 돌아가긴 하지만 서포트가 더 나음

- **Pull Zone 설정**이 Bunny.net CDN의 핵심 메커니즘
  - Origin URL에 자기 서버 IP를 넣고, 멀티 앱 환경이면 Host 헤더도 설정
  - 커스텀 호스트네임 추가 → CNAME 레코드 설정 → SSL 인증서 자동 발급
  - 여기까지 하면 Cloudflare의 "오렌지 클라우드"와 동일한 역할 완성

### 캐싱 — 여기서 진짜 차이가 남

- Bunny.net은 기본적으로 오리진의 `Cache-Control` 헤더를 존중함
  - 캐시 헤더를 직접 제어하기 싫으면 **Smart Cache** 켜면 됨 — 이미지/CSS/JS는 캐싱하고 HTML은 안 하는 합리적인 기본값
- 저자는 Phoenix(Elixir) 라우터에서 `s-maxage=86400, max-age=0` 헤더를 설정해서 HTML까지 CDN에 캐싱
  - 결과: 전 세계 어디서든 랜딩 페이지 응답이 극도로 빠름
  - 대신 새 글 발행할 때 pull zone 퍼지가 필요

- **추천 설정들** (선택이지만 안 할 이유가 없는 것들)
  - Force SSL 토글 — HSTS랑 별개로 CDN 레벨에서도 강제
  - **Origin Shield** 활성화 — 엣지 노드들이 오리진 직접 때리는 대신 Shield 위치를 먼저 확인, 서버 부하 감소
  - **Stale Cache** 설정 — 오리진이 죽어도 캐시된 콘텐츠 계속 서빙 + 업데이트 중에도 스테일 콘텐츠 제공
  - 엣지 룰로 `*.b-cdn.net` 도메인 접근 시 실제 도메인으로 301 리다이렉트 — 크롤러 혼동 방지

> [!NOTE]
> Bunny.net은 엣지 룰, 방화벽, 비디오 호스팅/스트리밍, 엣지 스크립팅, 엣지 분산 컨테이너까지 제공하고, S3 호환 스토리지도 곧 출시 예정

- 대시보드에서 개별 요청 로그까지 전부 볼 수 있어서 디버깅이 편하고, 뭐가 캐시되고 있는지 명확하게 확인 가능
  - 저자는 블로그뿐 아니라 나머지 서비스도 전부 Bunny.net으로 옮기는 중

---

## 기술 맥락

- **CDN 벤더 락인 문제**가 요즘 자주 나오는 주제거든요. Cloudflare가 무료 티어로 엄청나게 시장을 먹었는데, 그러다 보니 개인 블로그부터 스타트업까지 하나의 기업에 의존하는 구조가 됐어요. 계정 정지 사례나 장애 시 인터넷 절반이 마비되는 일이 반복되면서 대안을 찾는 움직임이 생기고 있어요
- **`s-maxage` vs `max-age` 전략**이 꽤 핵심이에요. `s-maxage=86400`은 CDN(공유 캐시)에서 24시간 캐싱하라는 뜻이고, `max-age=0`은 브라우저는 매번 CDN에 물어보라는 뜻이에요. 이렇게 하면 CDN이 빠르게 서빙하면서도 퍼지 한 번이면 새 콘텐츠가 바로 반영되거든요
- **Origin Shield**는 CDN 아키텍처에서 "중간 캐시 레이어"를 하나 더 두는 개념이에요. 전 세계 PoP들이 각각 오리진을 때리면 서버 부하가 커지는데, Shield 한 곳을 거치게 하면 오리진 히트가 확 줄어요. 특히 소규모 서버로 운영하는 경우에 효과가 크죠

## 핵심 포인트

- Cloudflare 계정 정지 리스크와 인터넷 중앙집중화 문제로 대안 CDN 탐색
- Bunny.net은 EU 기업으로 월 $1 최소 과금, CDN 성능은 Cloudflare와 경쟁 수준
- Pull Zone + CNAME 설정으로 Cloudflare 오렌지 클라우드 대체 가능
- s-maxage/max-age 분리 전략으로 HTML까지 CDN 캐싱하여 극한 속도 달성
- Origin Shield, Stale Cache 등 소규모 서버에 유용한 설정 팁 포함

## 인사이트

Cloudflare 무료 티어의 편리함에 익숙해진 개발자들이 많은데, 실제로 대안이 이 정도로 쉽고 저렴하다면 벤더 다각화를 진지하게 고려해볼 만함. 특히 사이드 프로젝트나 개인 블로그에서 먼저 시도해보기 좋은 가이드.
