메뉴
Amazon Virtual Private Cloud
사용 설명서

NAT 게이트웨이

NAT(네트워크 주소 변환) 게이트웨이를 사용하여 프라이빗 서브넷의 인스턴스를 인터넷 또는 기타 AWS 서비스에 연결하는 한편, 인터넷에서 해당 인스턴스와의 연결을 시작하지 못하도록 할 수 있습니다. NAT에 대한 자세한 내용은 NAT를 참조하십시오.

계정에서 NAT 게이트웨이 생성 및 사용에 대한 요금이 청구됩니다. NAT 게이트웨이 시간당 사용 요금 및 데이터 처리 요금이 적용됩니다. Amazon EC2 데이터 전송 요금도 적용됩니다. 자세한 내용은 Amazon VPC 요금을 참조하십시오.

NAT 게이트웨이는 IPv6 트래픽을— 지원하지 않으므로, 그 대신에 외부 전용 인터넷 게이트웨이를 사용하십시오. 자세한 내용은 외부 전용 인터넷 게이트웨이 단원을 참조하십시오.

NAT 게이트웨이 기본 사항

NAT 게이트웨이를 만들려면 NAT 게이트웨이가 속할 퍼블릭 서브넷을 지정해야 합니다. 퍼블릭 서브넷과 프라이빗 서브넷에 대한 자세한 내용은 서브넷 라우팅을 참조하십시오. NAT 게이트웨이를 만들 때 NAT 게이트웨이와 연결할 탄력적 IP 주소도 지정해야 합니다. NAT 게이트웨이를 만든 후에는 인터넷 바운드 트래픽이 NAT 게이트웨이를 가리키도록 하나 이상의 프라이빗 서브넷과 연결된 라우팅 테이블을 업데이트해야 합니다. 그러면 프라이빗 서브넷의 인스턴스가 인터넷과 통신할 수 있습니다.

각 NAT 게이트웨이는 특정 가용 영역에 생성되고 해당 영역에서 중복성을 통해 구현됩니다. 가용 영역에서 만들 수 있는 NAT 게이트웨이 수에는 제한이 있습니다. 자세한 내용은 Amazon VPC 제한 단원을 참조하십시오.

참고

여러 가용 영역에 리소스가 있고 하나의 NAT 게이트웨이를 공유하는 경우 NAT 게이트웨이의 가용 영역이 다운되면 다른 가용 영역의 리소스도 인터넷에 액세스할 수 없습니다. 가용 영역과 독립적인 아키텍처를 만들려면 각 가용 영역에 NAT 게이트웨이를 만들고 리소스가 동일한 가용 영역의 NAT 게이트웨이를 사용하도록 라우팅을 구성합니다.

NAT 게이트웨이가 더 이상 필요하지 않으면 삭제할 수 있습니다. NAT 게이트웨이를 삭제하면 탄력적 IP 주소가 연결 해제되지만 계정에서 주소가 해제되지는 않습니다.

NAT 게이트웨이에는 다음과 같은 특성이 있습니다.

  • NAT 게이트웨이는 최대 10Gbps 대역폭을 지원합니다. 10Gbps 이상이 필요한 경우 리소스를 여러 서브넷으로 분할하고 각 서브넷에 NAT 게이트웨이를 만들어 워크로드를 분산할 수 있습니다.

  • 하나의 탄력적 IP 주소만 NAT 게이트웨이에 연결할 수 있습니다. 연결된 후에는 NAT 게이트웨이에서 탄력적 IP 주소의 연결을 끊을 수 없습니다. NAT 게이트웨이에 다른 탄력적 IP 주소를 사용하려면 필요한 주소가 있는 새로운 NAT 게이트웨이를 만들고 라우팅 테이블을 업데이트한 다음, 더 이상 필요하지 않은 경우 기존 NAT 게이트웨이를 삭제해야 합니다.

  • NAT 게이트웨이는 TCP, UDP, ICMP 등의 프로토콜을 지원합니다.

  • 보안 그룹을 NAT 게이트웨이와 연결할 수 없습니다. 프라이빗 서브넷의 인스턴스에 대한 보안 그룹을 사용하여 해당 인스턴스에서 주고받는 트래픽을 제어할 수 있습니다.

  • 네트워크 ACL을 사용하여 NAT 게이트웨이가 위치하고 있는 서브넷에서 주고받는 트래픽을 제어할 수 있습니다. 네트워크 ACL은 NAT 게이트웨이의 트래픽에 적용됩니다. NAT 게이트웨이는 포트 1024 - 65535를 사용합니다. 자세한 내용은 네트워크 ACL 단원을 참조하십시오.

  • NAT 게이트웨이가 생성되면 서브넷의 IP 주소 범위에 속하는 프라이빗 IP 주소가 자동으로 할당된 네트워크 인터페이스를 받습니다. Amazon EC2 콘솔에서 NAT 게이트웨이의 네트워크 인터페이스를 볼 수 있습니다. 자세한 내용은 탄력적 네트워크 인터페이스에 대한 세부 정보 보기 단원을 참조하십시오. 이 네트워크 인터페이스의 속성을 수정할 수 없습니다.

  • VPC와 연결된 ClassicLink 연결을 통해 NAT 게이트웨이에 액세스할 수 없습니다.

