
만약 VPC가 존재하지 않는다면 EC2 인스턴스들이 서로 거미줄처럼 연결되고 인터넷과 연결된다. 이러면 매우 불편하고 시스템의 복잡도가 증가할 것이다. 따라서 VPC는 AWS에서 중요한 개념이라고 한다.
📌 VPC

- 퍼블릭 클라우드 환경에서 사용자가 전용으로 사용할 수 있도록 논리적으로 분리된 가상 네트워크 공간
- 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있다.
- VPC 별로 네트워크를 구성할 수 있고 각각으 VPC에 따라 다르게 네트워크 설정을 줄 수 있다.
- 퍼블릭 클라우드 인프라 내에서 다른 사용자와 완전히 분리된
자체 네트워크 환경을 제공하여 보안을 강화
- 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크, VPC 를 생성 한 후 서브넷을 추가 가능하다.
AWS VPC를 생성할 수 있는 가장 큰 IP 대역은
/16이며, 가장 작은 대역은 /28이다.
VPC 기능
IP 주소 지정
- VPC와 서브넷에 IPv4 주소와 IPv6 주소를 할당 가능
라우팅
- 라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치 결정
게이트웨이 및 엔드포인트
- 게이트웨이는 VPC를 다른 네트워크에 연결
- 예를 들면, 인터넷 게이트웨이를 사용하여 VPC를 인터넷에 연결한다.
- VPC 엔드포인트를 사용하여 인터넷 게이트웨이 or NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결
피어링 연결
- VPC 피어링 연결을 사용하여 두 VPC의 리소스 간 트래픽 라우팅
트래픽 미어링
- 네트워크 인터페이스에서 네트워크 트래픽을 복사하고 심층 패킷 검사를 위해 보안 및 모니터링 어플라이언스로 전송
VPC 흐름 로그
- VPC의 네트워크 인터페이스로 들어가고 나가는 IP 트래픽에 대한 정보 캡처
VPN 연결
서브넷(Subnet)

- VPC의 IP 주소를 나누어 리소스가 배치되는 물리적인 주소 범위
- VPC안에서 실제로 리소스가 생성될 수 있는 네트워크 영역, 실제로 EC2, RDS 같은 리소스 생성 가능
- 하나의 VPC에 N개의 서브넷 생성 가능, 하나의 AZ에만 생성이 가능
- 하나의 네트워크가 분할되어 나눠진 작은 네트워크
- 서브넷을 만들기위해 네트워크를 분할하는걸 서브네팅
- 서브네팅을 서브넷 마스크를 통하여 계산되어 수행
- 서브넷을 나누는 이유는 더 많은 네트워크망을 만들기 위해서
- 각각의 서브넷은 가용영역안에 존재하며, 서브넷안에 RDS, EC2와 같은 리소스들을 위치 시키기 가능
- Private Subnet : 인터넷에 접근 불가능한 subnet (VPC 내부에서만 통신)
- Public Subnet : 인터넷에 접근 가능한 Subnet (VPC 외부/내부와 통신)
CIDR(Classless Inter-Domain Routing, 사이더)

- 클래스 없는 도메인 간 라우팅 기법
- 클래스가 없다는것은 네트워크 구분을 클래스로 하지 않고 좀 더 유연하게 IP 주소를 여러 네트워크 영역으로 나누는 것
- 도메인간의 라우팅에 사용되는 인터넷 주소를 원래 IP주소 클래스 체계를 쓰는것보다 더욱 능동적으로 할 수 있도록 할당하여 지정하는 방식
- 서브네팅, 슈퍼네팅 -> 이러한 IP 나누고 합치는 기법을 모두 CIDR이라고 이해하면 쉽다.
참고