Cloudflare로 퍼블릭 트래픽을 프라이빗 애플리케이션으로 라우팅하기 (새 탭에서 열림)
Cloudflare는 이제 퍼블릭 IP를 노출하지 않고도 인터넷 트래픽을 사설 애플리케이션으로 전달하는 Application Services for Private Origins를 제공한다. 이를 통해 사설 네트워크의 내부 API, AI 에이전트 백엔드, MCP 서버, 운영 도구에도 WAF, 봇 관리, 레이트 리미팅, 캐싱, Workers 같은 Cloudflare 기능을 적용할 수 있다. 핵심은 기존 Cloudflare Tunnel, WAN, Mesh 등의 사설 연결 경로를 애플리케이션 프록시 계층과 통합해, 마지막 구간만 사설 네트워크로 전송하는 것이다.
퍼블릭 애플리케이션과 프라이빗 애플리케이션의 경계
- 기존에는 퍼블릭 애플리케이션이 CDN·WAF 뒤에, 프라이빗 애플리케이션이 VPN·방화벽·별도 네트워크 스택 뒤에 위치했다.
- 내부 API, AI 백엔드, MCP 서버처럼 인터넷에 직접 공개할 필요는 없지만 보안·성능 제어가 필요한 서비스가 늘고 있다.
- 기존 방식은 퍼블릭 IP, 방화벽 예외, 커넥터 소프트웨어, 복잡한 네트워크 구성을 요구했다.
- 그 결과 프라이빗 애플리케이션은 WAF, 봇 관리, 속도 제한, 캐시, 트래픽 가속, URL 변환, Workers 등의 기능을 활용하기 어려웠다.
Application Services for Private Origins
- 적격 Enterprise 고객을 대상으로 클로즈드 베타로 제공된다.
- 사설 오리진을 인터넷에 노출하지 않고도 Cloudflare를 통해 퍼블릭 트래픽을 전달한다.
- 다음 기능을 프라이빗 오리진 앞에서 사용할 수 있다.
- WAF
- 봇 관리
- 레이트 리미팅
- 캐싱
- URL·요청 변환
- Workers
- 오리진에 퍼블릭 IP, 인바운드 방화벽 규칙,
cloudflared실행을 반드시 요구하지 않는다.
하나로 통합되는 사설 네트워크 연결
- 기존 Cloudflare Tunnel, Cloudflare One Client, Cloudflare WAN, Cloudflare Mesh 등의 연결 모델을 활용한다.
- Cloudflare의 사설 네트워크 라우팅 계층이 다음 경로를 통합적으로 관리한다.
- Cloudflare Tunnel
- IPsec·GRE 터널
- CNI 연결
- Cloudflare Mesh
- 기타 사설 연결 방식
- 고객은 제품별로 별도 네트워크 스택을 운영하는 대신 API나 대시보드에서 라우팅을 정의할 수 있다.
- Workers VPC 바인딩과 Spectrum의 프라이빗 오리진 라우팅도 같은 사설 연결 계층을 사용하게 된다.
네 가지 트래픽 조합
Cloudflare는 사용자 위치와 애플리케이션 위치에 따라 트래픽을 네 가지 조합으로 구분한다.
- 인터넷 사용자 → 인터넷 애플리케이션: 기존 Cloudflare 프록시 모델
- 프라이빗 네트워크 사용자 → 인터넷 서비스: Cloudflare One 모델
- 인터넷 사용자 → 프라이빗 애플리케이션: 이번에 제공하는 기능
- 프라이빗 네트워크 사용자 → 프라이빗 애플리케이션: 향후 구축 대상
DNS 레코드로 활성화하는 프라이빗 라우팅
- 프록시된 A 또는 AAAA 레코드에서
Use private network routing옵션을 활성화한다. - Cloudflare의 WAF, 캐싱, 봇 관리, 레이트 리미팅, Transform Rules는 기존처럼 Cloudflare 네트워크에서 실행된다.
- 차이는 오리진으로 향하는 최종 연결만 퍼블릭 인터넷이 아닌 사설 네트워크를 이용한다는 점이다.
- 다음 주소 범위는 사설 주소이므로 옵션이 자동 활성화된다.
- RFC 1918:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 - RFC 6598 CGNAT:
100.64.0.0/10 - RFC 4193 IPv6 ULA:
FC00::/7
- RFC 1918:
- 퍼블릭 IP라도 사설 터널을 통해서만 접근할 수 있다면 옵션을 수동으로 활성화할 수 있다.
API 설정 방식
프라이빗 라우팅은 일반 DNS 레코드에 use_private_routing 속성을 추가하는 방식이다.
{
"type": "A",
"name": "app.example.com",
"content": "10.0.0.50",
"ttl": 300,
"proxied": true,
"use_private_routing": true
}
- Cloudflare 프록시는 Origin API에서 오리진 주소와 라우팅 메타데이터를 조회한다.
use_private_routing: true가 있으면 프라이빗 IP로 인터넷 연결을 시도하지 않는다.- 대신 IPsec, GRE, Tunnel, CNI, Mesh 등 고객의 기존 연결을 통해 사설 네트워크 라우팅 계층으로 요청을 전달한다.
HTTP 이외의 서비스 지원
- 이 모델은 웹 애플리케이션뿐 아니라 다양한 프로토콜과 서비스에도 적용된다.
- Spectrum을 이용하면 TCP·UDP 기반 서비스도 프라이빗 오리진 뒤에 둘 수 있다.
- 데이터베이스
- UDP 로그 수집 엔드포인트
- 기타 비HTTP 서비스
- Workers가 프라이빗 API나 데이터베이스를 직접 호출하는 구성에도 사용할 수 있다.
- 공통적으로 Cloudflare가 사용자 트래픽과 사설 네트워크 사이에 위치해 보안, 성능, 라우팅을 통합 제공한다.
실용적인 결론
퍼블릭 트래픽을 받아야 하지만 오리진을 인터넷에 공개하고 싶지 않은 조직이라면, 기존 Cloudflare WAN·Tunnel·Mesh 연결을 유지한 채 DNS 레코드의 use_private_routing을 활성화하는 방식이 가장 단순하다. 이를 통해 별도의 퍼블릭 로드 밸런서, 역방향 프록시, 다중 TLS 종료 계층을 줄이고 사설 애플리케이션에도 Cloudflare의 보안·성능 기능을 일관되게 적용할 수 있다.