다음 다이어그램은 NAT 게이트웨이가 있는 VPC의 아키텍처를 보여 줍니다. 기본 라우팅 테이블은 프라이빗 서브넷의 인스턴스에서 NAT 게이트웨이로 인터넷 트래픽을 보냅니다. NAT 게이트웨이는 NAT 게이트웨이의 탄력적 IP 주소를 소스 IP 주소로 사용하여 인터넷 게이트웨이로 트래픽을 보냅니다.

 퍼블릭 및 프라이빗 서브넷과 NAT 게이트웨이가 있는 VPC

NAT 인스턴스에서 마이그레이션

이미 NAT 인스턴스를 사용하는 경우 이를 NAT 게이트웨이로 대체할 수 있습니다. 이렇게 하려면 NAT 인스턴스와 동일한 서브넷에 NAT 게이트웨이를 만든 다음, NAT 인스턴스를 가리키는 라우팅 테이블의 기존 경로를 NAT 게이트웨이를 가리키는 경로로 대체합니다. NAT 인스턴스에서 현재 사용하는 것과 동일한 탄력적 IP 주소를 NAT 게이트웨이에 사용하려면 먼저 NAT 인스턴스의 탄력적 IP 주소를 연결 해제하고 NAT 게이트웨이를 만들 때 이 주소를 게이트웨이에 연결해야 합니다.

참고

NAT 인스턴스에서 NAT 게이트웨이로 라우팅을 변경하거나 NAT 인스턴스에서 탄력적 IP 주소의 연결을 해제하면 현재 연결이 끊어지고 연결을 다시 설정해야 합니다. 중요한 작업(또는 NAT 인스턴스를 통해 작동하는 기타 작업)이 실행 중이지 않은지 확인합니다.

VPC 종단점, VPN, AWS Direct Connect 또는 VPC 피어링이 있는 NAT 게이트웨이 사용

NAT 게이트웨이는 VPC 종단점, VPN 연결, AWS Direct Connect 또는 VPC 피어링 연결을 통해 트래픽을 보낼 수 없습니다. 프라이빗 서브넷의 인스턴스가 VPC 종단점, VPN 연결 또는 AWS Direct Connect를 통해 리소스에 액세스해야 하는 경우, 프라이빗 서브넷의 라우팅 테이블을 사용하여 이 디바이스로 트래픽을 직접 라우팅합니다.

예를 들어, 프라이빗 서브넷의 라우팅 테이블에 다음 경로가 있는 경우 인터넷 바운드 트래픽(0.0.0.0/0)은 NAT 게이트웨이로 라우팅되고, Amazon S3 트래픽(pl-xxxxxxxx, Amazon S3에 대한 특정 IP 주소 범위)은 VPC 종단점으로 라우팅되며, 10.25.0.0/16 트래픽은 VPC 피어링 연결로 라우팅됩니다. pl-xxxxxxxx 및 10.25.0.0/16 IP 주소 범위는 0.0.0.0/0보다 구체적입니다. 인스턴스에서 Amazon S3 또는 피어링된 VPC로 트래픽을 보내면 트래픽은 VPC 종단점 또는 VPC 피어링 연결로 전송됩니다. 인스턴스에서 인터넷(Amazon S3 IP 주소 제외)으로 트래픽을 보내면 트래픽은 NAT 게이트웨이로 전송됩니다.

