현재 UMC 연합 동아리에서 진행 중인 프로젝트에서 Elastic Beanstalk를 이용한 배포 역할을 맡았는데, GitHub Actions을 사용하여 서버를 배포 중에 있다.
근데 어느 시점부터 Action이 성공적으로 돌아도 적용이 되지 않았다.
100.0 % of the requests are erroring with HTTP 4xx. Insufficient request rate (12.0 requests/min) to determine application health.
Checking instance health (running for 13 minutes).
Process default has been unhealthy for 12 minutes (Target.ResponseCodeMismatch).
4xx에러.. 를 보고 401? 인증 에러가 떠올랐다.
환경 로그를 확인해보자
2024/08/02 00:09:54 [error] 2146#2146: *1 connect() failed (111: Connection refused) while connecting to upstream, client: ❔, server: , request: "GET /health HTTP/1.1", upstream: "http://❔:8080/health", host: ❔
Get /health 요청에 문제가 있는 듯 하다..
마지막으로 정상적으로 돌았던 코드와 비교를 해보니
SecurityConfig에 /health가 인증이 필요한 상태로 변경되었다. 따라서 다음과 같이 바꾸어주었다.
.requestMatchers("/health").permitAll() // health check
헬스 체크 주소를 /health로 해놨는데 이 경로가 정상적으로 작동해야만 Elastic Beanstalk에 인스턴스가 제대로 반영이 된다.
이거를 모르고 삽질했다.. 하지만 이제 알았으니 저 에러가 뜨면 쉽게 해결할 수 있을 것 같다. 😃