TCP 트래픽 → Route 53 → IGW →
NLB
→ EC2 인스턴스
NLB
를 제일 의심하게 됨 이 옵션이 나의 상황에서 해결책이 되었음
문제가 되는 NLB를 선택하고 속성탭에서 교차 영역 로드 밸런싱을 on
으로 설정하면 됨
교차 영역 로드 밸런싱이 켜진 경우 각 로드 밸런서 노드가 등록된 모든 가용 영역에 있는 등록된 대상 간에 트래픽을 분산
교차 영역 로드 밸런싱이 꺼진 경우 각 로드 밸런서 노드가 해당 가용 영역에 있는 등록된 대상 간에만 트래픽을 분산
NLB를 생성할 때 서브넷을 지정하면 해당 서브넷마다 각 네트워크 인터페이스가 생성됨
NLB → 네트워크 인터페이스 → 대상 인스턴스(EC2) 로 이루어지는 흐름인데, 교차 영역 로드 밸런싱은 네트워크 인터페이스와 대상의 가용 영역이 다를 경우에도 라우팅을 지원할 수 있게 하는 설정
기본적으로 ALB(어플리케이션 로드밸런서)는 이 옵션이 켜져있지만, NLB(네트워크 로드밸런서)는 이 옵션이 꺼져있는것이 디폴트임
정리하자면, 두 가용영역에 대상 인스턴스(EC2)가 분산되어 있었으나 교차 영역 로드 밸런싱 옵션을 꺼둔 상태라 가용 영역 하나에만 트래픽을 분산 시키다보니, 트래픽이 EC2에 흐를때도 있었고, 흐르지 못해 connection이 되지 못할 때가 있었음
참고 : AWS, 대상 그룹을 위한 교차 영역 로드 밸런싱
https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/disable-cross-zone.html