본문으로 건너뛰기

서브넷

서브넷은 VPC 내에서 IP 주소를 부분적으로 분할하여 세분화한 네트워크 영역입니다. 각 서브넷은 특정 네트워크 영역을 대표하며, 이를 통해 VPC를 여러 개의 서브넷으로 분할하여 용도와 목적에 맞게 관리할 수 있습니다. 카카오클라우드의 VPC 서비스에서는 서브넷을 지정하여 BCS 인스턴스 등의 리소스를 생성할 수 있습니다. 다만, 서브넷은 특정한 단일 가용 영역(AZ)에 종속되며, 여러 AZ에 동시에 속하는 단일 서브넷을 구성할 수 없습니다.

VPC의 IP 주소 범위 내에서는 IPv4 CIDR 블록을 설정할 수 있습니다. 여러 AZ에 걸쳐 서브넷을 구성함으로써 애플리케이션을 분산 배치할 수 있습니다. 이렇게 함으로써 특정 AZ에서 장애가 발생하더라도 애플리케이션의 지속적인 가용성을 보장할 수 있습니다.

서브넷 다이어그램

다음 다이어그램에서는 한 리전에 있는 2개의 VPC를 보여줍니다. 각 VPC에는 퍼블릭 및 프라이빗 서브넷과 인터넷 게이트웨이가 있습니다.

Subnet 서브넷 다이어그램(kr-central-2 기준)

서브넷 유형

서브넷의 라우팅 구성 방법에 따라 퍼블릭 서브넷 또는 프라이빗 서브넷으로 구성할 수 있습니다.

  • 퍼블릭 서브넷: 퍼블릭 서브넷은 연결된 라우팅 테이블에 인터넷 게이트웨이로의 경로(Route) 설정이 있는 서브넷을 의미합니다. 이 경로를 통해 퍼블릭 서브넷 상의 리소스는 인터넷에 접근할 수 있습니다.

  • 프라이빗 서브넷: 프라이빗 서브넷은 연결된 라우팅 테이블에 인터넷 게이트웨이로의 경로(Route) 설정이 없는 서브넷을 의미합니다. 프라이빗 서브넷의 리소스에는 퍼블릭 인터넷에 액세스하기 위해 NAT 인스턴스가 필요합니다.


서브넷을 생성 시에는 VPC 구성에 따라 다음을 참고하여 IP 주소를 지정합니다.

  • 서브넷의 리소스는 IPv4를 통해 통신해야 합니다.
  • 서브넷의 유형과 관계없이 서브넷의 IPv4 주소 범위는 항상 Private IP입니다.

서브넷 IP CIDR 블록

인스턴스가 특정 서브넷에 배포되면 IP 주소 범위 중에서 하나의 IP가 무작위로 할당됩니다. 서브넷의 IP 주소 범위는 Classless Inter-Domain Routing(CIDR) 표기법을 사용하여 지정할 수 있습니다. 서브넷의 CIDR 블록은 해당 VPC의 CIDR 블록과 동일하거나 그보다 작은 범위로 설정할 수 있습니다. 여러 개의 서브넷을 구성할 수 있으며, 각 서브넷의 허용 가능한 CIDR 블록 크기는 /24 넷마스크에서부터 /20 넷마스크까지입니다. 여러 개의 서브넷을 VPC 내에 생성할 경우, 버스의 CIDR 블록이 서로 겹치지 않도록 주의해야 합니다.

예를 들어 CIDR 블록이 10.0.0.0/16인 VPC를 만들 경우 65,536개의 IP 주소를 지원합니다. 이 경우, 다음과 같이 이 CIDR 블록을 각각 4,096개의 IP 주소를 지원하는 2개의 서브넷으로 나눌 수 있습니다.

  • VPC CIDR 블록: 10.0.0.0/16
    • 서브넷 #1: 10.0.0.0/20 CIDR 블록 (10.0.0.0~10.0.15.255 사이의 주소)
    • 서브넷 #2: 10.0.16.0/20 CIDR 블록 (10.0.16.0~10.0.31.255 사이의 주소)
안내

효과적인 VPC 활용을 위해 서브넷 CIDR 블록 설계가 중요합니다. 인터넷에서 IPv4 서브넷 CIDR 블록을 계산하고 생성하는 데 도움이 되는 도구로 '서브넷 계산기' 또는 'CIDR 계산기'와 같은 용어를 검색하여 필요에 맞는 도구를 선택하여 계산할 수 있습니다.

서브넷의 라우팅 테이블 연결 및 관리

각 서브넷은 서브넷 외부로 나가는 아웃바운드 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야 합니다. 생성된 각 서브넷은 자동으로 VPC의 기본 라우팅 테이블에 연결됩니다. 모든 서브넷은 연결된 라우팅 테이블을 변경할 수 있습니다. 자세한 설명은 라우팅 테이블 문서를 참고하시기 바랍니다.

서브넷 삭제

서브넷이 더 이상 필요하지 않으면 삭제할 수 있습니다. 네트워크 인터페이스가 포함된 서브넷은 삭제할 수 없습니다. 예를 들어 서브넷의 모든 인스턴스(로드 밸런서 포함)를 삭제해야 서브넷을 삭제할 수 있습니다.