Supabase 무료 프로젝트, 7일 pause를 Workers Cron으로 막기
접속이 뜸한 무료 Supabase 프로젝트가 7일이면 멈춰요. Workers Cron으로 하루 한 번 깨워 두는 방법을 직접 적용해 정리했어요.
무료로 서비스 하나 띄워 두고 며칠 뒤에 다시 열었더니, 데이터베이스가 잠들어 있던 적 없나요? Supabase 무료 플랜은 7일 동안 접속이 없으면 프로젝트를 자동으로 pause 상태로 바꿔요. 트래픽이 꾸준한 서비스는 신경 쓸 일이 없지만, 사람이 뜸하게 찾는 도구라면 이야기가 달라져요.
라이프케어로그에서 만드는 플랜씨(plan-c) 같은 무료 계산기나 플랜엘(plan-l) 법령 검색은 매일 접속이 쏟아지는 서비스가 아니에요. 방문이 며칠 비면 그대로 pause에 걸리고, 다음 방문자는 첫 응답이 느려지거나 아예 깨어나는 시간을 기다려야 하죠. 직접 겪어 보니 이게 생각보다 사용자 경험을 갉아먹더라고요.
해결의 핵심은 정기적으로 살짝 두드리기
pause를 막는 원리는 단순해요. 7일이 차기 전에 데이터베이스를 한 번씩 건드려서 아직 쓰는 중이라고 알려 주면 돼요. 이 정기 신호를 어디서 보내느냐가 관건인데, 저는 Cloudflare Workers의 Cron 기능을 골랐어요.
Workers는 서버를 따로 켜 둘 필요가 없어서 이런 주기 작업에 잘 맞아요. 스케줄에 맞춰 함수가 깨어나 Supabase에 아주 가벼운 읽기 쿼리를 한 번 던지고 끝나요. 기준이 7일이라 하루에 한 번이면 넉넉하고, 저는 여유를 둬서 매일 정해진 시각에 딱 한 번 돌게 잡아 뒀어요.
직접 붙여 보니 10분
wrangler 설정에 Cron 표현식을 한 줄 추가하고, scheduled 핸들러 안에서 테이블 하나를 가볍게 읽는 코드 몇 줄이면 끝이에요. 실제로 처음부터 배포까지 10분 정도 걸렸어요. 며칠 돌려 보니 pause 알림이 더는 오지 않았고, 뜸한 서비스도 첫 응답이 바로 나왔어요.
- 7일 안에 1회 접근
- 하루 한 번 Cron
- 가벼운 읽기 쿼리만
주의할 점도 있어요. keepalive는 데이터를 바꾸는 게 아니라 읽기만 하도록 최소한으로 두는 편이 안전해요. Workers도 무료 한도가 있으니 필요 이상으로 자주 돌리지 않는 게 좋고요. 하루 한 번이면 한도를 걱정할 일은 거의 없더라고요.
무료 인프라는 조건을 알고 쓰면 꽤 오래 버텨 줘요. 플랜엘처럼 월 3건 무료로 여는 서비스도 이렇게 작은 장치 하나로 안정적으로 굴러가요. 잠드는 게 문제라면, 잠들기 전에 살짝 깨워 두는 걸로 충분할 때가 많아요.
관련 글
댓글
아직 댓글이 없어요. 첫 댓글을 남겨주세요.