cloudflare worker 사용기준

2023.11.15


cloudflareWorkersLogoImgUrl

cloudflare-worker는?

https://developers.cloudflare.com/dev-products-preview.png

Cloudflare Workers · Cloudflare Workers docs

Cloudflare Workers provides a serverless execution environment that allows you to create new applications or augment existing ones without configuring …

클라우드 플레어 워커 (이하 CF-W라고 칭한다)는 서비스 로직을 수행하기 위한 서버리스 백엔드 솔루션이다.

기존에는 백엔드 서버를 구축하고, 그 서버를 통해 서비스 로직을 수행했다면, worker는 이러한 백엔드 서버를 구축하지 않고 서비스 로직을 수행할 수 있다. 또다른 서버리스 솔루션인 Lambda와 다르게 cold start 시간이 매우 짧아, 초기 작동시간이 매우 빠르다는 장점이 있다.


언제 쓰면 좋을까?

서비스 로직을 실무자가 간단하게 쪼갤 수 있을때 쓰면 괜찮을 것 같다. 이는 서비스가 복잡한 것과는 다르다.

물론 여기서 간단의 기준은 만드는 사람의 역량과 사용하는 솔루션 또는 프레임워크등의 기능에 따라 많이 바뀔 수 있는 주관적인 요소이다.

이를 토대로 말하면 즉, 본인이 쉽다고 느끼는 서비스의 기능을 만들때 서버리스 백엔드를 사용하라고 말하고 싶다.

적합하다 생각되는 Worker 사용처들.

  1. 1. Proxy서버 필요시
  2. =>이는 정말 편하게 만들어져 있다. wrangler 기본 생성포멧중 하나로 있을정도.

  3. 2. 잦은 DB 저장/삭제/수정이 필요하지 않은 기능개발시
  4. =>무료 사용자라면 결국 KV를 사용해야하나? 라는 고민에 다다르게 된다. 이정도까지 가면 그냥 Aws solution을 찾아보자

  5. 3. webSocket을 사용하지 않는 기능 개발시
  6. =>WebSocket을 지원하게된 지는 그리 오래되지 않았을 뿐더러, 정말 핵심기능인 "다른 클라이언트들에게 메시지를 Broadcast"하는 기능이 무료에서는 불가능 하다는 것 이다.

    이는 CF-W에서 퍼포먼스 향상을 위해 일부러 다른핸들러에 접근하는것이 불가능하도록 했기 때문인데, 이것때문에 유료기능인 "Durable Objects"를 사용해서 다른 소캣들을 전역 객체로서 저장하고, 불러와서 사용해야한다.

    Error: Cannot perform I/O on behalf of a different request. I/O objects (such as streams, request/response bodies, and others) created in the context of one request handler cannot be accessed from a different request's handler. This is a limitation of Cloudflare Workers which allows us to improve overall performance.

    억지로 특정 소캣에서 다른 소캣을 불러와서 사용시 나오는 에러 메시지이다.

위의 3가지 사항에 부합하는 기능개발시에는 무료로 간단하게 기능을 만드는데에는 매우 좋은 솔루션이라고 생각한다.