- Published on
koyeb free tier hosting: 무료 플랜 배포 구조와 절차
- Authors

- Name
- Indo Yoon
Koyeb free tier hosting은 서버를 직접 준비하지 않고 컨테이너 이미지를 올려 애플리케이션을 공개하는 관리형 배포 방식이에요. 무료 플랜은 인스턴스 유형과 서비스 구성에 제약이 있지만, 소규모 API나 포트폴리오용 백엔드를 인터넷에 노출하는 용도라면 충분히 검토할 만해요. 이 글은 공식 문서와 가격 페이지에서 확인할 수 있는 범위만 가지고 무료 플랜의 구조, 배포 절차, 한도 확인 방법, 상황별 판단 기준을 정리해요.
한눈에 보기
Koyeb은 애플리케이션을 컨테이너 단위로 배포하고, 빌드와 실행, 트래픽 라우팅, 인증서 발급 같은 운영 작업을 플랫폼이 대신 처리하는 형태의 서비스예요. 그래서 백엔드 개발자는 서버 프로비저닝이나 리버스 프록시 설정 대신 이미지와 실행 설정에 집중하게 돼요.
- 배포 단위: 앱 안에 여러 서비스를 두는 구조이고, 실제로 실행되고 트래픽을 받는 것은 서비스예요.
- 빌드 방식: Git 저장소 연동, Dockerfile 기반 빌드, 미리 빌드해 둔 이미지 참조 중에서 고를 수 있어요.
- 무료 플랜: 정해진 무료 인스턴스 유형과 제한된 구성 안에서만 동작해요.
- 유휴 처리: 트래픽이 없는 상태가 이어지면 인스턴스가 잠들 수 있어요.
- 확인 위치: 실제 한도와 사양은 가격 페이지와 대시보드의 사용량 화면이 기준이에요.
여기서 중요한 점은 무료 플랜의 구체적인 사양이 시점에 따라 조정된다는 거예요. 블로그에 돌아다니는 예전 수치를 그대로 믿기보다, 배포 전에 공식 가격 페이지와 대시보드에 표시되는 값을 직접 확인하는 편이 안전해요. 이 글에서도 확정된 숫자 대신 구조와 절차, 판단 기준 위주로 설명해요.
무료 플랜과 유료 플랜 비교
아래 표는 무료 플랜과 유료 구성을 기능 관점에서 비교한 것이에요. 세부 수치와 과금 기준은 공식 가격 페이지에서 확인해야 해요.
| 항목 | 무료 플랜 | 유료 구성 |
|---|---|---|
| 인스턴스 선택 | 정해진 무료 인스턴스 유형만 사용 | 여러 인스턴스 유형과 크기를 선택 |
| 서비스 구성 | 단순한 구성 중심, 서비스 수에 제약 | 여러 서비스와 앱을 조합해 운영 |
| 확장 방식 | 고정된 자원으로 운영, 확장에 제약 | 오토스케일링과 다중 리전 활용 |
| 유휴 처리 | 요청이 없으면 잠들 수 있음 | 상시 구동 형태로 유지 가능 |
| 과금 | 무료 한도 안에서 사용 | 사용한 자원과 시간에 따라 과금 |
| 적합한 용도 | 학습, 데모, 소규모 API | 상시 트래픽이 있는 서비스 |
표에서 가장 큰 차이는 확장성과 유휴 처리예요. 무료 플랜은 자원이 고정되어 있어서 갑자기 트래픽이 몰리는 상황에 대응하기 어렵고, 대신 쓰지 않을 때 비용이 발생하지 않는 구조예요. 반대로 유료 구성은 인스턴스 유형을 올리거나 인스턴스 수를 늘리는 방식으로 대응할 수 있어요.
또 하나의 차이는 운영 편의 기능이에요. 오토스케일링, 다중 리전 배포, 세밀한 모니터링 같은 기능은 유료 구성에서 본격적으로 활용하는 경우가 많아요. 무료 플랜에서도 로그와 상태 확인, 환경 변수 관리 같은 기본 기능은 제공되므로, 배포 자체를 연습하고 검증하는 데는 무리가 없어요.
단계별 배포 방법
배포 방식부터 정하기
가장 먼저 정할 것은 애플리케이션을 어떤 형태로 올릴지예요. Git 저장소를 연결하면 플랫폼이 소스를 받아 빌드까지 수행하고, Dockerfile을 두면 그 정의를 따라 이미지를 만들어요. 이미 CI에서 이미지를 만들어 두고 있다면 미리 빌드한 이미지를 참조하는 방식이 가장 예측 가능해요. 세 방식 모두 결과는 컨테이너 실행이지만, 빌드 실패 지점이 어디인지가 달라지므로 팀의 기존 파이프라인에 맞춰 고르면 돼요.
프로젝트와 서비스 만들기
대시보드에서 앱을 만들고 그 안에 서비스를 추가해요. 서비스를 만들 때 저장소나 이미지 주소, 브랜치, 실행 리전을 지정하게 돼요. 이때 리전은 사용자와 가까운 곳을 고르는 게 지연에 유리하고, 무료 플랜에서는 선택 가능한 리전이 제한될 수 있으니 화면에 표시되는 목록을 기준으로 판단해야 해요.
환경 변수와 시크릿 넣기
데이터베이스 접속 정보나 외부 API 키는 코드에 넣지 말고 환경 변수와 시크릿으로 주입해요. 대시보드에서 값을 등록하면 재배포 없이도 반영되는 항목이 있고, 재배포가 필요한 항목도 있으니 변경 후에는 반드시 로그로 적용 여부를 확인하는 습관이 좋아요. 시크릿은 화면에 다시 표시되지 않는 경우가 많으므로, 발급과 보관 절차를 팀 규칙으로 정해 두는 편이 안전해요.
포트와 헬스 체크 맞추기
애플리케이션이 실제로 수신하는 포트와 플랫폼이 기대하는 포트가 다르면 배포가 성공한 것처럼 보여도 라우팅이 되지 않아요. 프로세스가 플랫폼이 알려주는 포트를 읽어서 바인딩하도록 만들고, 헬스 체크 경로는 인증이 필요 없는 가벼운 엔드포인트로 두는 게 좋아요. 헬스 체크 응답이 늦으면 배포가 실패로 처리될 수 있으니, 시작 시점에 외부 의존성 연결을 오래 붙잡지 않도록 주의해야 해요.
배포 후 로그와 상태 확인하기
배포가 끝나면 빌드 로그와 런타임 로그를 나눠서 봐요. 빌드 로그에서는 의존성 설치 실패나 이미지 크기 문제를, 런타임 로그에서는 포트 바인딩 실패와 환경 변수 누락을 주로 확인하게 돼요. 서비스 상태가 정상으로 표시되더라도 실제 요청을 한 번 보내 응답 코드를 확인하는 단계를 넣어 두면, 헬스 체크만 통과하고 실제 경로는 깨지는 상황을 빨리 잡을 수 있어요.
도메인 연결과 HTTPS
기본으로 제공되는 주소로 먼저 검증한 뒤, 커스텀 도메인을 연결해요. 도메인 연결 시 DNS 레코드를 안내받은 값으로 설정하고, 인증서 발급과 갱신은 플랫폼이 처리하는 흐름을 따르면 돼요. 이때 기존에 다른 곳에서 쓰던 도메인이라면 이전 레코드가 남아 있지 않은지 먼저 확인해야 해요.
상황별 선택 기준
무료 플랜이 항상 답은 아니에요. 아래 기준으로 빠르게 판단해 볼 수 있어요.
- 학습과 데모: 무료 플랜이 잘 맞아요. 잠들었다가 깨어나는 동작까지 경험할 수 있어요.
- 포트폴리오 백엔드: 접속이 드문 시간이 길다면 무료 플랜으로 충분한 경우가 많아요.
- 사내 스테이징: 검증용으로는 쓸 만하지만, 테스트가 몰리는 시간대에는 자원이 부족할 수 있어요.
- 상시 트래픽이 있는 API: 유료 구성이나 다른 호스팅을 검토하는 편이 안전해요.
- 외부 관리형 데이터베이스 조합: 애플리케이션만 무료로 두고 데이터는 외부 서비스에 두는 구성이 현실적이에요.
- 배치·크론 작업: 실행 시간이 길거나 주기적인 작업은 유휴 처리 정책과 맞지 않을 수 있어요.
정리하면, 무료 플랜은 "가끔 호출되는 작은 서비스"에 강하고 "항상 떠 있어야 하는 서비스"에는 약해요. 이 기준만 기억해도 대부분의 판단은 끝나요.
주의할 점
첫째, 콜드 스타트를 감안해야 해요. 유휴 상태에서 잠든 서비스는 첫 요청에서 깨어나는 시간이 붙기 때문에, 사용자 응답 속도에 민감한 서비스라면 미리 예열하거나 유료 구성을 검토해야 해요.
둘째, 컨테이너의 파일 시스템은 오래 남지 않아요. 업로드 파일이나 로컬에 쌓는 로그를 컨테이너 안에 두면 재배포나 재시작 시 사라질 수 있으니, 파일은 오브젝트 스토리지에, 데이터는 관리형 데이터베이스에 두는 구조로 설계해야 해요.
셋째, 무료 한도를 넘겼을 때의 동작을 미리 확인해야 해요. 한도 초과 시 과금이 발생하는지, 서비스가 중단되는지는 플랜 정책에 따라 다르므로 가격 페이지에서 확인하고, 필요하면 알림 설정을 걸어 두는 게 좋아요.
넷째, 리전과 네트워크 위치를 함께 봐야 해요. 무료 플랜에서 선택 가능한 리전이 제한되면 사용자와의 거리가 멀어져 지연이 늘어날 수 있어요.
다섯째, 시크릿 관리와 최소 권한 원칙을 지켜야 해요. 저장소에 키를 커밋하지 않고, 배포용 토큰은 필요한 범위만 부여하고, 주기적으로 교체하는 절차를 마련해 두세요.
여섯째, 이미지 크기와 빌드 시간을 줄이는 노력이 효과가 커요. 멀티 스테이지 빌드로 실행 이미지를 가볍게 유지하면 배포 성공률과 시작 속도가 함께 좋아져요.
자주 묻는 질문
Koyeb 무료 플랜으로 상시 운영이 가능한가요?
가능하지만 권장하지는 않아요. 무료 플랜은 자원이 고정되어 있고 유휴 시 잠들 수 있어서, 항상 응답해야 하는 서비스에는 맞지 않아요. 상시 운영이 필요하다면 유료 구성을 검토하는 편이 안전해요.
무료 플랜에서 데이터베이스도 함께 운영할 수 있나요?
애플리케이션 컨테이너와 데이터베이스를 같은 방식으로 오래 유지하기는 어려워요. 컨테이너 파일 시스템이 영속적이지 않기 때문에, 데이터는 외부 관리형 데이터베이스를 쓰는 구성이 일반적이에요.
잠든 서비스의 첫 요청이 느린 이유는 무엇인가요?
유휴 상태에서 인스턴스가 내려가 있고, 요청이 들어올 때 다시 시작하기 때문이에요. 이 과정에서 애플리케이션 초기화 시간이 더해지므로, 시작 시점에 무거운 작업을 몰아두지 않는 게 좋아요.
무료 한도를 넘으면 어떻게 되나요?
플랜 정책에 따라 과금이 발생하거나 서비스가 제한될 수 있어요. 정확한 기준은 공식 가격 페이지에서 확인하고, 대시보드의 사용량 화면을 주기적으로 보는 습관을 들이는 게 좋아요.
배포는 Git 연동과 이미지 배포 중 무엇이 나은가요?
팀에 이미 이미지 빌드 파이프라인이 있다면 이미지 배포가 예측 가능성이 높아요. 그렇지 않다면 Git 연동으로 빌드까지 맡기는 편이 초기 설정이 단순해요.
출처
- Koyeb 공식 문서: https://www.koyeb.com/docs
- Koyeb 가격 및 플랜 안내: https://www.koyeb.com/pricing
- Koyeb 공식 사이트: https://www.koyeb.com
무료 플랜으로 배포를 시작했다면, 다음 단계로 컨테이너 이미지를 어떻게 가볍게 유지하고 배포 파이프라인을 안정적으로 굴릴지가 중요해져요. 관련해서 Docker 기반 배포 파이프라인 점검하기 글에서 빌드 캐시, 이미지 태그 전략, 롤백 절차를 함께 정리해 두었으니 이어서 읽어 보시면 도움이 될 거예요.