VPC 피어링 연결, VPN 연결 또는 AWS Direct Connect를 통해 NAT 게이트웨이로 트래픽을 라우팅할 수 없습니다. 이 연결의 다른 쪽에 있는 리소스는 NAT 게이트웨이를 사용할 수 없습니다.

NAT 게이트웨이 사용

Amazon VPC 콘솔을 사용하여 NAT 게이트웨이를 만들고 보고 삭제할 수 있습니다. 또한 Amazon VPC 마법사를 사용하여 퍼블릭 서브넷, 프라이빗 서브넷 및 NAT 게이트웨이가 있는 VPC를 만들 수 있습니다. 자세한 내용은 시나리오 2: 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC(NAT) 단원을 참조하십시오.

NAT 게이트웨이 만들기

NAT 게이트웨이를 만들려면 서브넷과 탄력적 IP 주소를 지정해야 합니다. 탄력적 IP 주소가 현재 인스턴스 또는 네트워크 인터페이스에 연결되어 있지 않은지 확인합니다. NAT 인스턴스에서 NAT 게이트웨이로 마이그레이션할 때 NAT 인스턴스의 탄력적 IP 주소를 재사용하려는 경우 먼저 NAT 인스턴스에서 해당 주소를 연결 해제해야 합니다.

NAT 게이트웨이를 만들려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 [NAT Gateways], [Create NAT Gateway]를 선택합니다.

  3. 대화 상자에서 NAT 게이트웨이를 만들 서브넷을 지정하고 NAT 게이트웨이와 연결할 탄력적 IP 주소를 선택합니다. 완료하면 [Create a NAT Gateway]를 선택합니다.

  4. NAT 게이트웨이가 콘솔에 표시됩니다. 몇 분 후 상태가 Available로 변경되면 사용할 준비가 된 것입니다.

NAT 게이트웨이가 Failed 상태로 바뀌면 만드는 중에 오류가 발생한 것입니다. 자세한 내용은 NAT 게이트웨이가 실패 상태로 바뀜 단원을 참조하십시오.

라우팅 테이블 업데이트

NAT 게이트웨이를 만든 후에는 인터넷 트래픽이 NAT 게이트웨이를 가리키도록 프라이빗 서브넷의 라우팅 테이블을 업데이트해야 합니다. Amazon은 LPM(Longest Prefix Match)을 통해 트래픽과 일치하는 고도로 구체적인 라우팅을 사용하여 트래픽의 라우팅 방법을 결정합니다. 자세한 내용은 라우팅 우선순위 단원을 참조하십시오.

NAT 게이트웨이에 대한 경로를 만들려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

  3. 프라이빗 서브넷과 연결된 라우팅 테이블을 선택하고 [Routes], [Edit]를 선택합니다.

  4. [Add another route]를 선택합니다. [Destination]에 0.0.0.0/0을 입력합니다. [Target]에서 NAT 게이트웨이의 ID를 선택합니다.

    참고

    NAT 인스턴스 사용에서 마이그레이션하는 경우 NAT 인스턴스를 가리키는 현재 경로를 NAT 게이트웨이에 대한 경로로 바꿀 수 있습니다.

  5. [Save]를 선택합니다.

NAT 게이트웨이가 인터넷에 액세스할 수 있도록 하려면, NAT 게이트웨이가 속한 서브넷과 연결된 라우팅 테이블에 인터넷 트래픽이 인터넷 게이트웨이를 가리키는 경로가 포함되어야 합니다. 자세한 내용은 사용자 지정 라우팅 테이블 생성 단원을 참조하십시오. NAT 게이트웨이를 삭제하면 NAT 게이트웨이 경로는 경로를 삭제하거나 업데이트할 때까지 blackhole 상태로 유지됩니다. 자세한 내용은 라우팅 테이블에 경로 추가 및 라우팅 테이블에서 경로 제거 단원을 참조하십시오.

NAT 게이트웨이 삭제

Amazon VPC 콘솔을 사용하여 NAT 게이트웨이를 삭제할 수 있습니다. NAT 게이트웨이를 삭제한 후 잠시 동안(일반적으로 한 시간) Amazon VPC 콘솔에 항목이 표시되며 그 이후 자동으로 제거됩니다. 이 항목을 직접 제거할 수는 없습니다.

