우리가 익히 알고 있는 IP
43억개가 많다고 생각할 수 있어도 80억 명 남짓한 전세계 인구에 비해서는 부족할 수 밖에 없다.
게다가 IoT 시대에 우리는 휴대폰, 컴퓨터, 공유기 등 사용하는 IP가 많다.
그래서 나타난 것이 사설망이다. IP가 동날 일이 없다.
사설망에 있는 Private IP로는 외부로 통신할 수 없기에 NAT Pool에 존재하는 가용 가능한 공인 IP 하나가 매칭이 된다.
이미 일일이 하나씩 매칭이 되어있다. 따라서 public과 private IP 숫자가 거의 같다.
미리 매칭된 IP로 외부와 통신하게 되는 것.
IPv4 기준 -> 하나의 자리가 8비트 - 총 32비트
192.168.2 까지가 네트워크 주소 (24비트). 남은 건 호스트 주소 (8비트)
네트워크 주소는 고정 / 호스트 주소는 변동
AWS의 VPC 혹은 네트워크 관련 서비스를 알기 위해 필요한 지식이니 알아두자.
192.168.0.0/16 의 네트워크 비트는 16 / 호스트 비트도 16 / 2^16
우리는 일반적으로 Public Internet의 다양한 노드를 통하여 넷플릭스, 깃허브 등의 서비스를 이용한다.
AWS Cloud도 마찬가지로 Public Internet을 통하여 여러 AWS 서비스들을 이용한다.
거의 대부분의 AWS Cloud 서비스들은 일반적으로 Public Internet을 통하는데, 예외가 있다.
VPC는 원칙적으로 Public Internet에서 접근하지 못하는 것이 특징.
아래 그림의 초록선 방향처럼 AWS의 내부라 하더라도 외부의 Public Internet을 거쳐서 서비스를 이용해야 한다.
이것이 일반적인 경우.
VPC는 유일한 예외이다. 원래대로며 접근 경로가 없어야 하는데, Internet gateway라는 요소를 통해 외부로 접근하는 길이 뚫려져 있는 것 뿐.
사실 VPC의 목적은 외부와 격리된 네트워크를 만드는 것이고, 다양한 AWS 서비스들과는 조금 다른 성격을 지니고 있다.
외부와 격리되어 있는 가상의 네트워크 단위이다.
여기서 컨테이너라 함은, 네트워크를 담을 수 있는 일종의 하나의 용기
지금까지 배운 것이 이 화면이라 보면 된다.
라우트 테이블은 IP가 어디로 가야될지를 알려주는데, 그 기준은 라우트 테이블에 있는 것 중 가장 구체적인 것으로 응답을 해준다.
라우트 테이블이 연결되어 있기 때문에 서브넷과 서브넷끼리 통신이 가능한 것.
프라이빗 서브넷은 외부 유저가 직접 접속할 일이 없다.
보안적으로 굉장히 유리하게 만들 수 있다. 해킹을 하려 해도 경로가 아예 없으니 원천적으로 차단할 수 있는 것.
프라이빗 서브넷은 Internet gateway로 가는 경로가 아예 없다.
예를 들어, 10.0.0.0/24 서브넷A에서 외부로 8888로 트래픽을 보낸다 가정하자.
Destination에 있는 10.0.0.0/16 로컬에는 8888이 명시되어 있지 않기 때문에 갈 수 없지만,
igw(Internet gateway)로 가는 경로는 있기 때문에 (0.0.0.0/0은 모든 범위 가능) 8888트래픽이 로컬이 아닌 것을 확인하고 Internet gateway로 보내고, Internet gateway는 이 트래픽을 외부에 있는 퍼블릭 인터넷으로 보내준다. Internet gateway는 지난 시간에 봤던 NAT의 역할을 비슷하게 하고 있다고 보면 된다.
Internet gateway는 외부에 public Internet으로 경로를 만들어주는 역할을 하고, 어떤 트래픽이 Internet gateway로 들어갈 수 있는 경로가 존재하는 라우트 테이블이 붙어있는 서브넷을 public subnet이라 한다.