실습 1-7 _ Private Subnet & Private RT

2026. 6. 6. 15:16·클라우드 컴퓨팅/AWS

 

실습 1-7 — Private Subnet & Private 라우팅 테이블: '격리 영역' 만들기

퍼블릭 쪽(서브넷·IGW·EC2)을 완성했습니다. 이제 외부에서 직접 닿을 수 없는 프라이빗 영역을 만듭니다. DB·내부 앱처럼 숨겨야 할 자원이 사는 곳입니다.

📌 이번 편 한눈에

질문 답
프라이빗 서브넷이 뭐가 다른가? 연결된 RT에 0.0.0.0/0 → IGW가 없음
왜 RT를 따로 만드나? 퍼블릭용(→IGW)과 섞지 않으려고
AZ는 왜 다르게? 퍼블릭=2a / 프라이빗=2c → 멀티 AZ(HA)
지금 상태는? local만 있어 완전 격리 (외부 아웃바운드도 아직 불가)

📎 서브넷·라우팅 테이블의 기본 개념은 실습 1-3(서브넷)·실습 1-1(라우팅 테이블)에서 다뤘습니다. 이번 편은 "프라이빗"이라는 성격에만 집중합니다.


개념 — '프라이빗'은 무엇으로 결정되나

여기서 가장 중요한 한 가지: 서브넷 이름이 '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 경로를 추가해, 프라이빗 서버가 외부로 나가기만 할 수 있는 구조를 완성합니다.


 

 

저작자표시 (새창열림)

'클라우드 컴퓨팅 > AWS' 카테고리의 다른 글

실습 1-9 _ NAT Gateway  (0) 2026.06.06
실습 1-8 _ Private EC2  (0) 2026.06.06
실습 1-6 _ EC2  (0) 2026.06.06
실습 1-5 _ IGW & RT Table  (0) 2026.06.06
실습 1-4 _ 라우팅 테이블 - 2  (0) 2026.06.06
'클라우드 컴퓨팅/AWS' 카테고리의 다른 글
  • 실습 1-9 _ NAT Gateway
  • 실습 1-8 _ Private EC2
  • 실습 1-6 _ EC2
  • 실습 1-5 _ IGW & RT Table
hyeseong-dev
hyeseong-dev
안녕하세요. 백엔드 개발자 이혜성입니다.
  • hyeseong-dev
    어제 오늘 그리고 내일
    hyeseong-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (301) N
      • 여러가지 (108)
        • 알고리즘 & 자료구조 (73)
        • 오류 (4)
        • 이것저것 (29)
        • 일기 (1)
      • 프레임워크 (39)
        • 자바 스프링 (39)
        • React Native (0)
      • 프로그래밍 언어 (39)
        • 파이썬 (31)
        • 자바 (3)
        • 스프링부트 (5)
      • 컴퓨터 구조와 운영체제 (3)
      • DB (17)
        • SQL (0)
        • Redis (17)
      • 클라우드 컴퓨팅 (17) N
        • 도커 (2)
        • AWS (15) N
      • 스케쥴 (65)
        • 세미나 (0)
        • 수료 (0)
        • 스터디 (24)
        • 시험 (41)
      • 트러블슈팅 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • 정보보안기사 (1)
        • 네트워크관리사 (0)
      • 재태크 (0)
        • 암호화폐 (0)
        • 기타 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Redis
    FastAPI
    파이썬
    백준
    spring
    reactor
    OOP
    프로그래머스
    Spring Boot
    WebFlux
    시험
    Docker-compose
    EC2
    항해99
    SAA
    mybatis
    celery
    RDS
    #개발자포트폴리오 #개발자이력서 #개발자취업 #개발자취준 #코딩테스트 #항해99 #취리코 #취업리부트코스
    완전탐색
    Python
    ecs
    docker
    Spring WebFlux
    DP
    그리디
    취업리부트
    자바
    java
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeseong-dev
실습 1-7 _ Private Subnet & Private RT
상단으로

티스토리툴바