NAT 게이트웨이를 삭제하려면

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.

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

  3. NAT 게이트웨이를 선택한 다음 [Delete NAT Gateway]를 선택합니다.

  4. 확인 대화 상자에서 [Delete NAT Gateway]를 선택합니다.

NAT 게이트웨이 테스트

NAT 게이트웨이를 만들고 라우팅 테이블을 업데이트한 후에는 프라이빗 서브넷의 인스턴스에서 인터넷을 ping하여 인터넷에 연결할 수 있는지 테스트할 수 있습니다. 이렇게 하는 방법의 예는 인터넷 연결 테스트 섹션을 참조하십시오.

인터넷에 연결할 수 있는 경우 다음 테스트를 수행하여 인터넷 트래픽이 NAT 게이트웨이를 통해 라우팅되는지도 확인할 수 있습니다.

  • 프라이빗 서브넷의 인스턴스에서 전송되는 트래픽의 경로를 추적할 수 있습니다. 이렇게 하려면 프라이빗 서브넷의 Linux 인스턴스에서 traceroute 명령을 실행합니다. 출력에서 홉 중 하나(일반적으로 첫 번째 홉)에 NAT 게이트웨이의 프라이빗 IP 주소가 보여야 합니다.

  • 프라이빗 서브넷의 인스턴스에서 소스 IP 주소에 연결할 때 이를 표시하는 타사 웹 사이트 또는 도구를 사용합니다. 소스 IP 주소는 NAT 게이트웨이의 탄력적 IP 주소여야 합니다. Amazon VPC 콘솔의 [NAT Gateways] 페이지에서 정보를 확인하여 NAT 게이트웨이의 탄력적 IP 주소 및 프라이빗 IP 주소를 가져올 수 있습니다.

위의 테스트가 실패하는 경우 NAT 게이트웨이 문제 해결을 참조하십시오.

인터넷 연결 테스트

다음 예제는 프라이빗 서브넷의 인스턴스가 인터넷에 연결할 수 있는지 테스트하는 방법을 보여 줍니다.

  1. 퍼블릭 서브넷의 인스턴스를 시작합니다(이 인스턴스를 접속 호스트로 사용). 자세한 내용은 서브넷에서 인스턴스 시작 단원을 참조하십시오. 시작 마법사에서 Amazon Linux AMI를 선택하고 인스턴스에 퍼블릭 IP 주소를 할당해야 합니다. 보안 그룹 규칙이 로컬 네트워크의 IP 주소 범위에서 전송되는 인바운드 SSH 트래픽을 허용하고(이 테스트의 경우 0.0.0.0/0도 사용할 수 있음), 프라이빗 서브넷의 IP 주소 범위로 전송되는 아웃바운드 SSH 트래픽을 허용하는지 확인합니다.

  2. 프라이빗 서브넷에서 인스턴스를 시작합니다. 시작 마법사에서 Amazon Linux AMI를 선택해야 합니다. 인스턴스에 퍼블릭 IP 주소를 할당하지 마십시오. 보안 그룹 규칙이 퍼블릭 서브넷에서 시작한 인스턴스의 프라이빗 IP 주소에서 전송되는 인바운드 SSH 트래픽 및 모든 아웃바운드 ICMP 트래픽을 허용하는지 확인합니다. 퍼블릭 서브넷에서 인스턴스를 시작하는 데 사용한 것과 동일한 키 페어를 선택해야 합니다.

  3. 로컬 컴퓨터에서 SSH 에이전트 전달을 구성하고, 퍼블릭 서브넷의 접속 호스트에 연결합니다. 자세한 내용은 Linux 또는 macOS에 대한 SSH 에이전트 전달을 구성하려면 또는 Windows(PuTTY)에 대한 SSH 에이전트 전달을 구성하려면 섹션을 참조하십시오.

  4. 접속 호스트에서 프라이빗 서브넷의 인스턴스에 연결한 다음, 프라이빗 서브넷의 인스턴스에서 인터넷 연결을 테스트합니다. 자세한 내용은 인터넷 연결을 테스트하려면 단원을 참조하십시오.

Linux 또는 macOS에 대한 SSH 에이전트 전달을 구성하려면

  1. 로컬 시스템에서 인증 에이전트에 프라이빗 키를 추가합니다.

    Linux의 경우 다음 명령을 사용합니다.

    Copy
    ssh-add -c mykeypair.pem

    macOS의 경우 다음 명령을 사용합니다.

    Copy
    ssh-add -K mykeypair.pem
  2. SSH 에이전트 전달을 활성화하려면 -A 옵션을 사용하여 퍼블릭 서브넷의 인스턴스에 연결하고 해당 인스턴스의 퍼블릭 주소를 사용합니다. 예를 들면 다음과 같습니다.

    Copy
    ssh -A ec2-user@54.0.0.123

