[amazon-web-services] AWS VPC-인터넷 게이트웨이와 NAT [폐쇄]

인터넷 게이트웨이 란 무엇입니까? NAT 인스턴스 란 무엇입니까? 어떤 서비스를 제공합니까?

AWS VPC 설명서를 읽으면 개인 IP 주소를 발신 요청에 대한 인터넷 라우팅 가능 주소로 매핑하고 수신 응답을 인터넷에서 서브넷의 요청자로 라우팅합니다.

그렇다면 차이점은 무엇입니까? 인터넷 게이트웨이 대신 (또는 그 밖의) NAT 인스턴스를 사용하는 시나리오는 무엇입니까? 본질적으로 일부 네트워크 애플리케이션을 실행하는 EC2 인스턴스입니까, 아니면 라우터와 같은 특수 하드웨어입니까?

단순히 AWS 설명서 링크를 가리 키지 않고 퍼블릭 및 프라이빗 서브넷에 대한 배경 지식을 추가하여 네트워킹에 대한 지식이 부족한 초보자가 쉽게 이해할 수 있도록 설명 할 수 있습니까? 또한 NAT 인스턴스 대신 NAT 게이트웨이를 언제 사용해야합니까?

PS 저는 AWS VPC를 처음 사용하므로 여기에서 사과를 오렌지와 비교할 수 있습니다.



답변

인터넷 게이트웨이

인터넷 게이트웨이는 Amazon VPC와 인터넷 간의 논리적 연결 입니다. 물리적 인 장치 가 아닙니다 . 각 VPC에는 하나만 연결할 수 있습니다. 인터넷 연결 대역폭을 제한 하지 않습니다 . (대역폭에 대한 유일한 제한은 Amazon EC2 인스턴스의 크기이며 VPC 내부 및 인터넷 외부의 모든 트래픽에 적용됩니다.)

VPC를이 경우 하지 않는 인터넷 게이트웨이가 다음 VPC의 자원은 인터넷에서 액세스 할 수 없습니다 (트래픽이 기업 네트워크 및 VPN / 직접 연결을 통해 흘러 제외).

인터넷 게이트웨이로 트래픽을 전달하는 라우팅 테이블이있는 서브넷퍼블릭 서브넷으로 간주됩니다 .

NAT 인스턴스

NAT 인스턴스는 트래픽을 인터넷으로 전달하도록 구성된 Amazon EC2 인스턴스입니다. 기존 AMI에서 시작하거나 다음과 같이 사용자 데이터를 통해 구성 할 수 있습니다.

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

인터넷에 액세스하려는 프라이빗 서브넷의 인스턴스는 라우팅 테이블 구성을 통해 인터넷 바인딩 트래픽을 NAT 인스턴스로 전달할 수 있습니다. 그러면 NAT 인스턴스는 인터넷에 요청을하고 (퍼블릭 서브넷에 있기 때문에) 프라이빗 인스턴스로 응답이 다시 전달됩니다.

NAT 인스턴스로 전송 된 트래픽은 일반적으로 NAT 인스턴스 자체와 연결되지 않은 IP 주소로 전송됩니다 (인터넷의 서버로 전송 됨). 따라서 NAT 인스턴스 에서 소스 / 대상 확인 옵션 을 해제해야합니다. 그렇지 않으면 트래픽이 차단됩니다.

NAT 게이트웨이

AWS 는 NAT 인스턴스를 대신 할 수 있는 NAT 게이트웨이 서비스 를 도입했습니다 . NAT 게이트웨이 서비스를 사용하면 다음과 같은 이점이 있습니다.

  • 완전히 관리되는 서비스입니다. 서비스를 만들고 장애 조치를 포함하여 자동으로 작동합니다.
  • 최대 10Gbps까지 버스트 할 수 있습니다 (NAT 인스턴스는 EC2 인스턴스 유형과 관련된 대역폭으로 제한됨)

하나:

  • 보안 그룹 NAT 게이트웨이와 연결할 수 없습니다
  • 단일 AZ에서만 작동하므로 각 AZ마다 하나씩 필요합니다.

답변

NAT 게이트웨이와 NAT 인스턴스의 경우 어느 쪽이든 작동합니다. NAT 인스턴스는 약간 저렴할 수 있지만 NAT 게이트웨이는 AWS에서 완전히 관리하므로 NATing을 위해 EC2 인스턴스를 유지 관리 할 필요가 없다는 이점이 있습니다.

그러나 인터넷에서 사용할 수 있어야하는 인스턴스의 경우 NAT 게이트웨이 / 인스턴스가 원하는 것이 아닙니다. NAT를 사용하면 프라이빗 인스턴스 (퍼블릭 IP가없는)가 인터넷에 액세스 할 수 있지만 다른 방법으로는 액세스 할 수 없습니다. 따라서 인터넷에서 사용할 수 있어야하는 EC2 인스턴스의 경우 퍼블릭 IP를 할당해야합니다. EC2 인스턴스를 비공개로 유지해야하는 경우 해결 방법이 있습니다. 탄력적로드 밸런서를 사용하여 요청을 프록시 할 수 있습니다.

인터넷 게이트웨이

인터넷 게이트웨이는 VPC가 인터넷에 연결되는 방식입니다. 라우팅 테이블이있는 인터넷 게이트웨이를 사용하여 인터넷 트래픽이 인터넷에 도달하는 방식을 VPC에 알려줍니다.

인터넷 게이트웨이는 VPC에 이름으로 나타납니다. Amazon은 게이트웨이를 관리하며 실제로 사용하고 싶은 말 외에는 아무 것도 말하지 않습니다. 인터넷에 전혀 액세스 할 수없는 완전히 분할 된 서브넷을 원할 수 있습니다.

퍼블릭 서브넷은 인터넷 트래픽이 AWS의 인터넷 게이트웨이를 통해 라우팅되는 서브넷을 의미합니다. 퍼블릭 서브넷 내의 모든 인스턴스에는 퍼블릭 IP가 할당 될 수 있습니다 (예 : “associate public ip address”가 활성화 된 EC2 인스턴스).

프라이빗 서브넷은 인터넷에서 인스턴스에 공개적으로 액세스 할 수 없음을 의미합니다. 그들은 공용 IP 주소가 없습니다. 예를 들어 SSH를 통해 직접 액세스 할 수 없습니다. 프라이빗 서브넷의 인스턴스는 여전히 인터넷 자체에 액세스 할 수 있습니다 (예 : NAT 게이트웨이 사용).


답변

인터넷 게이트웨이는 vpc를 인터넷에 연결하는 데 사용되고 NAT 게이트웨이는 프라이빗 서브넷을 인터넷에 연결하는 데 사용됩니다 (즉, 트래픽이 NAT 게이트웨이로 전달되는 프라이빗 서브넷 인스턴스로 들어오는 트래픽을 의미합니다). 라우팅 테이블의 트래픽을 NAT로 전달해야합니다.

라우팅 테이블 0.0.0.0/0


답변