본문 바로가기

⭐ AWS/ALB (ApplicationLoadBalancer)

ALB - Health Check Failed 문제 해결하기 (404, 200 code)

728x90
반응형

health checks failed 문제

아마 Load Balancer를 생성할 때 가장 자주 봤던 에러가 health checks failed 일것이다.

EC2를 생성하고, Load Balancer를 생성했지만 타겟 그룹에서 health checks failed 라고 나온다.

여기서 우선 살펴봐야 하는것은 타겟 그룹에서 등록된 대상이 실제 웹 브라우저나 api로 호츨이 가능한지 먼저 살펴 보아야 한다.

보통은 / 경로로 호출을 할 경우 응답이 되므로, 아래의 캡쳐 화면과 같이 경로와 성공 코드 등을 설정할 필요가 있다.

(경로는 설정하기 나름이므로 헬스체크 경로가 별도로 존재하거나 api등을 생성을 해 놓았다면 해당 경로로 지정을 해주면 된다.

아래는 404 코드로 헬스체크를 할수 없을때 발생하는 오류이다.

보통은 프론트 엔드와 백엔드를 나누어 관리 하므로 나의 경우는 백엔드는 아래와 같이 설정 하였다.

프로토콜은 HTTP, 경로는 /, 성공 코드는 404를 반환하도록 설정 하였다.

프론트 엔드는 아래와 같이 설정 하였다.

프로토콜은 HTTP, 경로는 /, 성공코드는 200을 반환하도록 설정 하였다.

※ 테스트 결과 백엔드는 200을 성공코드로 설정하면 unhealthy가 발생 하였다... 200과 404의 상태 코드를 확인해 볼 필요가 있다. 404는 프론트엔드, 200은 백인드이다.

다시 타겟 그룹으로 돌아오면 프론트 엔드와 백엔드 모두 healthy로 변경된 것을 확인할 수 있다.

Health Check가 가능하도록 경로를 지정 할 수 있다.

그 외에도 여러가지 원인으로 인해 Health Check Failed 문제가 발생할 수 있지만 일단 정상적으로 페이지의 응답을 받도록 설정하는 방법은 여기까지 정리 하자.

 

※ 기타

200(성공): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.

404 Not Found 또는 요청한 페이지를 찾을 수 없습니다. 사이트 관리자에게 문의해 주세요 오류 메시지는 클라이언트가 서버와 통신할 수는 있지만 서버가 요청한 바를 찾을 수 없다는 것을 가리키는 HTTP 표준 응답 코드이다.

728x90
반응형