Amazon Virtual Private Cloud
사용 설명서

NAT 게이트웨이 문제 해결

다음 주제는 NAT 게이트웨이를 만들거나 사용할 때 발생할 수 있는 일반적인 문제를 해결하는 데 도움이 됩니다.

NAT 게이트웨이가 실패 상태로 바뀜

문제

NAT 게이트웨이를 생성하면 상태가 Failed가 됩니다.

원인

NAT 게이트웨이를 생성할 때 오류가 발생했습니다. 반환된 오류 메시지를 통해 오류 원인을 확인할 수 있습니다.

솔루션

오류 메시지를 보려면 Amazon VPC 콘솔로 이동한 다음 NAT 게이트웨이를 선택하십시오. NAT 게이트웨이를 선택한 다음 세부 정보 창의 상태 상자에서 오류 메시지를 확인합니다.

다음 표에 Amazon VPC 콘솔에 표시되는 오류의 예상 원인이 나와 있습니다. 표시된 수정 단계를 적용한 후 NAT 게이트웨이를 다시 만들어 볼 수 있습니다.

참고

실패한 NAT 게이트웨이는 잠시 후(일반적으로 약 한 시간 후) 자동으로 삭제됩니다.

표시된 오류 원인 솔루션
서브넷에 이 NAT 게이트웨이를 만들 수 있는 사용 가능한 주소가 부족함 지정한 서브넷에 사용 가능한 프라이빗 IP 주소가 없습니다. NAT 게이트웨이에는 서브넷의 범위에서 할당된 프라이빗 IP 주소가 있는 네트워크 인터페이스가 필요합니다. Amazon VPC 콘솔의 서브넷 페이지로 이동하여 서브넷에서 사용 가능한 IP 주소 개수를 확인합니다. 서브넷의 세부 정보 창에서 사용 가능한 IP를 볼 수 있습니다. 서브넷에서 사용 가능한 IP 주소를 만들려면 사용되지 않은 네트워크 인터페이스를 삭제하거나 필요 없는 인스턴스를 종료할 수 있습니다.
네트워크 vpc-xxxxxxxx에 연결된 인터넷 게이트웨이가 없음 인터넷 게이트웨이가 있는 VPC에서 NAT 게이트웨이를 만들어야 합니다. 인터넷 게이트웨이를 생성하여 VPC에 연결합니다. 자세한 정보는 인터넷 게이트웨이 생성 및 연결 단원을 참조하십시오.
탄력적 IP 주소 eipalloc-xxxxxxxx를 이 NAT 게이트웨이와 연결할 수 없음 지정한 탄력적 IP 주소가 없거나 해당 주소를 찾을 수 없습니다. 탄력적 IP 주소의 할당 ID를 검사하여 올바르게 입력했는지 확인합니다. NAT 게이트웨이를 만드는 AWS 리전과 동일한 리전에 있는 탄력적 IP 주소를 지정했는지 확인합니다.
탄력적 IP 주소 eipalloc-xxxxxxxx가 이미 연결되어 있음 지정한 탄력적 IP 주소가 다른 리소스와 이미 연결되어 있으므로 NAT 게이트웨이와 연결할 수 없습니다. 탄력적 IP 주소와 연결된 리소스를 확인합니다. Amazon VPC 콘솔에서 탄력적 IP 페이지로 이동하여 인스턴스 ID 또는 네트워크 인터페이스 ID에 지정된 값을 확인합니다. 해당 리소스에 탄력적 IP 주소가 필요 없는 경우 주소를 연결 해제할 수 있습니다. 또는 계정에 새로운 탄력적 IP 주소를 할당합니다. 자세한 정보는 탄력적 IP 주소 작업 단원을 참조하십시오.
이 NAT 게이트웨이에서 내부적으로 생성되고 사용되는 네트워크 인터페이스 eni-xxxxxxxx가 잘못된 상태입니다. 다시 시도하십시오. NAT 게이트웨이에 대한 네트워크 인터페이스를 만들거나 사용하는 중에 문제가 발생했습니다. 이 오류는 해결할 수 없습니다. NAT 게이트웨이를 다시 만들어 보십시오.

탄력적 IP 주소 및 NAT 게이트웨이 제한

문제

탄력적 IP 주소를 할당하려고 하면 다음 오류가 발생합니다.

The maximum number of addresses has been reached.

NAT 게이트웨이를 생성하려고 하면 다음 오류가 발생합니다.

Performing this operation would exceed the limit of 5 NAT gateways

원인