Windows(PuTTY)에 대한 SSH 에이전트 전달을 구성하려면

  1. Pageant가 아직 설치되어 있지 않으면 PuTTY 다운로드 페이지에서 Pageant를 다운로드하여 설치합니다.

  2. 프라이빗 키를 .ppk 형식으로 변환합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서PuTTYgen을 사용하여 프라이빗 키 변환을 참조하십시오.

  3. Pageant를 시작하고 작업 표시줄의 Pageant 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 [Add Key]를 선택합니다. 생성한 .ppk 파일을 선택하고 필요한 경우 암호를 입력한 다음 [Open]을 선택합니다.

  4. PuTTY 세션을 시작하고 퍼블릭 IP 주소를 사용하여 퍼블릭 서브넷의 인스턴스에 연결합니다. 자세한 내용은 PuTTY 세션 시작을 참조하십시오. [Auth] 범주에서 [Allow agent forwarding] 옵션을 선택하고 [Private key file for authentication] 상자를 공백 상태로 둡니다.

인터넷 연결을 테스트하려면

  1. 퍼블릭 서브넷의 인스턴스에서 프라이빗 IP 주소를 사용하여 프라이빗 서브넷의 인스턴스에 연결합니다. 예를 들면 다음과 같습니다.

    Copy
    ssh ec2-user@10.0.1.123
  2. 프라이빗 인스턴스에서 ICMP를 활성화한 웹 사이트에 대해 ping 명령을 실행하여 인터넷에 연결할 수 있는지 테스트합니다. 예를 들면 다음과 같습니다.

    Copy
    ping ietf.org
    PING ietf.org (4.31.198.44) 56(84) bytes of data.
    64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms
    64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms
    ...

    키보드에서 [Ctrl+C]를 눌러 ping 명령을 취소합니다. ping 명령이 실패할 경우 프라이빗 서브넷의 인스턴스가 인터넷에 액세스할 수 없음을 참조하십시오.

  3. (선택 사항) 더 이상 필요하지 않으면 인스턴스를 종료합니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서에서 인스턴스 종료를 참조하십시오.

NAT 게이트웨이 문제 해결

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

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

NAT 게이트웨이를 만들 때 게이트웨이가 Failed 상태로 바뀌는 경우 게이트웨이를 만들 때 오류가 발생한 것입니다. 오류 메시지를 보려면 Amazon VPC 콘솔로 이동하여 [NAT Gateways]를 선택하고 NAT 게이트웨이를 선택한 다음, 세부 정보 창의 [Status] 상자에서 오류 메시지를 확인합니다.

참고

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

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

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

탄력적 IP 주소 또는 NAT 게이트웨이 제한에 도달함

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

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

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

  • NAT 게이트웨이의 상태를 확인합니다. Pending, Available 또는 Deleting의 상태는 제한에 포함됩니다. NAT 게이트웨이를 최근에 삭제한 경우 상태가 Deleting에서 Deleted로 바뀔 때까지 몇 분간 기다린 다음 새 NAT 게이트웨이를 만들어 봅니다.

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

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

가용 영역이 지원되지 않음(NotAvailableInZone)

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

NAT 게이트웨이를 만들었지만 게이트웨이가 더 이상 표시되지 않음

NAT 게이트웨이를 만드는 중에 오류가 발생했을 수 있으며, 게이트웨이를 만들지 못했습니다. failed 상태의 NAT 게이트웨이는 Amazon VPC 콘솔에 잠시 동안(일반적으로 한 시간) 표시되며 그 이후 자동으로 삭제됩니다. NAT 게이트웨이가 실패 상태로 바뀜에서 정보를 검토하고 새 NAT 게이트웨이를 만들어 봅니다.

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

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

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

프라이빗 서브넷의 인스턴스가 인터넷에 액세스할 수 없음

위의 NAT 게이트웨이 테스트 단계를 수행한 후 ping 명령이 실패하거나 인스턴스가 인터넷에 액세스할 수 없는 경우 다음 정보를 확인합니다.

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

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

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

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

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

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

    참고

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

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

    참고

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

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

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

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

