- 작성일
Cloudflare 기본 용어
- Authors

- Name
- seren-wib
Contents
Stairno의 모든 사이트와 API는 Cloudflare 위에서 돈다. 그 과정에 나오는 Cloudflare 용어를 정리했다. 일반적인 개발·운영 용어는 개발과 운영 기본 용어에 있다.
1. Cloudflare가 하는 일
Cloudflare
전 세계에 데이터센터를 두고 웹사이트를 빠르고 안전하게 전달해 주는 회사. 원래는 사이트 앞에 서서 공격을 막고 파일을 가까운 곳에서 대신 보내 주는 일(CDN)로 시작했고, 지금은 도메인 판매, 정적 사이트 호스팅, 서버 코드 실행, 파일 저장소까지 한 곳에서 한다. Stairno는 도메인부터 서버까지 전부 Cloudflare에 있다. 무료 등급이 넉넉해서 혼자 시작하기에 비용이 거의 안 든다.
DNS와 Registrar
DNS는 도메인 이름을 실제 서버 주소로 바꿔 주는 전화번호부, Registrar는 도메인을 파는 곳. Stairno의 도메인 넷은 Cloudflare Registrar에서 샀다. 도메인을 사면 DNS도 Cloudflare가 관리하고, account.stairno.com 같은 서브도메인은 DNS에 줄 하나 추가하면 생긴다.
Pages
미리 만들어 둔 파일(정적 사이트)을 올려 두는 호스팅. 소개 페이지처럼 모두에게 같은 화면을 보여 주는 사이트에 쓴다. 허브 stairno.com이 여기서 시작했다.
WAF
사이트 앞에서 수상한 요청을 걸러 내는 방화벽(Web Application Firewall). 알려진 공격 패턴이나 지나치게 많은 요청을 서버에 닿기 전에 막는다.
2. Workers: 서버 코드를 돌리는 곳
Workers
서버 컴퓨터를 직접 빌리지 않고, 코드만 올리면 Cloudflare가 돌려 주는 서비스. 보통 서버는 컴퓨터 한 대를 빌려 24시간 켜 두고 직접 관리한다. Workers는 요청이 올 때만 코드가 돌고, 관리할 컴퓨터가 없다. Stairno의 계정 센터(account.stairno.com)와 공용 API(api.stairno.com)가 각각 Worker 하나다.
새로 올린 Worker는 <이름>.<계정 이름>.workers.dev 형태의 임시 주소를 받는다. 진짜 도메인을 붙이기 전에 이 주소로 확인한다.
workerd
Workers 안에서 코드를 실제로 돌리는 엔진. 오픈소스라 내 컴퓨터에서도 같은 엔진으로 돌려 볼 수 있다. 일반 서버 엔진(Node.js)과 비슷하지만 똑같지는 않아서, Node.js에서 되던 코드가 workerd에서는 다르게 동작할 때가 있다.
콜드 스타트
한동안 요청이 없어 쉬고 있던 서버 코드가 첫 요청을 받으며 깨어나는 순간. 이때 준비 작업이 덜 끝난 채로 요청을 처리하면 이상한 버그가 생기기 쉽다. Workers는 깨어나는 속도가 아주 빠른 편이다.
무료 플랜 CPU 한도
Workers 무료 플랜에서 요청 하나가 쓸 수 있는 계산 시간, 10ms(0.01초). 기다리는 시간(DB 응답 대기 등)은 빼고 순수하게 계산한 시간만 센다. 대부분의 요청은 1ms도 안 쓰지만, 비밀번호 해시처럼 일부러 무겁게 만든 계산은 한도를 크게 넘는다. 유료 플랜(월 5달러)은 한도가 훨씬 넉넉하다.
Cron Triggers
Worker를 정해진 시간마다 자동으로 실행하는 설정. Cron의 Cloudflare 버전이다. 대시보드에서 바꿀 수 있고, 다음 배포 때 코드에 적힌 설정으로 다시 덮인다.
wrangler
Workers를 다루는 명령줄 도구. 로컬에서 돌려 보기(wrangler dev), 배포(wrangler deploy), 실시간 로그 보기(wrangler tail), 시크릿 넣기(wrangler secret put)를 한다.
Workers 시크릿
Worker에만 넣어 두는 비밀 값. 코드에는 이름만 쓰고 값은 Cloudflare에 따로 넣는다. 한 번 넣으면 Cloudflare는 값을 다시 보여 주지 않는다. 바꿀 수는 있지만 원래 값을 꺼낼 수는 없으니, 넣기 전에 비밀번호 관리자에 먼저 적어 둬야 한다.
3. 거리와 속도
데이터센터와 리전
데이터센터는 서버 컴퓨터가 모인 건물, 리전은 그런 건물이 모인 지역. AWS(아마존의 클라우드)는 싱가포르 리전을 ap-southeast-1, 미국 동부 리전을 us-east-1처럼 부른다. Stairno가 쓰는 DB 서비스 Neon은 AWS를 빌려서 돌고, Stairno의 DB는 AWS 싱가포르 리전에 있다.
지연
요청이 갔다가 답이 돌아오는 데 걸리는 시간(latency). 빛의 속도에도 한계가 있어서 거리가 멀면 느리다. 한국에서 미국 로스앤젤레스(Cloudflare 데이터센터 이름으로 LAX)까지 갔다 오면 그것만으로 0.2초쯤 걸린다. 요청이 어느 데이터센터로 들어가는지는 Cloudflare 요금제와 통신사가 정해서, 사이트 쪽에서 바꿀 수 없다.
Placement
Worker를 어느 지역에서 돌릴지 정하는 설정. 기본은 요청이 들어온 데이터센터에서 바로 돈다. 그런데 코드가 DB를 여러 번 부른다면, DB 옆에서 도는 편이 왕복이 줄어 더 빠르다. 그래서 "이 Worker는 AWS 싱가포르 리전 근처에서 돌려라"처럼 정해 둘 수 있다. 대신 DB를 안 부르는 요청은 한 번 더 멀리 돌아가서 느려진다.
4. 그 밖의 서비스
R2
Cloudflare의 파일 저장소. 큰 파일(예: 데스크톱 프로그램 설치 파일)을 올려 두고 내려받게 한다. 내려받는 양에 요금이 붙지 않는다(이그레스 무료).
Email Routing
내 도메인 메일 주소로 온 메일을 다른 메일함으로 전달하는 기능. 메일 서버 없이도 contact@도메인 같은 주소를 만들 수 있다.
Web Analytics
Cloudflare가 페이지에 스크립트를 넣어 방문 통계를 세는 기능. 사이트 설정에 따라 Cloudflare가 자동으로 넣기도 한다.