서브넷은 하나의 큰 네트워크(VPC, 회사 네트워크 등)를 작은 네트워크 단위로 나눈 것을 의미한다.
VPC를 여러개의 서브넷으로 나눌 때 가장 많이 활용하는 방식이 외부에서 접근 가능한 네트워크(퍼블릭 서브넷)와 외부에서 접근이 불가능한 네트워크를 나누는 방식(프라이빗 서브넷)이다.
✅ 인터넷 게이트웨이
인터넷 게이트웨이는 VPC와 외부 인터넷 간에 통신할 수 있게 해주는 장치이다. VPC는 원래 외부 인터넷과 소통할 수 없는 독립적으로 분리된 네트워크인데, 특정 서브넷에 인터넷 게이트웨이를 부착함으로써 외부 인터넷과 서로 통신할 수 있게 된다. 그리고 인터넷 게이트웨이 덕분에 외부 인터넷과 서로 통신할 수 있게 된 서브넷을 보고 퍼블릭 서브넷이라고 부른다.
✅ NAT 게이트웨이
NAT 게이트웨이는 외부 인터넷에서 서브넷으로 접근할 수는 없지만 서브넷에서 외부 인터넷으로 접근할 수 있게 해주는 장치다. NAT 게이트웨이는 내부에서 외부로만 나갈 수 있는 출입구라고 생각하면 이해하기 편하다.
NAT 게이트웨이는 보안을 위해 서브넷에서는 외부 인터넷에 접근이 가능하지만, 외부 인터넷에서는 서브넷에 접근할 수 없게 만들고 싶을 때 사용한다. 이렇게 만든 서브넷을 보고 프라이빗 서브넷이라고 부른다.
정리하자면, 프라이빗 서브넷이 서브넷에서 외부 인터넷 방향으로만 접근할 수 있게 만들어주는 게 바로 NAT 게이트웨이다.
[특징]
인터넷 게이트웨이는 VPC에 연결했지만, NAT 게이트웨이는 특이하게도 VPC에 연결하는 것도 아니고 프라이빗 서브넷에 연결하는 것도 아니다. NAT 게이트웨이는 퍼블릭 서브넷에 연결을 한다. 프라이빗 서브넷을 외부 인터넷에 직접적으로 노출시키지 않으면서도, 인터넷에 접근은 할 수 있게 만들어야 해서 나온 구조로 예상된다.
✅ VPC Endpoint
VPC Endpoint는 인터넷을 거치지 않고 AWS 서비스(S3, DynamoDB 등)에 직접 연결해주는 서비스이다. 인터넷을 거치지 않고 통신을 하기 때문에 보안을 위해 많이 사용한다.
[유형]
게이트웨이 VPC 엔드포인트
인터넷을 거치지 않고 S3, DynamoDB에 접근할 수 있게 해준다.
인터페이스 VPC 엔드포인트
인터넷을 거치지 않고 S3, DynamoDB를 제외한 모든 AWS 리소스에 접근할 수 있게 해준다.
✅ PrivateLink
PrivateLink는 인터넷을 거치지 않고 특정 VPC의 사용자가 다른 VPC에 있는 애플리케이션에 접속하게 만들고 싶을 때 사용한다. 인터넷을 거치지 않고 통신을 하기 때문에 보안을 위해 많이 사용한다.
✅ VPC 피어링
VPC 피어링(Peering)은 인터넷을 거치지 않고 서로 다른 VPC를 사설 네트워크로 직접 연결하는 기능을 의미한다.
✅ NAT Gateway vs VPC Endpoint vs PrivateLink vs VPC 피어링
[공통점]
VPC 내부에서 외부(AWS 서비스, 애플리케이션, 인터넷)로 연결
[차이점]
NAT Gateway : 외부 인터넷 연결용 / Private EC2 -> 인터넷
VPCEndpoint : AWS 서비스 연결용 / VPC -> (인터넷 연결 없이) → AWS 서비스
PrivateLink : 애플리케이션 연결용 / VPC -> (인터넷 연결 없이) → 다른 VPC의 애플리케이션