본문 바로가기
Dev

구글 클라우드 상태 확인(GoogleHC) 때문에 서버가 터지다.

by ryush00 2018. 4. 28.

갑자기 서버가 10분 정도의 주기로 계속 재생성되는 현상이 발생했습니다. 오토 스케일링이나 상태 확인(Health Check) 설정이 잘못된건지  살펴보아, 드디어 1주일만에 원인을 알아냈습니다.

원인

구글 클라우드 부하 분산(로드 밸런서)는 안정성을 위해서 한 개가 아니라 여러개가 돌아갑니다. 그런데 이번에 구글이 뭔 업데이트를 한 건지는 몰라도 갑자기 부하 분산 땜빵 서버가 엄청나게 늘어나서 서버가 터져버린 것이죠.

마인리스트는 상태 확인시 메인 페이지에서 상태 확인을 하는데 하는데 메인 페이지를 1초에 평균 4번에 가까울 정도로 상태 확인을 하다가 (여러개의 로드 벨런서가 상태 확인을 병렬적으로 하다보니까) 타이밍이 맞아서 수십개의 로드벨런서가 동시에 서버에 접속하고 CPU가 폭발하여 502 오류를 내뿜다가 끝없이 재생성된 것으로 보입니다.

구글이 땜빵용 서버를 많이 만들어준건 고맙지만 너무 많습니다!

해결책

상태 확인 경로를 자원을 많이 필요로 하지 않는 앱의 동적 페이지로 설정하면 됩니다.

댓글