Kamal2 점검 모드, 다운타임 없이 서비스 하세요!

by DD
9개월 전
조회수 3

Kamal2maintenance 모드는 kamal-proxy를 통해 503 에러 페이지를 반환함

커스텀 503 페이지를 설정하여 점검 페이지를 원하는 대로 구성 가능

Health Check 경로 설정을 통해 점검 모드 동작을 안정적으로 관리

Kamal2 아키텍처와 점검 모드

Kamal2는 kamal-proxy를 활용하여 요청을 관리하고, maintenance 모드에서 503 에러를 반환한다. 구체적으로, `kamal app maintenance` 명령어를 실행하면 프록시가 요청을 가로채어 커스텀 503 페이지를 보여준다. 따라서, 다운타임 없는 배포를 위한 핵심 기능으로 작용한다.

커스텀 503 페이지 설정과 트러블슈팅

커스텀 503 페이지는 `config/deploy.yml`의 `error_pages_path` 설정을 통해 구현된다. 503.html 파일을 지정하고 배포해야 프록시에 적용된다. 반면, Health Check 경로가 `/`로 설정된 경우, 점검 모드에서 빈 응답이 반환될 수 있다. 따라서, Health Check 경로 분리를 통해 문제를 해결해야 한다.

점검 모드 활용 전략

점검 모드는 블루/그린 배포와 함께 사용하면 서비스 중단을 최소화할 수 있다. 구체적으로, 프록시를 먼저 maintenance 모드로 전환하고, 필요시 앱/워커를 중지한 후 작업을 수행한다. 따라서, kamal deploy 또는 kamal app start 명령어를 통해 서비스를 재개하여 무중단 배포를 실현할 수 있다.

Kamal2에서 점검(maintenance) 모드 활용법