가능한 원인에는 두 가지가 있습니다.

  • 해당 리전의 계정에 대한 탄력적 IP 주소 수가 한계에 도달했습니다.

  • 해당 가용 영역의 계정에 대한 NAT 게이트웨이 수가 한계에 도달했습니다.

솔루션

탄력적 IP 주소 제한에 도달한 경우 다른 리소스에서 탄력적 IP 주소의 연결을 해제할 수 있습니다. 또는 Amazon VPC 제한 양식을 사용하여 제한 증가를 요청할 수 있습니다.

NAT 게이트웨이 제한에 도달한 경우 다음 중 하나를 수행할 수 있습니다.

  • Amazon VPC 제한 양식을 사용하여 제한 증가를 요청합니다. NAT 게이트웨이 제한은 가용 영역별로 적용됩니다.

  • NAT 게이트웨이의 상태를 확인합니다. Pending, Available 또는 Deleting의 상태는 제한에 포함됩니다. NAT 게이트웨이를 최근에 삭제한 경우 상태가 Deleting에서 Deleted로 바뀔 때까지 몇 분간 기다립니다. 그런 다음 새 NAT 게이트웨이를 생성해 보십시오.

  • 특정 가용 영역에 NAT 게이트웨이가 필요 없는 경우 제한에 도달하지 않은 가용 영역에서 NAT 게이트웨이를 만들어 봅니다.

자세한 내용은 Amazon VPC 제한 단원을 참조하십시오.

가용 영역이 지원되지 않음

문제

NAT 게이트웨이를 생성하려고 하면 NotAvailableInZone 오류가 발생합니다.

원인

제약이 있는 가용 영역(확장이 제약되어 있는 영역)에서 NAT 게이트웨이를 생성하려고 한 것일 수 있습니다.

솔루션

이러한 가용 영역에서는 NAT 게이트웨이를 지원하지 않습니다. 다른 가용 영역에서 NAT 게이트웨이를 만들고 제약이 있는 영역의 프라이빗 서브넷에 사용할 수 있습니다. 리소스와 NAT 게이트웨이가 동일한 영역에 있도록 제약이 없는 가용 영역으로 리소스를 이동할 수도 있습니다.

NAT 게이트웨이가 더 이상 표시되지 않음

문제

NAT 게이트웨이를 만들었지만 Amazon VPC 콘솔에 더 이상 표시되지 않습니다.

원인

NAT 게이트웨이를 만드는 중에 오류가 발생했을 수 있으며, 게이트웨이를 만들지 못했습니다. Failed 상태의 NAT 게이트웨이는 Amazon VPC 콘솔에 잠시 동안(일반적으로 한 시간) 표시됩니다. 한 시간 후에는 자동으로 삭제됩니다.

솔루션

NAT 게이트웨이가 실패 상태로 바뀜에서 정보를 검토하고 새 NAT 게이트웨이를 만들어 봅니다.

NAT 게이트웨이가 Ping 명령에 응답하지 않음

문제

인터넷에서(예를 들어 홈 컴퓨터에서) 또는 VPC의 인스턴스에서 NAT 게이트웨이의 탄력적 IP 주소 또는 프라이빗 IP 주소를 ping하려고 시도하는 경우 응답을 얻을 수 없습니다.

원인

NAT 게이트웨이는 프라이빗 서브넷의 인스턴스에서 인터넷으로만 트래픽을 전달합니다.

솔루션

NAT 게이트웨이가 작동하는지 테스트하려면 NAT 게이트웨이 테스트를 참조하십시오.

인스턴스에서 인터넷에 액세스할 수 없음

문제

NAT 게이트웨이를 생성하고 테스트 단계를 수행했지만 ping 명령이 실패하거나 프라이빗 서브넷의 인스턴스가 인터넷에 액세스할 수 없습니다.

원인

이 문제의 원인은 다음 중 하나일 수 있습니다.

  • NAT 게이트웨이가 트래픽을 제공할 준비가 되지 않았습니다.

  • 라우팅 테이블이 올바르게 구성되지 않았습니다.

  • 보안 그룹 또는 네트워크 ACL이 인바운드 또는 아웃바운드 트래픽을 차단하고 있습니다.

  • 지원되지 않는 프로토콜을 사용하고 있습니다.

솔루션

