[AWS] Health checks failed with these codes: [404]

이애옹·2024년 9월 10일
0
post-custom-banner

생성한 대상그룹에서 Health checks failed with these codes: [404] 가 떨어져서 정리..

❌ 문제원인 분석

API 서버를 총 4개를 띄웠는데,
1개의 대상그룹에서만 해당 에러가 발생하고
나머지 3개에서는 발생하지 않고 있었다


일단 상태 검사 설정을 확인 해 보니

이렇게 되어 있었는데,
이 설정대로라면 15초 간격으로 / 경로에 요청을 보낸뒤에 5초 이내에 200 응답을 받으면 그 상태검사는 정상, 200 응답을 받지 못하면 실패로 간주한다고 한다.

에러코드를 확인 해 보면 / 경로로 요청을 보냈을때 404 에러가 떨어진다는 건데...
사실 API 서버가 정상적으로 작동 하는데 / 경로 체크가 필요한가? 라는 생각이 들긴 했다

어쨌든 3개의 서버는 정상인데 1개만 문제가 발생하니 원인을 찾아봤당

루트 경로로 상태 검사를 요청했는데,
응답이 정상으로 떨어지지 않는 거니까 루트 경로에 소스코드가 어떻게 설정 되어있는지 확인해보니
200 응답을 내려주는게 3개의 API 서버 코드에는 들어가있었는데 하나는 누락되어있었다.

✔️ 문제해결

router.get("/", (req, res, next) => {
  res.status(200).json({ success: true, message: "success" });
});

router에 해당 소스코드를 추가 해 줬다
/ 경로로 요청 들어오면 200 응답 내려주기!!

이걸 추가하니까 정상적으로 처리 되었담 ㅎㅎ


그런데 위에 말했던것처럼 이게 프론트엔드도 아니고 API 서버인데 굳이 200 응답이 떨어져야 할까? 라는 생각이 들어서 찾아보니, 프론트엔드는 200, 백엔드는 404일때 정상으로 체크하게 수정해도 되는 것 같다.

404에러는 서버에러가 아니고, 서버와 통신 할 수는 있지만 서버가 요청한 바를 찾을 수 없다는 응답 코드이기 때문에 서버 자체 문제로는 볼 수 없기 때문에 그렇게 수정 하는 것 같다.

물론 5xx 코드가 떨어진다면 서버를 다시 확인 해 봐야겠지만..

하여튼 나는 / 경로 진입 시 200이 떨어지게 추가 했기 때문에
상태 검사 설정은 따로 건드리지 않았다~

👀 참고자료

profile
안녕하세요
post-custom-banner

0개의 댓글