
데브옵스
AWS PrivateLink로 만드는 안전한 프라이빗 네트워크
두줄요약
AWS PrivateLink의 NLB→ALB(Ingress) 구성에서 Health Check 실패 원인과 해결 방법을 정리했습니다. NLB ENI IP를 기준으로 Ingress 정책을 추가해 안전하게 문제를 해결했습니다.
문제 상황
- AWS PrivateLink로 Salesforce SaaS를 구성하는 과정에서 NLB Health Check 실패와 Unhealthy 상태 발생
- API Gateway와 PrivateLink의 NLB → ALB(Ingress) 구성에서도 동일한 Health Check 실패 재현
원인 분석
- NLB가 ALB로 Health Check 요청을 보낼 때 소스 IP가 NLB ENI IP로 인식되며 기본 Ingress 정책에서 404 응답 발생
- Health Check 실패가 곧바로 서비스 장애를 의미하지는 않지만 운영상 오해를 유발할 수 있음
해결 방법
- Ingress에 NLB ENI IP를 source-ip 조건으로 추가하고 fixed-response 200 정책 설정
- ALB 또는 EKS Ingress에서 NLB Health Check 전용 리스너 규칙을 별도로 구성
주의할 점
- NLB는 고정 IP 특성상 ENI IP 또는 NLB Subnet 대역을 정책에 반영해야 함
- Health Check 성공 범위를 200~404로 넓히는 대안도 가능하지만 운영 의도를 명확히 구분할 필요가 있음
적용해볼 점
- PrivateLink/NLB/ALB 조합에서 Health Check 소스와 Ingress 정책 일치 여부 점검
- Host 헤더 유지 여부를 추가 검증해 HTTP Host 기반 라우팅 규칙 활용 가능성 확인
