VPC(Virtual Private Cloud)를 이해하기 위해 먼저 VPN에 대해 알아보도록 하자.
VPN은 가상 사설망으로 간단히는 회사/조직에서 사용되며 실제 유선으로 구성된 사설망이 아닌 조직간의 네트워크를 가상의 사설망으로 분리할 수 있는 기술이다.
그리고 이러한 VPN을 Cloud에 적용시키면 VPC가 된다.
이러한 방식으로 여러 곳에 뿌려져있는 AWS EC2 인스턴스 또는 AWS Lambda 인스턴스를 VPC 내로 구획할 수 있다. 클라우드 내의 여러 컴퓨터를 사설망으로 잇는 개념이다.
VPC를 만들었다면 Subnet을 만들어 VPC안에서 부분망을 한 번 더 만들 수 있다.
Router는 라우팅 테이블을 이용하여 분기를 나타내어준다.
네트워크 요청이 발생하면 데이터는 우선 라우터로 향하게되고 서브넷의 라우팅테이블은 VPC안의 네트워크 범위를 갖는 네트워크 요청은 로컬에서 찾도록 되어있다. 하지만 그 이외 외부로 통하는 트래픽을 처리할 수 없다.
외부로 통하는 트래픽을 처리하기 위해서는 인터넷 게이트웨이를 사용한다.
Internet Gateway는 VPC와 인터넷을 연결해주는 선(문)이다.
이 때, Internet Gateway와 연결되어있는 Subnet을 Public Subnet이라 부르며,
Internet Gateway와 연결되어있지 않은 Subnet을 Private Subnet이라 부른다.
Security Group과 Network ACL 모두 트래픽을 제어하는 방화벽이며,
Security Group의 경우 각각의 인스턴스 앞에서 트래픽을 제어하고,
Network ACL은 Subnet앞에서 트래픽을 제어한다.
NAT Gateway는 Private Subnet이 Internet과 통신할 수 있도록 하는 아웃바운드 인스턴스이다.
프라이빗 네트워크가 외부에서 요청되는 인바운드는 필요없더라도 인스턴스의 펌웨어나 혹은 주기적인 업데이트가 필요하여 아웃바운드 트래픽만 허용되야할 경우가 있을수도 있다.
이때 퍼블릭 서브넷상에서 동작하는 NAT 게이트웨이는 프라이빗서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이와 연결한다