
VPN은 ‘가상사설망’이다. 앞에 ‘가상’이라는 단어에서 알 수 있듯이 실제 사설망이 아닌 가상의 사설망이다.
만약 위 그림처럼 회사의 네트워크가 구성되어 있고, 보안상의 이유로 직원간 네트워크를 분리하고 싶다면 기존 인터넷선 선공사도 다시 해야하고 건물의 내부선을 다 뜯어고쳐야하고, 다시 전용선을 깔아줘야한다.
이를 위해 가상의 망 VPC을 사용한다.

VPN은 네트워크 A와 네트워크 B가 실제로 같은 네트워크 상에 있지만 논리적으로 다른 네트워크인것처럼 동작한다. 이것이 바로 ‘가상사설망’이다.
이제 VPN에 대해서 알아보자
Amazon VPC를 사용하면 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.
VPC의 예를 보여주는 다이어그램

VPC에는 리전의 각 가용성 영역에 하나의 서브넷이 있고, 각 서브넷에 EC2 인스턴스가 있고, VPC의 리소스와 인터넷 간의 통신을 허용하는 인터넷 게이트웨이가 있다.
AWS 서비스 콘설에서 VPC를 설정하여 시작
Amazon Elastic Compute Cloud(EC2) 및 Amazon Database Service(RDS) 인스턴스와 같은 리소스를 VPC에 추가한다.
마지막으로 VPC가 계정, 가용 영역 또는 AWS 리전에서 서로 통신하는 방법을 정의한다.
아래 예제에서 네트워크 트래픽은 각 리전 내 2개의 VPC 간에 공유된다.

💡 특성
- Virtual Private Cloud(VPC)
- VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크이다. VPC를 생성한 후 서브넷을 추가할 수 있다.
- 서브넷: VPC의 IP 주소 범위
- 서브넷은 단일 가용 영역에 상주해야 한다. 서브넷을 추가한 후 VPC에 AWS 리소스를 배포할 수 있다.

VPC가 없다면 EC2 인스턴스들이 서로 거미줄처럼 연결되고 인터넷과 연결된다. 이런 구조는 시스템의 복잡도를 엄청나게 끌어올릴뿐만 아니라 하나의 인스턴스만 추가되도 모든 인스턴스를 수정해야하는 불편함이 생긴다.

VPC를 적용하면 위 그림과 같이 VPC별로 네트워크를 구성할 수 있고, 각각의 VPC에 따라 다르게 네트워크 설정을 줄 수 있다. 또한 각각의 VPC는 완전히 독립된 네트워크처럼 작동하게 된다.

VPC를 만들었다면 서브넷을 만들 수 있다. 서브넷은 VPC를 잘게 쪼개는 과정이다. 서브넷은 VPC안에 있는 VPC보다 더 작은 단위이기 때문에 당연히 서브넷 마스크가 더 높게 되고, 아이피 범위가 더 작은값을 갖게 된다.
서브넷을 나누는 이유는 더 많은 네트워크망을 만들기 위해서이다
각각의 서브넷은 가용 영역 안에 존재하며, 서브넷 안에 EC2, RDS와 같은 리소스들을 위치시킬 수 있다.