본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Cloudflare Tunnel 기본 개념

원문 보기 위키 갱신

Cloudflare Tunnel이 무엇인지, 사설 리소스를 Cloudflare에 어떻게 연결하는지, 라우트가 어떻게 동작하는지, 그리고 시작 방법을 알아봐요.

출처: 문서

본문

Cloudflare Tunnel은 Cloudflare 네트워크와 여러분의 인프라 사이의 보안 링크로, Cloudflare 계정 안에서 안정적인 정체성(identity)을 가져요.

터널 연결은 네트워크 내부에서 시작되어 Cloudflare로 계속 열려 있으므로, 뒤에 있는 리소스는 공용 IP 주소나 열린 인바운드 포트가 필요 없어요. 트래픽은 인터넷을 통해 직접 연결하는 대신 터널을 통해 해당 리소스에 도달할 수 있어요.

연결은 cloudflared로 시작돼요

리소스를 비공개로 유지하면서 Cloudflare에 아웃바운드로 연결해요.

cloudflared는 터널의 Cloudflare 연결을 설정하고 유지하는 데몬이에요. 네트워크 내부에서 연결을 시작하므로, 오리진이 공용 주소를 노출하지 않아도 요청과 응답이 양방향으로 이동할 수 있어요.

이것이 Tunnel의 핵심 아이디어예요. Cloudflare는 서버의 공용 주소에 연결하지 않아요. cloudflared가 먼저 Cloudflare에 연결하고, Cloudflare는 그 기존 연결을 사용해 네트워크 안의 리소스에 도달해요.

사설 네트워크에는 인바운드 연결이 없어요.

자세한 내용은 Configuration을 참조해요.

터널 정체성과 커넥터

구성한 터널과 이를 실행하는 소프트웨어를 분리해서 유지해요.

터널을 만들면 Cloudflare는 아래 그림의 #123처럼 고유 ID를 부여해요. 라우트와 다른 Cloudflare 서비스는 이 ID로 터널을 식별해요.

cloudflared가 실행되는 각 인스턴스를 커넥터(connector)라고 하며, Cloudflare와 여러 네트워크 연결을 유지해요. 모든 커넥터가 동일한 터널 ID를 공유하므로 터널은 라우트를 바꾸지 않고도 단일 커넥터를 넘어 확장될 수 있어요. 추가 커넥터는 각각 레플리카(replica)라고 하며 보통 별도 호스트에서 실행돼요. 커넥터 하나를 사용할 수 없게 되면 Cloudflare는 새 트래픽을 다른 커넥터를 통해 보낼 수 있어요.

요청은 하나의 터널 정체성 아래에서 커넥터 A와 커넥터 B에 번갈아 전달돼요.

자세한 내용은 Replicas and high availability와 Load balancing을 참조해요.

Quick tunnels

계정이나 구성 없이 로컬 서비스에 도달해요.

위의 터널은 영구적이에요. 각각 안정적인 ID를 가지며 삭제할 때까지 계정에 남아요. quick tunnel은 그 정체성을 건너뛰어요. 단일 명령으로 실행돼요:

cloudflared tunnel --url http://localhost:8080

Cloudflare는 터널을 통해 여러분의 서비스로 다시 라우팅하는 무작위 trycloudflare.com 주소를 할당해요.

연결은 여전히 네트워크 내부에서 시작되므로 머신은 비공개로 유지돼요. 바뀌는 것은 영속성(permanence)이에요. quick tunnel은 cloudflared가 실행되는 동안에만 존재하며 주소는 실행할 때마다 달라져요. 그래서 quick tunnel은 개발 미리보기 공유나 웹훅 수신 같은 임시 작업에 유용하며, 프로덕션 트래픽이나 유지하려는 라우트에는 적합하지 않아요.

Tunnel #123은 계정의 레코드로, app.example.com에 바인딩돼요. cloudflared가 연결을 유지해요.

자세한 내용은 Quick Tunnels을 참조해요.

트래픽이 리소스에 도달하는 방법

터널을 통해 트래픽을 리소스에 연결해요.

연결된 터널은 그 자체만으로 리소스에 도달 가능하게 만들지는 않아요. 라우팅 구성이 어떤 트래픽이 터널을 사용하고 그 트래픽이 어떤 리소스에 도달해야 하는지 결정해요.

  • 게시된 애플리케이션(Published applications) 은 공용 호스트 이름(예: app.example.com)을 터널 뒤의 서비스에 연결해요.
  • 사설 네트워크 라우트(Private network routes) 는 사설 호스트 이름, IP 주소, 또는 네트워크 범위에 대한 트래픽을 터널로 안내해요.
  • Workers VPC 는 Workers가 터널을 통해 사설 서비스에 도달할 수 있게 해요.

하나의 터널은 여러 리소스에 대한 트래픽을 전달할 수 있으며, 그 리소스들이 서로 다른 유형의 라우팅을 사용하더라도 그래요. 트래픽이 라우팅 구성과 일치하면 Cloudflare는 사용 가능한 터널 연결을 통해 트래픽을 보내요. cloudflared는 트래픽을 받아 네트워크에서 도달할 수 있는 리소스로 전달해요.

터널은 연결성을 제공해요. 각 리소스에 대한 접근은 별도로 제어돼요.

아직 라우트나 터널이 없어요.

자세한 내용은 Routing, Private networks, 그리고 Workers VPC를 참조해요.

빌드 시작하기

빌드할 준비가 되면 터널을 어떻게 사용할지 선택해요.

애플리케이션 게시

공용 호스트 이름을 네트워크의 서비스에 연결해요.

사설 네트워크 연결

등록된 디바이스에서 사설 리소스로 트래픽을 라우팅해요.

Workers VPC 연결

Workers가 사설 네트워크의 서비스를 호출하도록 해요.

Quick tunnel 시도

계정이나 구성 없이 단일 명령으로 로컬 서비스를 공유해요.

관련 리소스

더 알아보기 (Learn more)

Cloudflare Tunnel은 cloudflared 데몬이 네트워크 내부에서 시작하는 아웃바운드 연결로, 게시된 애플리케이션·사설 네트워크·Workers VPC 등 다양한 라우팅 방식으로 리소스에 트래픽을 전달해요.