VPC는 가상의 독립된 네트워크 공간을 의미
예를 들면, 우리 회사 전용 사옥 건물 같은 것임
서브넷은 하나의 큰 네트워크(VPC)를 더 작은 단위로 쪼개어 나눈 것을 의미
예를 들면, 사옥 안의 특정 팀을 위한 구역이나 특정 층 같은 것임
VPC를 여러 개의 서브넷으로 나눌 때 가장 많이 활용하는 방식은 외부 인터넷 접속 가능 여부에 따라 퍼블릭 서브넷과 프라이빗 서브넷으로 나누는 방식
인터넷 게이트웨이는 VPC와 외부 인터넷 간의 통신을 가능하게 해주는 관문 (VPC에 부착)
인터넷 게이트웨이는 서브넷이 아니라 VPC에 부착합니다. 특정 서브넷의 라우팅 테이블에 이 인터넷 게이트웨이로 가는 경로를 추가하면 그 서브넷이 퍼블릭 서브넷이 되는 것
NAT 게이트웨이는 프라이빗 서브넷의 인스턴스가 외부 인터넷에는 접근할 수 있게 하되, 외부에서 안으로 들어오는 접속은 차단하는 장치
서브넷의 라우팅 테이블이 NAT 게이트웨이를 거치도록 설정하면 외부 통신은 가능하면서도 보안을 유지할 수 있어 프라이빗 서브넷 구축에 필수적임
NAT 게이트웨이는 반드시 퍼블릭 서브넷에 배치해야 함 (프라이빗 서브넷이 퍼블릭 서브넷에 있는 NAT 게이트웨이를 거쳐 밖으로 나가는 구조)
흐름: 프라이빗 서브넷 → NAT 게이트웨이(퍼블릭 서브넷에 위치) → 인터넷 게이트웨이 → 외부 인터넷
VPC Endpoint는 인터넷을 거치지 않고 AWS에 직접 연결해주는 서비스
게이트웨이 VPC 엔드포인트 (라우팅 테이블의 경로를 통해 연결됨)
인터페이스 VPC 엔드포인트 (서브넷 안에 Private IP를 가진 네트워크 인터페이스를 생성하여 연결됨)
PrivateLink는 인터넷을 거치지 않고 특정 VPC의 서비스(애플리케이션)를 다른 VPC의 사용자에게 안전하게 제공하고 싶을 때 사용 (전체 네트워크를 연결하는 게 아니라 특정 '서비스'만 노출하므로 보안성이 매우 높음)
VPC 피어링은 서로 다른 두 VPC를 마치 하나의 사설 네트워크처럼 직접 연결하는 방식 (네트워크 대 네트워크를 통째로 연결할 때 사용)