회사에서 haproxy 를 통해서 private -> public 으로 나가는 api 들을 통제하고 있는데
지금까지 서비스 장애가 난 적이 없었는데.....
이번에 등록한 신규 정책이 원인 모를 이유로 가끔 사망하는 이슈가 있었다.
http mode 라서 커넥션을 유지하는 것도 아닐텐데
한번 죽으면 절대 절대 backend 가 다시 up 으로 상태가 바뀌지 않았다.
해결방법은 haproxy 를 재기동 해주는 것 뿐이었다.
backend api.example
mode http
log global
server sample api.example.kr:443 ssl verify none check
절대 안살아남 ㅠㅠ 꼭 새벽에 장애 남.....하....
문제는 상대방 IP 가 고정 IP 가 아니었다는 것 이었다.
Haproxy IP 가 아니고 domain 으로 작성했다고 하더라도
기동시점에 domain 의 IP 주속 값으로 계속 동작한다
따라서 재기동 없이는 신규 IP 로 호출하지 않고
계속 이전 IP 를 호출하기 때문에 Down 상태를 유지하게 된다.
상대방 업체는 AWS 를 사용중이었고 AWS 에 IP 고정 신청을 하지 않았기에
자주 사용하지 않는 새벽 시간에 꼭 IP 가 가끔 바뀌는 불상사가 있었다.
상대방의 IP 를 고정 IP 로 바꾸거나 (우리는 이렇게 해결)
Haproxy 의 Resolvers 옵션을 이용하자
<아래 참조>
https://dev.to/vumdao/haproxy-with-resolvers-in-case-of-aws-application-loadbalancer-d1n