haproxy 에서 backend 가 복구되지 않을 때

유진세·2023년 4월 5일
0

IP 가 바뀐게 아닌지 의심하자!!!!

회사에서 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

0개의 댓글