특정 엔드포인트에 대한 TCP 연결이 실패

다른 엔드포인트에 대한 TCP 연결은 정상적으로 작동하지만 특정 엔드포인트 또는 호스트에 대한 TCP 연결이 실패하는 경우 연결하려는 엔드포인트가 조각화된 TCP 패킷에 응답하는지 확인합니다. 현재 NAT 게이트웨이는 TCP에 대한 IP 조각화를 지원하지 않습니다. 자세한 내용은 NAT 인스턴스 및 NAT 게이트웨이 비교 단원을 참조하십시오.

엔드포인트가 조각화된 TCP 패킷을 전송하는지 확인하려면 퍼블릭 IP 주소를 갖는 퍼블릭 서브넷의 인스턴스를 사용하여 다음을 수행합니다.

  • 특정 엔드포인트로부터 조각화를 유발할 정도로 큰 응답을 트리거합니다.

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

중요

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

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

참고

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

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

인스턴스가 인터넷에 액세스할 수 있지만, traceroute 명령을 수행할 때 출력에 NAT 게이트웨이의 프라이빗 IP 주소가 표시되지 않습니다. 이 경우 인스턴스는 인터넷 게이트웨이와 같은 다른 디바이스를 사용하여 인터넷에 액세스하고 있습니다. 인스턴스가 위치하고 있는 서브넷의 라우팅 테이블에서 다음 정보를 확인합니다.

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

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

5분 후 인터넷 연결이 끊어짐

NAT 게이트웨이를 사용하는 연결이 5분 이상 유휴 상태인 경우 연결이 시간 초과됩니다. 연결을 통해 추가 트래픽을 시작하거나 TCP keepalive를 사용하여 연결이 끊어지지 않도록 할 수 있습니다.

IPSec 연결을 설정할 수 없음

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

대상에 대한 추가 연결을 시작할 수 없음

동시 연결 제한에 도달했을 수 있습니다. NAT 게이트웨이는 각 고유 대상에 대해 최대 65,000개의 동시 연결을 지원할 수 있습니다. 프라이빗 서브넷의 인스턴스가 많은 수의 연결을 생성하는 경우 이 제한에 도달할 수 있습니다. 다음 중 하나를 수행할 수 있습니다.

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

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

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

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

참고

대상 IP 주소, 대상 포트 또는 프로토콜(TCP/UDP/ICMP)이 변경되는 경우 65,000개의 연결을 추가로 만들 수 있습니다.

NAT 게이트웨이 사용 제어

기본적으로 IAM 사용자에게는 NAT 게이트웨이를 사용할 권한이 없습니다. 사용자에게 NAT 게이트웨이를 생성, 설명 및 삭제할 수 있는 권한을 부여하는 IAM 사용자 정책을 만들 수 있습니다. 현재는 ec2:*NatGateway* API 작업에 대한 리소스 수준 권한을 지원하지 않습니다. Amazon VPC의 IAM 정책에 대한 자세한 내용은 Amazon VPC 리소스에 대한 액세스 제어를 참조하십시오.

NAT 게이트웨이 태그 지정

NAT 게이트웨이에 태그를 지정하면 조직의 요구에 따라 이를 식별 또는 분류할 수 있습니다. 태그 사용에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서Amazon EC2 리소스에 태그 지정을 참조하십시오.

NAT 게이트웨이에서 비용 할당 태그가 지원되므로 태그를 사용하여 AWS 청구서를 구성하고 자체 비용 구조를 반영할 수 있습니다. 자세한 내용은 AWS Billing and Cost Management 사용 설명서비용 할당 태그 사용을 참조하십시오. 태그를 사용한 비용 할당 보고서 설정에 대한 자세한 내용은 AWS 계정 결제 정보월간 비용 할당 보고서 섹션을 참조하십시오.

API 및 CLI 개요

이 페이지에서 설명한 작업은 명령줄이나 API를 사용하여 수행할 수 있습니다. 명령줄 인터페이스 및 사용 가능한 API 작업 목록에 대한 자세한 내용은 Amazon VPC에 액세스를 참조하십시오.

NAT 게이트웨이 만들기

NAT 게이트웨이 태그 지정

NAT 게이트웨이 설명

NAT 게이트웨이 삭제