Kamal2의 maintenance 모드는 kamal-proxy를 통해 503 에러 페이지를 반환함
커스텀 503 페이지를 설정하여 점검 페이지를 원하는 대로 구성 가능
Health Check 경로 설정을 통해 점검 모드 동작을 안정적으로 관리
Kamal2는 kamal-proxy를 활용하여 요청을 관리하고, maintenance 모드에서 503 에러를 반환한다. 구체적으로, `kamal app maintenance` 명령어를 실행하면 프록시가 요청을 가로채어 커스텀 503 페이지를 보여준다. 따라서, 다운타임 없는 배포를 위한 핵심 기능으로 작용한다.
커스텀 503 페이지는 `config/deploy.yml`의 `error_pages_path` 설정을 통해 구현된다. 503.html 파일을 지정하고 배포해야 프록시에 적용된다. 반면, Health Check 경로가 `/`로 설정된 경우, 점검 모드에서 빈 응답이 반환될 수 있다. 따라서, Health Check 경로 분리를 통해 문제를 해결해야 한다.
점검 모드는 블루/그린 배포와 함께 사용하면 서비스 중단을 최소화할 수 있다. 구체적으로, 프록시를 먼저 maintenance 모드로 전환하고, 필요시 앱/워커를 중지한 후 작업을 수행한다. 따라서, kamal deploy 또는 kamal app start 명령어를 통해 서비스를 재개하여 무중단 배포를 실현할 수 있다.