Cloudflare Containers
무엇인가
선적용 컨테이너를 떠올려 보라: 당신의 앱 전체와 그것이 필요로 하는 모든 것이 하나의 밀봉된 상자에 담겨 어디서나 똑같이 실행된다. Cloudflare Containers를 사용하면 완전한 Linux 컨테이너 — 바로 그 밀봉된 상자 — 를 Workers와 나란히 Cloudflare 네트워크 안에서 바로 실행할 수 있다. Worker가 스스로 할 수 없는 것 — 더 무거운 런타임, 특정 프로그램 파일, Workers 샌드박스에 맞지 않는 언어나 라이브러리 — 이 필요할 때, 사용자 가까이에서 띄워지는 컨테이너에 그 작업을 넘길 수 있다. 컨테이너는 당신이 정의하고, 인스턴스가 언제 시작·정지·확장될지는 Worker가 제어한다.
강점
- 실제 컨테이너 이미지를 실행하므로 Workers 샌드박스에서 동작하지 않는 도구와 런타임을 쓸 수 있다.
- Cloudflare의 글로벌 네트워크에서 Workers 옆에 자리하므로 둘 사이의 왕복이 짧다.
- Worker가 컨테이너를 오케스트레이션하므로 이미 갖고 있는 라우팅·인증·엣지 로직을 유지한다.
- 배치 작업, 미디어 처리, 헤드리스 브라우저, 기존 Docker 기반 코드 이식에 잘 맞는다.
- 수요에 따라 확장되고 다시 줄어드므로 유휴 서버에 하루 종일 비용을 내지 않는다.
트레이드오프
- 일반 Worker보다 무겁고 시작이 느리다 — 콜드 스타트(cold start, 요청이 도착했는데 아무것도 실행되고 있지 않을 때의 예열 지연)가 실재하므로 모든 요청에 쓸 것은 아니다.
- 움직이는 부품이 더 많다: 이제 스크립트만이 아니라 이미지, 그 빌드, 그리고 생애주기까지 관리한다.
- 같은 단순 작업이라면 순수 Worker보다 비용이 더 든다. 정말로 컨테이너가 필요할 때만 손을 뻗어라.
- 여전히 Workers보다 새로워서 툴링과 한도가 계속 진화할 것으로 예상하라.
언제 쓰나
작업이 진정으로 완전한 OS(운영체제)나 엣지가 제공할 수 없는 런타임을 필요로 할 때 — 기존 (커맨드 라인 인터페이스) 도구(명령을 입력해 조작하는 프로그램) 실행, Workers가 지원하지 않는 언어, 또는 연산이 무거운 단계 — 그러면서도 엣지 네이티브한 정문은 Worker에 유지하고 싶을 때 컨테이너를 써라.
바이브 코딩 적합성
이는 AI 도움을 받기에 깔끔한 대상이다. 형태가 익숙하기 때문이다: Dockerfile(컨테이너를 빌드하는 레시피) 하나에 그것을 띄우는 작은 Worker. 에이전트에게 Cloudflare Containers를 쓰고 있다고 알려, 일반적인 클라우드 (가상 머신, 클라우드에서 빌린 컴퓨터)을 가정하는 대신 Worker-컨테이너 바인딩을 올바르게 연결하도록 하라.
// wrangler.jsonc — bind a container to a Worker
{
"name": "my-app",
"main": "src/index.ts",
"containers": [
{ "class_name": "MyContainer", "image": "./Dockerfile" }
]
}