Kamal 2가 바꾼 배포 경험
Rails 8과 함께 출시된 Kamal 2는 Docker 기반 제로 다운타임 배포를 deploy.yml 하나로 해결한다.
Vultr Seoul $5/mo 인스턴스(1 vCPU, 1GB RAM)에서도 충분히 프로덕션을 운영할 수 있다.
핵심 설정
proxy:
ssl: true
host: locarb.dev
kamal-proxy가 Let’s Encrypt SSL을 자동으로 발급하고 갱신한다. Nginx 설정이 필요 없다.
시크릿 관리
.kamal/secrets에서 Doppler adapter를 사용하면 시크릿이 코드에 노출되지 않는다:
kamal secrets fetch --adapter doppler --from project/prd
실전 팁
kamal deploy전에 반드시git commit— Kamal은 git clone에서 빌드한다- DB 비밀번호는 고정값 사용 — PostgreSQL 초기화 후 변경 불가
kamal logs가 느리면 SSH 직접 접속:ssh root@<IP> "docker logs <container> 2>&1 | tail -50"