cloud

AWS - Subnet

AWS에서 VPC를 만들면 하나의 큰 네트워크가 생깁니다. 하지만 이 큰 네트워크를 그대로 쓰기보다는, 더 작은 조각으로 나눠서 쓰는 게 관리와 보안에 유리합니다. 이렇게 VPC를 잘게 나눈 단위를 서브넷(Subnet) 이라고 부릅니다. 서브넷은 VPC보다 작은 주소 범위를 사용합니다. 그래서 서브넷 마스크(네트워크 크기를 정하는 기준표 /24 /16)의 값이 더 높아지고, 실제로 쓸 수 있는 IP 개수는 줄어듭니다. 쉽게 말해, 큰 도로망(VPC)을 여러 개의 동네(Subnet)로 나누는 것과 비슷합니다.


Subnet이란

서브넷은 VPC 내부에서 IP 주소 범위를 더 작게 나눈 네트워크 단위입니다. 각 서브넷은 반드시 하나의 가용영역(AZ)에만 속하며, 인터넷과 연결되는 퍼블릭 서브넷과 내부 전용으로 사용하는 프라이빗 서브넷으로 나눌 수 있습니다. 또한 어떤 리소스를 어떤 서브넷에 배치하느냐에 따라 보안 수준과 트래픽 제어 방식이 달라집니다. 예를 들어, VPC가 10.0.0.0/16이라면 이를 10.0.1.0/24, 10.0.2.0/24와 같이 더 작은 주소 범위의 서브넷으로 나눌 수 있습니다.

퍼블릭 서브넷은 인터넷 게이트웨이(Internet Gateway)와 연결되어 외부 인터넷과 직접 통신할 수 있는 서브넷입니다. 주로 웹 서버, 로드 밸런서처럼 외부 사용자나 서비스 요청을 받아야 하는 리소스들이 이곳에 배치됩니다. 즉, 외부 접근이 필요한 자원들을 두는 네트워크 구역이라고 할 수 있습니다.

프라이빗 서브넷은 인터넷 게이트웨이와 직접 연결되지 않아 외부에서 바로 접근할 수 없는 서브넷입니다. 대신 NAT 게이트웨이나 VPN을 통해 제한적으로 외부와 통신할 수 있으며, 주로 데이터베이스, 내부 애플리케이션 서버 등 보안이 중요한 리소스를 배치하는 데 사용됩니다. 외부에서 직접 접근할 필요가 없는 자원들을 안전하게 보호하는 역할을 합니다.

결국 퍼블릭 서브넷과 프라이빗 서브넷을 적절히 조합하면 보안성과 확장성을 동시에 확보할 수 있습니다. 예를 들어 사용자가 접속하는 웹 서버는 퍼블릭 서브넷에 두고, 그 웹 서버가 데이터를 주고받는 데이터베이스는 프라이빗 서브넷에 두는 방식입니다. 이렇게 구성하면 서비스는 원활히 제공되면서도 핵심 데이터는 안전하게 보호할 수 있습니다.


서브넷 사용이유

서브넷을 사용하는 가장 큰 이유는 리소스를 분리하고 보안을 강화하며, 가용성을 확보하고 네트워크를 효율적으로 관리하기 위해서입니다. 예를 들어 EC2나 RDS 같은 리소스를 각각 다른 서브넷에 격리해 배치하면 보안 그룹이나 접근 권한을 세분화할 수 있습니다. 또한 인터넷과 직접 연결해야 하는 리소스는 퍼블릭 서브넷에 두고, 내부 전용으로만 사용하는 리소스는 프라이빗 서브넷에 두어 보안을 강화할 수 있습니다. 여기에 더해 여러 가용영역(AZ)에 걸쳐 서브넷을 분산 배치하면 장애가 발생했을 때도 서비스 가용성을 유지할 수 있습니다. 마지막으로 라우팅 테이블, ACL, 보안 그룹 등을 통해 트래픽 흐름을 세밀하게 제어할 수 있어 네트워크 관리가 훨씬 용이해집니다.


정리

서브넷은 VPC 내부에서 더 작은 네트워크 단위를 의미하며, 하나의 가용영역(AZ)에 속해 리소스를 배치하는 기본 단위가 됩니다. 보안, 가용성, 관리 효율성 측면에서 반드시 고려해야 하는 중요한 요소이며, 특히 퍼블릭 서브넷과 프라이빗 서브넷을 구분하는 것은 네트워크 접근을 제어하는 핵심적인 방법이라고 할 수 있습니다.


참고자료