다음 정보를 확인하십시오.

  • NAT 게이트웨이가 Available 상태인지 확인합니다. Amazon VPC 콘솔에서 [NAT Gateways] 페이지로 이동하고 세부 정보 창에서 상태 정보를 봅니다. NAT 게이트웨이가 실패 상태인 경우 게이트웨이가 생성될 때 오류가 발생했을 수 있습니다. 자세한 정보는 NAT 게이트웨이가 실패 상태로 바뀜 단원을 참조하십시오.

  • 라우팅 테이블을 올바로 구성했는지 확인합니다:

    • NAT 게이트웨이는 인터넷 트래픽을 인터넷 게이트웨이로 라우팅하는 라우팅 테이블이 있는 퍼블릭 서브넷에 있어야 합니다. 자세한 정보는 사용자 지정 라우팅 테이블 생성 단원을 참조하십시오.

    • 인스턴스는 인터넷 트래픽을 NAT 게이트웨이로 라우팅하는 라우팅 테이블이 있는 프라이빗 서브넷에 있어야 합니다. 자세한 정보는 라우팅 테이블 업데이트 단원을 참조하십시오.

    • 전체 또는 일부 인터넷 트래픽을 NAT 게이트웨이 대신 다른 디바이스로 라우팅하는 다른 라우팅 테이블 항목이 있는지 확인합니다.

  • 프라이빗 인스턴스에 대한 보안 그룹 규칙이 아웃바운드 인터넷 트래픽을 허용하는지 확인합니다. ping 명령이 작동하려면 규칙이 아웃바운드 ICMP 트래픽도 허용해야 합니다.

    참고

    NAT 게이트웨이 자체는 모든 아웃바운드 트래픽과 아웃바운드 요청에 대한 응답으로 받는 트래픽을 허용합니다(따라서 상태 저장).

  • 프라이빗 서브넷 및 퍼블릭 서브넷과 연결된 네트워크 ACL에 인바운드 또는 아웃바운드 인터넷 트래픽을 차단하는 규칙이 없는지 확인합니다. ping 명령이 작동하려면 규칙이 인바운드 및 아웃바운드 ICMP 트래픽도 허용해야 합니다.

    참고

    흐름 로그를 활성화하여 네트워크 ACL 또는 보안 그룹 규칙으로 인해 끊어진 연결을 진단할 수 있습니다. 자세한 정보는 VPC 흐름 로그 단원을 참조하십시오.

  • ping 명령을 사용하는 경우 ICMP가 활성화된 웹 사이트를 ping하고 있는지 확인합니다. ICMP가 활성화되지 않은 경우 회신 패킷을 받지 못합니다. 이를 테스트하려면 사용자 자신의 컴퓨터의 명령줄 터미널에서 똑같은 ping 명령을 수행하십시오.

  • 인스턴스가 다른 리소스, 예를 들어 프라이빗 서브넷의 다른 인스턴스를 ping할 수 있는지 확인합니다(보안 그룹 규칙이 이 작업을 허용한다고 가정함).

  • 연결이 TCP, UDP 또는 ICMP 프로토콜만 사용하는지 확인합니다.

대상에 대한 TCP 연결 실패

문제

프라이빗 서브넷의 인스턴스에서 NAT 게이트웨이를 통해 특정 대상에 연결할 때 일부 TCP 연결은 성공하지만 일부는 실패하거나 시간이 초과됩니다.

원인

이 문제의 원인은 다음 중 하나일 수 있습니다.

  • 대상 엔드포인트가 조각난 TCP 패킷으로 응답하고 있습니다. 현재 NAT 게이트웨이는 TCP 또는 ICMP에 대한 IP 조각화를 지원하지 않습니다. 자세한 내용은 NAT 인스턴스 및 NAT 게이트웨이 비교 단원을 참조하십시오.

  • tcp_tw_recycle 옵션이 원격 서버에서 활성화되었으며, 이 옵션은 NAT 디바이스 뒤에 여러 연결이 있는 경우 문제를 일으키는 것으로 알려져 있습니다.

솔루션

다음을 수행하여 연결하려는 엔드포인트가 조각난 TCP 패킷으로 응답하는지 확인하십시오.

  1. 퍼블릭 IP 주소가 있는 퍼블릭 서브넷의 인스턴스를 사용하여 특정 엔드포인트로부터 조각화를 유발할 정도로 큰 응답을 트리거합니다.

  2. tcpdump 유틸리티를 사용하여 엔드포인트가 조각화된 패킷을 전송하는지 확인합니다.

    중요

    이러한 확인을 수행하려면 퍼블릭 서브넷의 인스턴스를 사용해야 합니다. 원래 연결이 실패한 인스턴스, NAT 게이트웨이 뒤 프라이빗 서브넷의 인스턴스 또는 NAT 인스턴스는 사용할 수 없습니다.

    참고

    대량 ICMP 패킷을 전송 또는 수신하는 진단 도구가 패킷 손실을 보고할 것입니다. 예를 들어 NAT 게이트웨이 뒤에서는 ping -s 10000 example.com 명령이 작동하지 않습니다.

  3. 엔드포인트가 조각화된 TCP 패킷을 전송하는 경우 NAT 게이트웨이 대신 NAT 인스턴스를 사용할 수 있습니다.

