여기서 가장 중요한 한 가지: 서브넷 이름이 'Private'라서 프라이빗인 게 아닙니다. 프라이빗을 만드는 건 연결될 라우팅 테이블입니다.
퍼블릭 서브넷 → Public-RT(0.0.0.0/0 → IGW) → 외부 양방향
프라이빗 서브넷 → Private-RT(0.0.0.0/0 경로 없음 또는 → NAT) → 외부 차단
그래서 프라이빗 영역을 만들 땐 서브넷 + 전용 라우팅 테이블을 한 쌍으로 준비합니다. 이번 편은 그 한 쌍을 만들고, 다음 편에서 NAT 게이트웨이로 "아웃바운드만" 길을 열어줍니다.
01~02. 프라이빗 서브넷 생성
VPC → 서브넷 → 서브넷 생성.
설정값:
항목
값
비고
VPC
My-VPC
서브넷 이름
Private-Subnet
이름은 라벨일 뿐
가용 영역
ap-northeast-2c
퍼블릭(2a)과 다른 AZ
IPv4 서브넷 CIDR
10.9.2.0/24
퍼블릭(10.9.1.0/24)과 비중첩
왜 AZ를 다르게(2c) 잡았나? 퍼블릭은 ap-northeast-2a, 프라이빗은 ap-northeast-2c로 서로 다른 가용 영역에 뒀습니다. 한 AZ에 장애가 나도 다른 AZ가 살아남는 고가용성(HA) 의 기본 패턴입니다. (학습용 단일 AZ로 해도 동작엔 문제없지만, 교과서적 구성은 AZ 분리)
CIDR 10.9.2.0/24 두 번째 옥텟 뒤를 1(퍼블릭) → 2(프라이빗)로 구분했습니다. VPC(10.9.0.0/16) 범위 안이고, 퍼블릭과 겹치지 않습니다. (256개 중 5개 예약 → 실사용 251)
03. 프라이빗 라우팅 테이블 생성
VPC → 라우팅 테이블 → 라우팅 테이블 생성.
이름: Private-RT
VPC: My-VPC
라우팅 테이블 설정(Private-RT / My-VPC) + 생성된 RT 상세생성 직후 라우팅을 보면 10.9.0.0/16 → local 한 줄뿐입니다.
⚠️ 이 상태 = 완전 격리 — 0.0.0.0/0 경로가 없으므로, Private 서브넷의 자원은 외부에서 들어오는 것은 물론, 밖으로 나가는 것(아웃바운드)도 불가합니다. (예: yum update도 안 됨)
이건 버그가 아니라 의도입니다. 다음 편에서 NAT 게이트웨이를 두고 0.0.0.0/0 → NAT를 추가하면 "나가는 것만" 열립니다.
💡 명시적 서브넷 연결: – 으로 표시됩니다. 아직 Private-RT를 Private-Subnet에 연결하지 않았다는 뜻입니다. (연결 전까지 Private-Subnet은 기본 RT를 사용)
04. Private-RT를 Private-Subnet에 연결
라우팅 테이블을 만들기만 해선 효력이 없습니다. 서브넷에 연결(Association) 해야 비로소 적용됩니다.
Private-RT 선택 →서브넷 연결탭 →서브넷 연결 편집→ Private-Subnet 체크 → 저장.
라우팅 테이블 목록(Private-RT의 명시적 서브넷 연결 = Private-Subnet) + 서브넷 연결 탭 상세
연결 후 확인 포인트:
명시적 서브넷 연결 (1): Private-Subnet(subnet-0d57…, 10.9.2.0/24)이 표시됨 → 이제 이 서브넷은 Private-RT를 사용
명시적 연결이 없는 서브넷 (0): "모든 서브넷이 라우팅 테이블에 연결되어 있습니다" → Public·Private 둘 다 명시적으로 연결된 상태 (실무 권장 패턴)
💡 라우팅 테이블 목록을 보면 default(기본 RT, 기본=예)는 명시적 연결이 비어 있습니다. 두 서브넷을 모두 커스텀 RT에 명시적으로 연결했기 때문에, 기본 RT는 아무 서브넷도 관할하지 않습니다. 이게 "기본 RT는 안전하게 비워두고, 모든 서브넷은 명시적 연결"이라는 관례 그대로입니다.
⚠️ 연결했어도 아직 외부 격리 — Private-RT엔 여전히 10.9.0.0/16 → local뿐입니다. 즉 서브넷 연결을 마쳐도 0.0.0.0/0 경로가 없어 아웃바운드 인터넷은 불가합니다. 이걸 여는 게 바로 다음 편의 NAT 게이트웨이입니다.
마치며
프라이빗 영역의 서브넷 + 전용 RT + 연결까지 마쳤습니다. 이제 Private-Subnet은 의도한 Private-RT를 사용하며, 아직 외부와 완전히 격리된 상태입니다. 핵심 한 줄:
"연결까지 해도 경로가 없으면 여전히 갇혀 있다 — 격리는 의도된 기본값이다."
남은 단 하나는 나가는 길입니다. 다음 편에서 NAT 게이트웨이 + EIP를 만들고 Private-RT에 0.0.0.0/0 → NAT 경로를 추가해, 프라이빗 서버가 외부로 나가기만 할 수 있는 구조를 완성합니다.