배경

원인

BadGate 이슈

로드 밸런서에 의해, 서버 도메인(hhboard.xyz)의 모든 http 요청을 https(443) 포트로 redirect 시키는 중

⇒ https의 요청은 다시 대상 그룹인 moit-tg로 전달

⇒ moit-tg에 등록된 서버와 포트는 1개 (EC2 서버의 8080)

인스턴스 ID 이름 포트 상태 확인
i-0dcc36a6b8bfb04cc moit 8080 Healthy

⇒ 해당 EC2 서버의 8080 포트로 모든 요청을 전달하는 중

⇒ EC2 서버의 80포트는 Nginx 가 사용 (service-url.inchttp://127.0.0.1:8080 or 8081)

⇒ 이때, Nginx의 포트가 8081로 변경되는 경우 로드 밸런서의 health check를 통과하지 못함

⇒ 로드 밸런서 443 리스너에 8081 포트 대상그룹을 추가하는 경우, 가중치가 50% → bad gate

⇒ moit-tg(대상그룹)에 검사하는 포트 추가 (8080 + 8081)

인스턴스 ID 이름 포트 상태 확인
i-0dcc36a6b8bfb04cc moit 8081 Unhealthy
i-0dcc36a6b8bfb04cc moit 8080 Healthy

⇒ Healthy 상태가 역전되어야 Bad Gate 문제와 흰 화면 (두 포트 모두 Healthy인 경우) 해결됨

⇒ 해당 문제를 해결하기 위해, health 기준과 간격 단축 (2회 / 5초)

⇒ Healthy 역전 시간 동안 Bad Gate 발생 해결 필요

AWS CLI를 통해 Healthy 상태가 역전된 경우에만, 기존 서버가 다운되도록 deploy.sh 수정

메모리 부족으로 인한 서버 다운 (Out of Memory)