분명히 타겟그룹에 설정한 ec2가 정상적으로 돌아가는 것을 확인했는데 health check를 하면 자꾸 unhealty가 나왔다.
healty check 요청은 30초마다 한번씩 체크하고 2번이 연속적으로 실패하면 unhealty를 띄워준다.
먼저 요청이 제대로 오는지 확인했다.
해당 EC2로 접근해 다음 명령어를 통해 80으로 들어오는 신호를 기다렸다.
sudo tcpdump -i ens5 port 80 -vvv
30초 단위로 일정한 health-check 요청이 들어오는 것을 확인할 수 있다.
그렇다면 왜 unhealty인 것인가?
순간 든 생각이 지정된 80포트로 healty-check가 고정으로 들어오고 응답해준다면 80포트는 우리가 사용할 수 없는 것인가 생각했다.
실제로 alb의 health-check의 이유는 어플리케이션의 요청과 응답이 잘 되는지를 보고 해당 어플리케이션으로 요청을 전달해주는 것이었다.
실제 어플리케이션을 실행시키고 해당 포트를 health-check하는 것에 넣어줘야 된다.
예를 들어, Spirng Boot actuator 기능을 사용하고 있고 8080포트를 사용하고 있다면 해당 alb의 health-check 설정은 다음과 같아야한다.
port : 8080
path : /actuator/health
AWS 서비스를 기계적으로 사용하지 말고 어떤 기능을 하는지 기본부터 차근히 생각해보는 습관이 들어야겠다 생각했다.
'정기간행물 > daily' 카테고리의 다른 글
개발용 배포용 설정 파일 분리하기 (0) | 2023.09.05 |
---|---|
Composite 패턴 (0) | 2023.09.03 |
우리 팀의 코드 품질 향상을 위한 Code Review - 홍승환 (0) | 2023.09.01 |
Public Key Retrieval is not allowed 오류 (0) | 2023.08.30 |
AWS 서비스 (1) | 2023.04.10 |