로드 밸런서에 의해, 서버 도메인(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.inc
→ http://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
수정