kyucumber
전체 글 보기

NAT Gateway - ErrorPortAllocation

개발 환경의 AWS 계정 내에서 ngrinder를 통해 성능 테스트 진행 중 NAT Gateway의 Cloudwatch metric의 ErrorPortAllocation가 급증하는 이슈가 발생했습니다. 과도한 요청으로 부하가 발생한 상황은 맞았지만, 설계상의 문제도 일부 파악되어 관련 내용을 정리합니다.

원인

Private Subnet 내에 존재하는 어플리케이션 내부에서 Public Subnet에 존재하는 어플리케이션으로 요청을 보내는 부분에서 문제가 발생했습니다.

Private 망 내부에서의 통신이었다면 NAT Gateway가 영향을 받지 않았겠지만 Private -> Public으로 트래픽이 나가는 과정에서 NAT Gateway에 많은 요청이 몰려 최대 포트 할당 개수를 넘어 ErrorPortAllocation가 다수 발생한 것으로 보입니다.

해결

위와 같은 문제의 경우 1차적인 원인은 많은 트래픽입니다.

다만 근본적인 원인은 불필요하게 Public으로 설계되어 있던 어플리케이션이 문제였습니다. 가급적이면 Private 망 내부에서 통신할 수 있도록 여러 서비스간의 설계를 잘 구성해야 할 것 같습니다.

https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-limits

Table of contents