요약

  • Cloudflare Workers Free 계정에는 하루 10만 건의 요청 한도가 있고 UTC 자정에 초기화된다. 한도 초과 뒤 fail open 라우트는 Worker를 건너뛰고, fail closed는 오류 1027을 반환한다.
  • 기존 원본 서버 앞의 Worker가 보안 검사를 맡는다면 우회 시 원본 서버의 독립적인 검사가 결과를 결정한다. Cloudflare는 보안에 중요한 Worker에 fail closed를 권한다.

무료의 끝에서 바뀌는 길

한도를 넘긴 요청에 추가 요금을 붙인다는 이야기라면 계산기를 꺼내면 된다. Cloudflare가 문서에 적은 것은 다른 분기다. Free 계정은 하루 10만 건을 처리할 수 있고, 그다음 요청은 해당 라우트의 실패 방식에 따라 움직인다. fail open에서는 Worker가 없는 것처럼 지나간다. fail closed에서는 1027 화면이 나온다. 하나는 코드 실행을 잃고, 다른 하나는 이용자의 접근을 멈춘다.

Workers Route는 프록시된 호스트의 기존 애플리케이션 서버 앞에 코드를 놓는다. 이 코드는 응답을 바꾸거나 요청을 나누거나 접근 권한을 살필 수 있다. 권한 확인을 여기서만 했다면 fail open의 우회가 남기는 것은 원본 서버의 판단뿐이다. 원본 서버가 별도로 거절하면 요청은 막힌다. 실제 고객 사이트에서 무엇이 일어나는지는 그 서버의 설정을 봐야 알 수 있다. Cloudflare의 공개 문서만으로 특정 피해나 침해를 단정할 수 없다.

fail closed를 고르면 코드가 맡은 경계는 우회되지 않는다. 대신 정상 고객도 한도가 소진된 동안 1027을 받는다. Cloudflare가 보안 핵심 Worker에 이 방식을 권하는 이유다. fail open은 뒤쪽 서비스에 도달할 길을 남기지만, Worker의 검사와 변환은 사라진다. 둘 중 어느 것이 더 낫다는 추상적인 논쟁보다, 이 라우트에서 코드가 실제로 하는 일을 적는 편이 빠르다.

UTC 자정이 되면 일일 한도가 다시 시작된다. 그때까지 버티는 계획은 한도에 닿는 시각과 고객 약속을 함께 알아야 성립한다. Cloudflare의 현재 한도표는 Paid에 이 일일 요청 상한이 없다고 적는다. 돈을 내서 발화점을 없애는 선택과 원본 서버에 독립적인 방어를 두는 선택은 서로 다른 공사다.

출처