원격 서버에 액세스할 수 있는 경우 다음을 수행하여 tcp_tw_recycle 옵션이 사용 가능한지 확인할 수 있습니다.

  1. 서버에서 다음 명령을 실행합니다.

    cat /proc/sys/net/ipv4/tcp_tw_recycle

    1이 출력될 경우 tcp_tw_recycle 옵션이 활성화된 것입니다.

  2. tcp_tw_recycle이 활성화된 경우 비활성화하는 것이 좋습니다. 연결을 재사용해야 하는 경우 tcp_tw_reuse 옵션을 사용하는 것이 더 안전합니다.

원격 서버에 액세스할 수 없는 경우 프라이빗 서브넷의 인스턴스에서 tcp_timestamps 옵션을 일시적으로 비활성화하여 테스트할 수 있습니다. 그런 다음 원격 서버에 다시 연결합니다. 연결에 성공하면 원격 서버에서 tcp_tw_recycle이 활성화된 것이 이전 오류의 원인일 수 있습니다. 가능하면 원격 서버 소유자에게 이 옵션이 활성화되어 있는지 확인하고 비활성화하도록 요청하십시오.

경로 추적 출력에 NAT 게이트웨이 프라이빗 IP 주소가 표시되지 않음

문제

인스턴스가 인터넷에 액세스할 수 있지만, traceroute 명령을 수행할 때 출력에 NAT 게이트웨이의 프라이빗 IP 주소가 표시되지 않습니다.

원인

인스턴스가 인터넷 게이트웨이 등의 다른 게이트웨이를 사용하여 인터넷에 액세스하고 있습니다.

솔루션

인스턴스가 위치하고 있는 서브넷의 라우팅 테이블에서 다음 정보를 확인합니다.

  • 인터넷 트래픽을 NAT 게이트웨이로 보내는 경로가 있는지 확인합니다.

  • 인터넷 트래픽을 가상 프라이빗 게이트웨이 또는 인터넷 게이트웨이와 같은 다른 디바이스로 보내는 보다 구체적인 경로가 없는지 확인합니다.

350초 후 인터넷 연결이 끊어짐

문제

인스턴스에서 인터넷에 액세스할 수 있지만 350초 후에 연결이 끊어집니다.

원인

NAT 게이트웨이를 사용하는 연결이 350초 이상 유휴 상태인 경우 연결이 시간 초과됩니다.

솔루션

연결이 끊어지지 않도록 하려면 연결을 통해 더 많은 트래픽을 시작합니다. 또는 인스턴스에서 350초 미만의 값으로 TCP keepalive를 활성화할 수 있습니다.

IPSec 연결을 설정할 수 없음

문제

대상에 대한 IPsec 연결을 설정할 수 없습니다.

원인

NAT 게이트웨이는 현재 IPSec 프로토콜을 지원하지 않습니다.

솔루션

NAT-Traversal(NAT-T)을 사용하여 NAT 게이트웨이에 대해 지원되는 프로토콜인 UDP의 IPsec 트래픽을 캡슐화할 수 있습니다. NAT-T 및 IPsec 구성을 테스트하여 IPsec 트래픽이 삭제되지 않는지 확인하십시오.

추가 연결을 시작할 수 없음

문제

대상에 대해 NAT 게이트웨이를 통한 기존 연결이 있지만 추가 연결을 설정할 수 없습니다.

원인

단일 NAT 게이트웨이에 대한 동시 연결 제한에 도달했을 수 있습니다. 자세한 내용은 NAT 게이트웨이 규칙 및 제한 단원을 참조하십시오. 프라이빗 서브넷의 인스턴스가 많은 수의 연결을 생성하는 경우 이 제한에 도달할 수 있습니다.

솔루션

다음 중 하나를 수행하십시오.

  • 가용 영역당 하나의 NAT 게이트웨이를 만들고 해당 영역에 클라이언트를 분산합니다.

  • 퍼블릭 서브넷에서 추가 NAT 게이트웨이를 만들고 각각 다른 NAT 게이트웨이에 대한 경로가 있는 여러 프라이빗 서브넷으로 클라이언트를 분할합니다.

  • 클라이언트가 대상에 대해 생성할 수 있는 연결 수를 제한합니다.

  • 유휴 상태의 연결을 닫아서 용량을 확보합니다.