인터넷 게이트웨이(Internet Gateway)
인터넷 게이트웨이는 수평 확장되고 가용성이 높은 중복 VPC 구성 요소로, VPC와 인터넷 간에 통신할 수 있게 해줍니다.
인터넷 게이트웨이에는 인터넷 라우팅 가능 트래픽에 대한 VPC 라우팅 테이블에 대상을 제공하고, 퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 NAT(네트워크 주소 변환)를 수행하는 두 가지 목적이 있습니다.
인터넷 게이트웨이는 IPv4 및 IPv6 트래픽을 지원합니다. 네트워크 트래픽에 가용성 위험이나 대역폭 제약이 발생하지 않습니다.
Internet Gateway는 VPC에서 호스팅하는 리소스와 인터넷 간의 통신을 가능하게 해주는 AWS 컴포넌트로서
서브넷 내 EC2와 같은 리소스가 Internet과 연결하기 위해 반드시 필요합니다. Internet Gateway는 수평적 확장성과 높은 가용성을 지닌 구성요소로 네트워크 대역폭에 제약이 없습니다. VPC 내에서 호스팅하는 서비스가 외부 세계에 액세스 되도록 채널 역할을 해주고 아울러 AWS 내에서 호스팅되는 리소스가 인터넷에 연결될 수 있도록 해줍니다.
인터넷 게이트웨이는 Public IP/Elastic IP 를 가진 인스턴스들에 대해 NAT(Network Address Translate) 역할을 담당합니다. 외부 인스턴스가 Public IP/Elastic IP를 가진 AWS 리소스에 대해 요청을 보냈을 떄, 인터넷 게이트웨이는 IP 주소를 변환해 리소스의 내부 IP 주소로 해당 요청을 전송한다. 마찬가지로 서브넷 내부에 있는 리소스가 VPC 밖에 있는 서비스에 요청을 전송할 때, 응답 주소는 해당 리소스의 Public IP/Elastic IP로 세팅된다. 따라서 서브넷 라우터에 어태치 되있는 인터넷 게이트웨이가 있으면 해당 서브넷 내에서 호스팅되고 있는 리소스는 인터넷에 접근이 가능하다. 이러한 형태의 서브넷을 Public 서브넷이라 고 한다. 모든 기본 서브넷은 Public 서브넷이다. 인터넷 게이트웨이가 서브넷 라우터에 어태치 되있지 않으면, 해당 서브넷 내에서 호스팅되는 리소스는 인터넷에 접근할 수 없다. 이런 형태의 서브넷을 Private 서브넷이라고 한다.
기본적으로 서브넷에서 생성된 모든 사용자는 Private 서브넷에 있다. 인터넷에 바로 접속되는 리소스를 원할 경우 인터넷 게이트웨이를 생성하고 이를 VPC에 어태치해야 한다. 인터넷 게이트웨이는 리소스를 호스팅하는 서브넷의 라우팅 테이블에 어태치되야 한다. 서브넷의 라우터에 인터넷 게이트웨이를 어태치하면 퍼블릭 서브넷이 된다.
쉽게 말해 Internet Gateway는 외부 인터넷으로 나가기 위한 통로 같은 역할을 한다고 생각하시면 좋을 것 같습니다.