AWS LB 에는 클라이언트 IP 보존을 위한 옵션이 있다. 단 이 옵션을 EKS 환경에서 이해없이 사용 시 일부 트래픽이 응답을 받지 못하는 현상이 발생한다. 이에대해 알아보자
1) 클라이언트 IP 보존 기능이 비활성화 되었을 때 통신의 흐름
- 기본적으로 클라이언트 IP 보존 기능이 비활성화 되면 NLB 는 출발지의 IP 주소를 NLB 의 내부 IP 주소로 재기록하여 타겟과 통신을 하게 됩니다.(NLB 의 IP로 대상을 찾음)
다만, NLB 의 타겟이 다시 타겟의 NLB 를 재귀적으로 호출 (예> POD -> NLB -> POD) 하는 구조일때, 클라이언트 IP 보존 기능이 활성화 되어 있을 경우 타겟인 POD 는 자신의 IP 주소가 목적지인 패킷을 전달받을 수 있으며 (여러 타겟들이 있을 경우), 이러한 패킷에 대해서는 Timeout 이 발생할 수 있음
따라서 위와 같은 상황에서는 간헐적으로 통신이 실패하는 상황이 발생할 수 있으며, 위와 같은 아키텍처에서는 클라이언트 IP 주소 보존 기능을 비활성화 권장
2) 해당 기능이 활성화 되어있을 때 통신의 흐름 (예> 포트/IP 가 변경되는지 등)
- 기본적으로 해당 기능이 활성화 되어 있을때는 포트, IP 주소가 재기록 되지 않음
- 다만, 헤어핀 (응답 패킷이 타겟에서 NLB 를 거치지 않고 클라이언트로 직접 전달) 기능은 지원하지 않으며, 다시 NLB 를 거쳐 NLB 가 클라이언트에게 직접 응답하도록 구성되어 있습니다.
- 즉, 이러한 경우 응답 패킷이 정상적으로 돌아가지 않는 것은 아니며, 출발지/목적지 IP 주소가 변경되지 않아도 NLB 의 내부동작에 의해 NLB 를 거쳐 클라이언트로 응답 패킷이 반환됨
요약하자면, EKS 에서 서비스를 사용할 경우, POD 가 NLB를 통해 POD를 재호출 하는경우 트래픽이 정상적으로 흐르지 않으며, 일부 트래픽에서 TIME OUT 이 발생 한다. 따라서, EKS 에서 서비스를 할 경우에는 SVC 옵션에 어논테이션을 추가하여 Client IP 보존 옵션을 OFF 하도록 하자 (LB 컨트롤러 필요)
Network Load Balancer 대상 그룹 - Elastic Load Balancing
Network Load Balancer 대상 그룹 각 대상 그룹은 하나 이상의 등록된 대상에 요청을 라우팅하는 데 사용됩니다. 리스너를 생성할 때 기본 작업에 대한 대상 그룹을 지정합니다. 트래픽은 리스너 규칙
docs.aws.amazon.com
'AWS' 카테고리의 다른 글
AWS 특정 VPC, IP S3 버킷 허용 하는 방법 (0) | 2023.07.11 |
---|---|
AWS EC2 Instance Metadata(IMDS) (0) | 2023.07.10 |
EKS Config Update (0) | 2023.07.08 |
Multi Region Endpoint Sharing (0) | 2023.06.15 |
AWS EKS efs-csi-driver install (0) | 2023.06.07 |