앱을 배포하려고 할 때 선택지가 너무 많아 혼란스러웠던 적 있으신가요? Vercel, Coolify, Portainer, Kubernetes… 이름은 들어봤지만 각각 무엇이고, 언제 써야 하는지 명확하지 않을 수 있습니다.
이 글에서는 앱 배포 인프라를 4개 레이어로 나누어 각 솔루션의 위치와 역할을 명확히 정리합니다.
전체 구조: 4개 레이어 맵
앱 배포 인프라는 추상화 수준에 따라 4개 레이어로 나눌 수 있습니다.
추상화 레벨 (높음)
↑
│ ┌─────────────────────────────────────┐
│ │ ① 매니지드 PaaS │
│ │ Vercel, Railway, Render │
│ │ "코드만 푸시하면 끝" │
│ └─────────────────────────────────────┘
│
│ ┌─────────────────────────────────────┐
│ │ ② 셀프호스팅 PaaS │
│ │ Coolify, CapRover, Dokku │
│ │ "내 서버에서 Vercel처럼" │
│ └─────────────────────────────────────┘
│
│ ┌─────────────────────────────────────┐
│ │ ③ 컨테이너 관리 UI │
│ │ Portainer, Rancher, Yacht │
│ │ "Docker/K8s를 웹에서 관리" │
│ └─────────────────────────────────────┘
│
│ ┌─────────────────────────────────────┐
│ │ ④ 컨테이너 오케스트레이션 │
│ │ K3s, K8s, Docker Swarm, Nomad │
│ │ "컨테이너 인프라 자체" │
│ └─────────────────────────────────────┘
↓
추상화 레벨 (낮음)
위로 갈수록 편리하고, 아래로 갈수록 유연합니다. 각 레이어의 대표 솔루션을 하나씩 살펴보겠습니다.
① 매니지드 PaaS: Vercel
개념
매니지드 PaaS는 서버 관리 없이 코드만 푸시하면 자동으로 빌드, 배포, 스케일링까지 해주는 서비스입니다. 인프라를 완전히 추상화하여 개발자가 코드에만 집중할 수 있게 합니다.
대표 솔루션: Vercel
Vercel은 Next.js를 만든 회사에서 운영하는 프론트엔드 특화 PaaS입니다.
주요 특징
- Git 저장소 연결 후 자동 배포
- PR별 프리뷰 환경 자동 생성
- 글로벌 엣지 CDN으로 빠른 응답 속도
- SSL 인증서 자동 발급
- Serverless Functions 지원
지원 범위
- Next.js (네이티브 최적화)
- React, Vue, Svelte 등 프론트엔드 프레임워크
- 정적 사이트 (Astro, Hugo 등)
- Serverless Functions (Node, Python, Go)
제한 사항
- 함수 실행 시간 제한 (10초~60초)
- Docker 커스텀 이미지 미지원
- 자체 DB 호스팅 불가
- 장시간 실행 프로세스 불가
비용
- 개인: 무료 티어 제공
- Pro: $20/월/멤버
- 사용량 초과 시 추가 과금
같은 레이어의 대안
| 서비스 | 특징 |
|---|---|
| Railway | Heroku 대안, 백엔드 + DB 지원 |
| Render | 풀스택 지원, Heroku 이전 용이 |
| Netlify | 정적 사이트, JAMstack 특화 |
| Fly.io | 글로벌 엣지 배포, Docker 지원 |
② 셀프호스팅 PaaS: Coolify
개념
셀프호스팅 PaaS는 자신의 서버에서 Vercel과 유사한 배포 경험을 제공합니다. 서버는 직접 관리하지만, 배포 과정은 자동화됩니다.
대표 솔루션: Coolify
Coolify는 Docker 기반의 오픈소스 셀프호스팅 PaaS입니다.
주요 특징
- Git 연동 자동 배포 (GitHub, GitLab, Bitbucket)
- PR별 프리뷰 환경
- Let’s Encrypt SSL 자동 발급
- 원클릭 서비스 설치 (DB, Redis, 100개+ 앱)
- Traefik 리버스 프록시 내장
- 멀티 서버 관리
지원 범위
- Docker로 실행 가능한 모든 것
- 모든 언어/프레임워크
- docker-compose 멀티 컨테이너
- 백그라운드 워커, 크론잡
- WebSocket, gRPC
- 자체 DB, Redis, 메시지 큐
Vercel과의 차이점
| 항목 | Vercel | Coolify |
|---|---|---|
| 서버 관리 | 불필요 | 직접 관리 |
| 지원 범위 | 프론트엔드 특화 | Docker 기반 범용 |
| 글로벌 CDN | 내장 | 직접 구성 (Cloudflare 등) |
| 비용 | 서비스 요금 | VPS 비용만 ($5~20/월) |
| 데이터 소유권 | 벤더 | 100% 본인 |
비용
- 오픈소스 무료
- VPS 비용만 발생 (Hetzner, Vultr 등 $5~20/월)
- 한 서버에 여러 서비스 운영 가능
같은 레이어의 대안
| 솔루션 | 특징 |
|---|---|
| CapRover | 성숙한 프로젝트, Docker Swarm 기반, 원클릭 앱 마켓 |
| Dokku | 미니 Heroku, CLI 기반, 단일 서버 전용 |
| Easypanel | 모던 UI, 일부 기능 유료 |
③ 컨테이너 관리 UI: Portainer
개념
컨테이너 관리 UI는 Docker나 Kubernetes를 웹 대시보드에서 시각적으로 관리할 수 있게 해줍니다. 배포 자동화보다는 인프라 관리에 초점이 맞춰져 있습니다.
대표 솔루션: Portainer
Portainer는 Docker와 Kubernetes를 웹 UI로 관리하는 도구입니다.
주요 특징
- Docker, Docker Swarm, Kubernetes 모두 지원
- 컨테이너 시작/중지/재시작
- 이미지, 볼륨, 네트워크 관리
- 로그 확인 및 콘솔 접속
- 스택(docker-compose) 배포
- 사용자/팀 권한 관리
Coolify와의 차이점
| 항목 | Coolify | Portainer |
|---|---|---|
| 주요 목적 | 앱 배포 자동화 | 컨테이너 인프라 관리 |
| Git 연동 배포 | ✅ | ❌ |
| PR 프리뷰 | ✅ | ❌ |
| SSL 자동화 | ✅ | ❌ (별도 구성) |
| K8s 지원 | ❌ | ✅ |
| 세밀한 컨테이너 제어 | 제한적 | ✅ |
비용
- Community Edition: 무료
- Business Edition: 유료 (엔터프라이즈 기능)
같은 레이어의 대안
| 솔루션 | 특징 |
|---|---|
| Rancher | K8s 클러스터 관리 특화, 멀티 클러스터 |
| Lens / OpenLens | K8s 전용 데스크톱 앱 |
| Yacht | 경량, 홈랩용 |
④ 컨테이너 오케스트레이션: K3s
개념
컨테이너 오케스트레이션은 여러 서버에 걸쳐 컨테이너를 스케줄링하고, 스케일링하고, 장애 복구를 자동화하는 시스템입니다. 가장 낮은 레이어로, 위의 모든 솔루션들이 이 레이어 위에서 동작할 수 있습니다.
대표 솔루션: K3s
K3s는 경량 Kubernetes 배포판입니다. 전체 K8s의 기능을 유지하면서 리소스 사용량을 크게 줄였습니다.
주요 특징
- 단일 바이너리, 설치 간편
- 메모리 사용량 512MB 이하
- ARM 지원 (라즈베리파이 등)
- 완전한 K8s API 호환
- 내장 로드밸런서, Ingress
K8s vs K3s vs Docker Swarm
| 항목 | K8s | K3s | Docker Swarm |
|---|---|---|---|
| 복잡도 | 높음 | 중간 | 낮음 |
| 리소스 사용 | 높음 | 낮음 | 낮음 |
| 기능 | 풀스펙 | 풀스펙 | 제한적 |
| 생태계 | 거대 | K8s 호환 | 작음 |
| 학습 곡선 | 가파름 | 중간 | 완만 |
언제 필요한가
- 마이크로서비스 아키텍처
- 고가용성 (HA) 필수
- 오토스케일링 필요
- 여러 서버에 걸친 클러스터 운영
- 선언적 인프라 관리
비용
- 오픈소스 무료
- 서버/클라우드 비용만 발생
같은 레이어의 대안
| 솔루션 | 특징 |
|---|---|
| Kubernetes (K8s) | 풀스펙, 대규모 운영 |
| Docker Swarm | 간단, Docker 네이티브 |
| Nomad | HashiCorp, 컨테이너 외 워크로드도 지원 |
종합 비교표
| 항목 | Vercel | Coolify | Portainer | K3s |
|---|---|---|---|---|
| 레이어 | 매니지드 PaaS | 셀프호스팅 PaaS | 컨테이너 관리 UI | 오케스트레이션 |
| 서버 관리 | 없음 | 직접 | 직접 | 직접 |
| Git 자동 배포 | ✅ | ✅ | ❌ | ❌ |
| PR 프리뷰 | ✅ | ✅ | ❌ | ❌ |
| SSL 자동화 | ✅ | ✅ | ❌ | ❌ |
| Docker 지원 | 제한적 | ✅ 네이티브 | ✅ | ✅ |
| K8s 지원 | ❌ | ❌ | ✅ | 본체 |
| 스케일링 | 자동 | 수동 | 수동 | 자동 (설정 시) |
| 고가용성 | ✅ 내장 | 직접 구성 | 직접 구성 | ✅ 클러스터 |
| 학습 곡선 | 낮음 | 낮음 | 중간 | 높음 |
| 비용 구조 | 서비스 요금 | VPS 비용 | VPS 비용 | VPS 비용 |
선택 가이드
상황별 추천
| 상황 | 추천 | 이유 |
|---|---|---|
| 서버 관리 싫음, 빠른 출시 | Vercel | 제로 관리, 즉시 배포 |
| 비용 절감 + PaaS 편의성 | Coolify | VPS 비용만으로 여러 서비스 |
| 기존 Docker 환경에 UI 추가 | Portainer | 인프라 시각화/관리 |
| 마이크로서비스, HA 필수 | K3s | 클러스터, 오토스케일링 |
| Next.js 프론트엔드 중심 | Vercel | 네이티브 최적화 |
| 풀스택 + DB + 백엔드 복잡 | Coolify | Docker 범용성 |
| 대규모, 엔터프라이즈 | K8s + Rancher | 풀스펙 오케스트레이션 |
선택 플로우차트
서버 관리 할 수 있나?
│
├─ 싫다 → Vercel / Railway
│
└─ 괜찮다
│
├─ PaaS 편의성 원함 → Coolify
│
└─ 인프라 직접 제어
│
├─ 단순 Docker → Portainer (+ Docker)
│
└─ 클러스터/HA 필요 → K3s (+ Rancher)
조합 패턴
단일 솔루션만 사용할 필요는 없습니다. 상황에 따라 조합할 수 있습니다.
패턴 1: 심플 (소규모, 1인 개발)
Hetzner/Vultr VPS → Docker → Coolify
가장 단순하고 비용 효율적입니다. 월 $10~20로 여러 서비스를 운영할 수 있습니다.
패턴 2: 하이브리드
Vercel (프론트엔드) + Coolify (백엔드/DB)
프론트엔드는 Vercel의 글로벌 CDN을 활용하고, 백엔드와 DB는 Coolify로 비용을 절감합니다.
패턴 3: K8s 스택
K3s → ArgoCD (GitOps) → Rancher (모니터링/관리)
Kubernetes 기반으로 선언적 배포와 클러스터 관리를 구성합니다.
패턴 4: 엔터프라이즈
Terraform (IaC) → K8s → ArgoCD + Prometheus/Grafana
인프라 코드화, 오케스트레이션, GitOps, 모니터링을 모두 갖춘 구성입니다.
비용 비교
시나리오: 웹앱 + API + DB + Redis
| 솔루션 | 월 예상 비용 | 비고 |
|---|---|---|
| Vercel + 외부 DB | $35~50+ | Vercel Pro + PlanetScale/Supabase |
| Coolify | $10~20 | VPS 비용만 (전부 포함) |
| K3s 클러스터 | $30~60+ | 서버 3대 이상 권장 |
시나리오: 사이드 프로젝트 5개
| 솔루션 | 월 예상 비용 | 비고 |
|---|---|---|
| Vercel | $20~100+ | 프로젝트/팀 단위 과금 |
| Coolify | $10~20 | 한 서버에 모두 배포 |
| Railway | $25~50 | 프로젝트당 리소스 과금 |
마무리
4개 레이어는 서로 대체 관계가 아닌 역할이 다른 도구입니다.
- Vercel: 프론트엔드 전문점 – 편리하지만 범위 제한
- Coolify: Docker 백화점 – 범용적이고 비용 효율적
- Portainer: 인프라 관제센터 – 컨테이너 시각화/관리
- K3s: 컨테이너 오케스트라 – 클러스터와 스케일링
자신의 상황(팀 규모, 기술 스택, 예산, 운영 역량)에 맞는 레이어를 선택하고, 필요하면 조합하여 사용하면 됩니다.
서버 관리가 부담되면 Vercel부터 시작하고, 비용이나 유연성이 필요해지면 Coolify로, 규모가 커지면 K3s로 전환하는 것도 자연스러운 성장 경로입니다.