Introduction

VPC의 주소 공간 설계는 IP 할당의 유연성과 확장성을 결정하는 가장 기초적인 의사결정입니다. 이 글에서는 CIDR 표기법부터 보조 CIDR 블록, IPv6 지원, 그리고 엔터프라이즈 환경에서의 설계 원칙까지 VPC의 주소 공간을 효과적으로 설계하는 방법을 살펴봅니다.

CIDR 블록 설계

CIDR이란

CIDR(Classless Inter-Domain Routing)1은 IP 주소 범위를 표기하는 방법이다. 예를 들어 10.0.0.0/1610.0.0.0부터 10.0.255.255까지 총 65,536개의 IP 주소를 포함하는 범위를 의미한다. 슬래시 뒤의 숫자는 네트워크 프리픽스의 비트 수를 나타내며, 이 숫자가 작을수록 더 많은 호스트 주소를 사용할 수 있다.

VPC 생성 시 가장 먼저 결정하는 것이 바로 이 CIDR 블록이다. AWS는 RFC 1918에서 정의한 사설 IP 대역의 사용을 권장한다.

대역범위용도
10.0.0.0/810.0.0.0 ~ 10.255.255.255대규모 엔터프라이즈
172.16.0.0/12172.16.0.0 ~ 172.31.255.255중규모 조직
192.168.0.0/16192.168.0.0 ~ 192.168.255.255소규모·개발 환경

AWS VPC는 /16(65,536개 IP)부터 /28(16개 IP)까지의 서브넷 마스크를 지원한다. 가용 IP의 수는 다음과 같이 계산한다.

가용 호스트 수=2(32prefix)5\text{가용 호스트 수} = 2^{(32 - \text{prefix})} - 5

여기서 5를 빼는 이유는 AWS가 각 서브넷에서 다섯 개의 IP를 예약하기 때문이다.

예약 IP용도
첫 번째 (x.x.x.0)네트워크 주소
두 번째 (x.x.x.1)VPC 라우터
세 번째 (x.x.x.2)AWS DNS 서버
네 번째 (x.x.x.3)AWS 예약 (향후 사용)
마지막 (x.x.x.255)브로드캐스트 주소2

보조 CIDR 블록

VPC 생성 후 IP 주소가 부족해지면, 기본 CIDR을 수정하는 대신 보조 CIDR 블록secondary CIDR block을 추가할 수 있다. 하나의 VPC에 최대 5개의 IPv4 CIDR 블록을 연결할 수 있으며(할당량 조정으로 확장 가능), 각 블록은 /16~/28 범위여야 한다.

보조 CIDR은 기본 CIDR과 겹치지 않아야 하며, RFC 1918 사설 대역 외에 100.64.0.0/10(CG-NAT 대역)3도 사용할 수 있다. 다만 보조 CIDR을 추가하면 라우팅 테이블이 복잡해지고, VPC 피어링 설정 시 양쪽 모두의 보조 CIDR까지 고려해야 하므로 초기 설계에서 충분한 주소 공간을 확보하는 것이 최선이다.

IPv6 CIDR 블록

VPC에는 IPv4 CIDR과 별도로 IPv6 CIDR 블록을 할당할 수 있다. AWS는 /56 크기의 IPv6 CIDR을 Amazon 풀에서 자동 할당하거나, BYOIP(Bring Your Own IP)4를 통해 조직이 보유한 IPv6 대역을 사용할 수 있다.

IPv6 서브넷은 /64 크기로 분할하며, 이는 서브넷당 2642^{64}개(약 1.8×10191.8 \times 10^{19}개)의 주소를 제공한다. IPv6에서는 모든 주소가 글로벌 유니캐스트이므로 NAT가 필요 없지만, 프라이빗 서브넷의 아웃바운드 전용 통신에는 Egress-only IGW를 사용한다. 2024년부터 퍼블릭 IPv4 주소에 시간당 $0.005가 부과되므로, IPv6 Dual-Stack 전환은 비용 절감의 실질적인 동기가 된다.

CIDR 설계 원칙

엔터프라이즈 환경에서 CIDR 설계의 가장 큰 과제는 IP 주소 중복 방지다. 여러 VPC를 피어링하거나 Transit Gateway로 연결할 때, CIDR이 겹치면 라우팅 충돌이 발생하여 통신이 불가능해진다. 이는 나중에 수정하기 매우 어려운 아키텍처 부채가 된다.

이를 해결하기 위한 전략은 다음과 같다.

  1. 초기에 충분히 큰 CIDR을 할당한다. VPC 생성 후 CIDR을 축소할 수 없으므로, /16 크기로 시작하고 서브넷을 작게 나누는 것이 안전하다. 보조 CIDR 블록을 추가할 수 있지만, 라우팅 복잡성이 증가하므로 초기 설계가 중요하다.
  2. Amazon VPC IPAM(IP Address Manager)을 활용한다. IPAM은 조직 전체의 IP 주소 할당을 중앙에서 자동화하고 모니터링하여, 중복 할당을 원천적으로 차단하고 IP 사용률을 시각화한다. IPAM은 AWS Organizations와 통합되어 멀티 계정 환경에서 IP 풀을 계층적으로 관리하며, 할당 규칙allocation rule을 정의하면 신규 VPC 생성 시 CIDR이 자동으로 부여된다. 대규모 멀티 VPC 환경에서는 사실상 필수적인 도구다.

셋째, 환경별로 대역을 구분한다. 예를 들어 10.0.0.0/8 대역을 다음과 같이 나눈다.

  • Production: 10.0.0.0/16 ~ 10.49.0.0/16
  • Staging: 10.50.0.0/16 ~ 10.59.0.0/16
  • Development: 10.60.0.0/16 ~ 10.69.0.0/16
  • On-premises: 10.100.0.0/16 ~

이렇게 대역을 사전에 할당하면, 새로운 VPC를 생성할 때 기존 네트워크와의 충돌을 걱정할 필요가 없다.

VPC 할당량

VPC 관련 주요 리소스에는 기본 할당량quota이 존재한다. 대규모 환경에서는 이 한도에 도달할 수 있으므로 사전에 인지하고, 필요 시 AWS Support를 통해 상향 요청해야 한다.

리소스기본 할당량조정 가능
리전당 VPC 수5
VPC당 서브넷 수200
VPC당 IPv4 CIDR 블록5예 (최대 50)
서브넷당 IPv4 CIDR 크기/16 ~ /28아니오
VPC당 라우팅 테이블200
라우팅 테이블당 경로 수50예 (최대 1,000)

출처

Footnotes

  1. CIDR(Classless Inter-Domain Routing) — 과거의 클래스 기반 IP 할당(Class A/B/C)을 대체하여, 가변 길이의 서브넷 마스크로 IP 주소 공간을 유연하게 분할하는 방식이다.

  2. AWS VPC는 브로드캐스트를 지원하지 않지만, 네트워크 표준에 따라 이 주소를 예약한다.

  3. CG-NAT(Carrier-Grade NAT) 대역 100.64.0.0/10 — ISP가 대규모 NAT에 사용하도록 IANA가 예약한 주소 공간이다. AWS VPC에서 보조 CIDR로 활용할 수 있어, RFC 1918 대역이 고갈된 대규모 환경에서 유용하다.

  4. BYOIP(Bring Your Own IP) — 조직이 소유한 공인 IP 주소 범위를 AWS에 등록하여, EIP나 VPC CIDR로 사용하는 기능이다. 기존 온프레미스 서비스의 IP를 유지한 채 클라우드로 마이그레이션할 때 유용하다.