내 NAT 게이트웨이의 ErrorPortAllocation 오류를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 4월 4일

내 NAT 게이트웨이에 계속 ErrorPortAllocation 오류가 발생하며 내 대상 호스트에 대한 여러 개의 동시 연결이 실패합니다. 이 포트 할당 오류를 해결하려면 어떻게 해야 하나요?

간략한 설명

NAT 게이트웨이는 각 대상에 대해 최대 55,000개의 동시 연결을 지원합니다. 이 임계값을 초과하면 해당 대상에 대한 새 연결이 실패하고 Amazon CloudWatch에서 해당 NAT 게이트웨이에 대한 ErrorPortAllocation 지표 값이 증가합니다.

이 문제를 해결하려면 이러한 오류를 유발하는 소스 클라이언트와 대상을 찾아야 합니다. 그런 다음 해결 방법 섹션에서 포트 할당 오류 해결(Resolve port allocations errors) 단계를 따릅니다.

사전 조건:

  • VPC 흐름 로그가 VPC 수준 또는 NAT 게이트웨이가 사용되는 서브넷에서 활성화되었는지 확인합니다.
  • VPC 흐름 로그가 CloudWatch로 전송되도록 구성되어 있는지 확인합니다.

해결 방법

클라이언트 및 해당 연결 대상 찾기

1.    CloudWatch 콘솔을 엽니다.

2.    탐색 창에서 [Insights]를 선택합니다.

3.    로그 그룹(Log group)에서 흐름 로그가 기록되는 로그 그룹을 선택합니다.

4.    트래픽이 어디로 가는지 찾습니다.

filter (srcAddr like 'NAT gateway Private IP' and dstAddr not like 'xxx.xxx.')
| stats count(*) as numaccept by dstAddr
| sort numaccept desc
| limit 10

결과는 포트 할당 오류를 수신한 기간 동안 가장 많은 수의 응답이 발생한 대상 IP를 보여줍니다.

참고: xxx.xxx.를 VPC CIDR의 처음 두 옥텟으로 교체하세요. 또한 NAT gateway Private IP를 해당 NAT 게이트웨이의 프라이빗 IP로 대체하세요.

5.    대상에 트래픽을 보내는 소스 클라이언트를 찾습니다.

filter (dstAddr like 'Public IP from above filter' and srcAddr like 'xxx.xxx.') 
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10

참고: xxx.xxx.를 VPC CIDR의 처음 두 옥텟으로 교체하세요. 또한 Public IP from above filter를 이전 쿼리에서 수신한 대상 IP로 교체합니다.

포트 할당 오류 해결 방법

  • 각 가용 영역에 하나의 NAT 게이트웨이를 만든 다음 가용 영역 전체에 클라이언트를 분산합니다. 교차 가용 영역 데이터 비용을 줄이기 위해 클라이언트와 동일한 가용 영역에 있는 NAT 게이트웨이를 사용하여 트래픽을 인터넷으로 라우팅합니다.
  • CloudWatch에서 IdleTimeoutCount 지표의 값이 증가하는 것이 보이는 경우, 애플리케이션 또는 프라이빗 인스턴스가 유효 연결을 종료하도록 구성합니다. 이렇게 하면 NAT 게이트웨이가 소스 포트를 새 연결에 할당할 수 있습니다.
  • 클라이언트가 단일 대상에 설정할 수 있는 연결의 수를 제한합니다.
  • 동일한 AWS 리전의 Amazon Simple Storage Service(Amazon S3) 또는 Amazon DynamoDB 퍼블릭 IP 주소에 전송되는 트래픽의 경우, 게이트웨이 VPC 엔드포인트를 사용합니다. 게이트웨이 VPC 엔드포인트를 사용할 때는 데이터 처리 요금이나 시간당 요금이 부과되지 않습니다.

이 문서가 도움이 되었나요?


Besoin d'aide pour une question technique ou de facturation ?