아파치 DNS 관리 기능으로 인한 로드밸런스 문제

  • Aws
  • July 7, 2021

요근래 가장 힘들었던 문제였습니다.
에러 현상은 503에러로 대개 원인은 서버자체가 죽었거나 유효하지 않은 IP로 잘못 통신하는 경우에 발생합니다.
그러다보니 503에러가 발생하면 지속적으로 발생하는데 이번 경우는 간헐적으로 발생하였고 심지어 서버는 문제가 없었습니다.

문제 파악의 실마리는 서버 웹 로그의 ALB IP와 vpc 흐름 로그에서의 ALB IP 불일치 였습니다.
서버 웹로그에서 해당 ALB IP가 동일한 시간대의 VPC 플로우 로그에서 보인 IP주소와 같지 않았습니다.
즉 ALB 주소는 동일한데 DNS A 레코드로 매핑된 IP는 달랐습니다. 열심히 구글링을 해본 결과 저와 같은 현상을 겪으신 분이 계셨고 자료를 참고하여 문제를 해결 할 수 있었습니다.

AWS를 사용하면서 겪은 트러블슈팅 (DNS 기반 HA 관련 이슈)

블로그 글에 의하면 아파치가 제공하는 DNS 관리 기능이 맞지 않는 IP를 가져온다고 합니다.
해당 기능은 통신하고 있던 IP의 서버가 문제가 생겨 통신을 못하다가 다시 서버가 복구되어 기존 IP를 사용할 수 있게되면 다시 기존 IP를 자동으로 사용할 수 있게 해주는 기능 입니다. 추측되는 동작 원리는 만약 기존 IP가 (172.1.1.1) 통신이 안되면 기존 IP를 저장해 두었다가 새로운 IP를 받아 통신합니다. 그럳 새로운 IP가 안되면 저장 했던 기존 IP가 복구가 되었다 판단하여 기존 IP로 통신하는 것 같습니다. 문제는 AWS ALB는 고정 IP가 아니여서 주기적으로 변경하는데 변경된 IP를 보고 아파치가 기존 서버가 복구되었다 판단해서 저장한 기존 IP를 가져옵니다.

The Apache Tomcat Connectors - Reference Guide

해당 블로그에서는 여러가지 해결책을 제시 하였는데 저는 NLB로 교체하는 것으로 문제를 해결습니다.

Tags :

Related Posts

Azure VPN 정책기반과 경로 기반

온프레미스와 VPN연결을 할때 정책 기반과 경로 기반을 고를 수 있다.(IKev2일 경우)

Read More

테라폼 vpc 및 서브넷 모듈화, for each 사용하기

현재 하는 프로젝트의 인프라가 간단하여 연습 겸 테라폼으로 인프라를 만들어 보았다.

Read More

ISP와 프로토콜

ISP ISP는 쉽게 말해서 인터넷 제공자입니다. 앤드 시스템은 ISPs(Internet Service Providers)를 통해서 인터넷에 접속합니다.

Read More