728x90
반응형

Vercel은 웹사이트와 웹 애플리케이션을 위한 클라우드 호스팅 플랫폼입니다. 주로 프론트엔드 개발자들이 사용하며, 정적 사이트(Static Sites)와 서버리스(Serverless) 함수를 배포하는 데 적합합니다. Vercel은 특히 Jamstack 아키텍처와 리액트(React), 앵귤러(Angular), 뷰(Vue) 같은 현대적인 웹 프레임워크와 잘 어울립니다.

Vercel의 주요 특징은 다음과 같습니다:

  1. 간편한 배포: Git 리포지토리와 연동하여, 코드를 푸시(push)하는 것만으로도 자동으로 웹사이트나 애플리케이션을 배포할 수 있습니다.
  2. 빠른 성능: 전 세계에 분산된 CDN(Content Delivery Network)을 통해 콘텐츠를 빠르게 제공합니다.
  3. 서버리스 함수: 백엔드 로직을 위한 서버리스 함수를 쉽게 배포하고 실행할 수 있습니다. 이를 통해 백엔드 서버 없이도 다양한 백엔드 기능을 구현할 수 있습니다.
  4. 사용자 친화적인 인터페이스: 사용하기 쉬운 대시보드와 명령줄 도구를 제공하여, 개발 및 배포 프로세스를 간소화합니다.
  5. 프리뷰 및 테스트: 코드 변경 사항을 실시간으로 미리 볼 수 있는 프리뷰 링크를 제공합니다. 이를 통해 배포 전에 변경사항을 검토하고 테스트할 수 있습니다.

Vercel은 주로 정적 사이트 생성기나 리액트와 같은 모던 웹 프레임워크를 사용하는 프론트엔드 개발자들에게 인기가 많습니다. 또한, 소규모 프로젝트에서 대규모 엔터프라이즈 애플리케이션에 이르기까지 다양한 규모의 프로젝트에 사용됩니다.

 

우리가 백엔드를 Vercel에서 Fly.io로 바꾼 이유

  • API 서버는 Hono, 런타임은 Bun, 호스팅은 Fly.io로 전환

이전한 이유

  • 경량 서버 필요: 모니터링 엔드포인트를 위해 간단한 REST API를 갖춘 경량 서버를 원했음. Vercel의 Next.js 서버는 불필요한 추가 기능이 있고 더 무거움. Hono와 Bun을 사용. 시작하는데 0.19ms & 메모리 91MB
  • 가격 문제: 다중 지역 모니터링을 유지하면서 비용을 예측하기 어려웠음. Vercel은 사용한 CPU 시간에만 비용을 부과하지만, 사용자 증가에 따라 비용이 증가함. 반면 Fly.io는 더 저렴

이전 중 도전과제

  • Docker와 모노레포: 초기에 Docker 이미지가 2GB로 과도했지만, 최적화를 통해 700MB로 줄임
  • Fly 배포 시간 초과 문제: Fly 배포는 종종 시간 초과 되어서 타임아웃을 늘려야 했음. Fly 배포는 Vercel에 비해 안정성이 떨어지고, 이전 버전으로 빠르게 롤백하는 방법이 없음
  • Bun 버그: Bun 런타임 사용 시 요청 실패가 증가했으며, keepalive 매개변수를 false로 설정해야 함

결론

  • 이전은 도전적이었지만, 결과적으로 만족스러웠음.
  • 물론 Vercel은 여전히 좋아함. 그러나 Next.js 이외의 애플리케이션 호스팅이 필요한 경우 이것은 최적의 선택이 아닐 수 있음

https://www.openstatus.dev/blog/migration-backend-from-vercel-to-fly

 

Why we migrated our backend from Vercel to Fly.io and the challenges we faced.

Learn why we switched from Vercel to Fly.io for our backend and the challenges we encountered.

www.openstatus.dev

 

728x90
Posted by Mr. Slumber
,