이 페이지가 ‘어떤 경로로 트래픽을 전송해야 하는 지’를 직접 정의해야 하는 페이지다. 하나씩 해석해보자.
‘VPC 내부에서 10.0.0.0/16로 보내는 트래픽은 local로 보내라!’라는 뜻이다. local로 보낸다는 건 Prviate IP를 활용해 내부에서 통신을 하겠다는 의미이다.
0.0.0.0/0은 “모든 IPv4 주소”를 의미한다. 따라서 ‘VPC 내부에서 IPv4 주소로 보내는 모든 트래픽은 인터넷 게이트웨이로 보내라!’라는 뜻이다.
이 2가지 조건을 보면 모순적인 부분이 있다. 1번 조건은 10.0.0.0/16으로 보내는 트래픽을 local로 보내라고 하지만, 2번 조건은 모든 IPv4 주소의 모든 트래픽을 인터넷 게이트웨이로 보내라고 한다. 그런데 1번과 2번 조건을 둘 다 만족하는 IP 주소일 경우(ex. 10.0.0.5)에는 트래픽을 local 보내야 할까? 인터넷 게이트웨이로 보내야 할까?
AWS 공식 문서를 읽어보면 ‘IP 주소 범위가 더 구체적인 조건을 우선 적용한다’고 되어 있다. 즉, 0.0.0.0/0의 주소보다 10.0.0.0/16의 주소가 더 구체적이기 때문에, 10.0.0.5로 트래픽을 보내는 경우에는 local로 보내게 된다.
👨🏻🏫
라우팅 규칙을 스스로 해석할 수 있어야 하고, 스스로 설정할 수 있어야 한다. 그러니 잘 정리해놓도록 하자.
EC2 인스턴스에 접속이 되는 지 확인해보자.
VPC에 서브넷을 생성하고, 인터넷 게이트웨이도 생성하고, 라우팅 테이블도 셋팅했다. 그래서 방금 셋팅한 VPC의 서브넷에 배치되어 있는 AWS 리소스가 외부 인터넷과 통신을 할 수 있을 것이다. 실제로 통신을 할 수 있는 지 EC2 인스턴스에 접속해보자.
지금까지 우리는 외부 인터넷에 접속할 수 있는 서브넷을 만들기 위해, 인터넷 게이트웨이와 라우팅 테이블을 셋팅했다. 이렇게 만든 서브넷을 보고 ‘퍼블릭 서브넷(Public Subnet)’이라고 얘기한다.