Virtual Private Cloud(가상화 개인 클라우드)
일종의 "네트워크"라고 이해하면 된다.
여러 대의 컴퓨터 간 통신을 위하여 네트워크(LAN 혹은 WAN)가 필요하듯,
여러 개의 인스턴스 간 통신을 위하여 VPC가 필요하다.
그림과 같이 VPC 내에 복수의 서브넷을 생성할 수 있고 각 서브넷에는 인스턴스들이 속한다.
aws에서 제공해주는 게이트웨이는 2가지가 있다. NAT 게이트웨이와 인터넷 게이트웨이.
게이트웨이란 간단히 말해서 [사설ip ↔️ 공인ip]의 통신이라고 보면 된다.
그렇다면 여기서 의문점이 들 수도 있다.
사설 ip는 도대체 왜 필요한거지?
이는 "공인ip 발급의 한계성" 때문이다.
예를 들어, 인터넷 사용자 수가 50억명이라고 가정해보자.
이들 모두가 네트워크를 이용한다고 하면 공인 ip를 10억개 발급해줘야 하는데
문제는 ip 주소 범위상 제한이 있다는 것이다.
IPv4는 0.0.0.0~255.255.255.255 까지 표현 가능하다.
다시 말해 2^32의 주소 개수만 발급 가능하다.
이를 십진수로 나타내면 4,294,967,296(약 42억)이다.
그럼 8억명은 ip 주소를 못 받는다.
따라서, 사설ip를 이용하여 같은 네트워크 안에서 좁은 통신만 하다가 인터넷과 통신해야할 일이 있을 때만 게이트웨이를 통해서 공인ip로 변환한다.
이것이 사설ip의 존재 이유다.
그리고 게이트웨이는 이 사설ip를 공인ip로 변환해주는 과정을 담당한다.
그렇다면 2개의 게이트웨이 차이는 뭘까?
결론부터 말하면 "방향의 차이"가 있다.
NAT 게이트웨이는 단방향이다. 즉, 인스턴스로부터 외부로 나가는(인스턴스 ➡️ 인터넷) 통신은 허용하지만 외부에서 인스턴스로 들어오는(인터넷 ➡️ 인스턴스) 통신은 불허한다.
단, 인스턴스로부터 요청된 신호(request)로부터 들어오는 응답(response)은 허용한다.
aws를 좀 다루다보면 인바운드와 아웃바운드 규칙이라는 용어를 들어봤을 것이다.
위에서 설명한 것과 같이 인스턴스로부터 외부로 나가는 과정을 아웃바운드라고 칭하고 외부에서 인스턴스로 들어오는 과정을 인바운드라고 한다.
반대로 인터넷 게이트웨이는 양방향이다. 아웃바운드[인스턴스 ➡️ 인터넷], 인바운드[인터넷 ➡️ 인스턴스] 모두를 허용한다.
https://nyyang.tistory.com/63
https://velog.io/@wowtjdwo/NAT와-IGW