VPC & Subnet 이해하기(Public/Private Subnet, IGW, NAT)

2026. 6. 4. 11:13·Infra
반응형

VPC?

AWS라는 전 세계적인 공용 인프라에서 내 서버를 아무 곳에나 띄우게 되면 남의 서버랑 섞이게 될 것이다.

그래서 AWS에서 나의 전용 네트워크 공간을 따로 떼어서 사용하는 것이 VPC(Virtual Private Cloud)이다.

 

비유하자면  AWS라는 빌딩 단지에서 내가 건물 한 채를 통째로 빌리는 것이다. 이 건물 안에서 일어나는 일은 기본적으로 내 것이고, 옆 건물(다른 VPC)이랑은 벽으로 막혀 있어서 서로 들어올 수 없다.

 

VPC를 만들 때 이 건물에 쓸 IP 대역인(CIDR)를 정해야 한다.

보통 10.0.0.0/16(약 65000개 IP)로 넉넉하게 잡는다. 한 번 정하면 줄일 수 없기 때문에 일단 크게 빌려두는 것이다.

 

Subnet?

VPC라는 건물을 빌려서 사용할 때 건물을 통째로 사용하지 않는다. 각 방을 나누어서 사용하게 되는데 이때 그 방 하나하나를 Subnet이라고 부른다.

 

Subnet은 VPC의 큰 대역인 /16을 더 작은 대역 /24로 쪼갠 것이다. 건물 전체 주소인 10.0.x.x를 10.0.1.x, 10.0.2.x와 같은 방식으로 나눠 갖는 방식이다.

 

굳이 방들을 나누는 이유는 무엇인가? 방마다 출입 규칙을 다르게 지정하기 위함이다.

어떤 방은 외부에서 출입이 가능하게(웹 서버), 어떤 서버는 외부에서 절대 못 들어오게(DB) 만들고 싶기 때문이다. 방을 나누지 않으면 이런 규칙을 분리하는 것이 불가능하다.

 

Public Subnet vs Private Subnet

Subnet은 크게 두 종류로 나눌 수 있다.

 

Public Subnet은 이 건물의 1층 로비로 비유할 수 있다. 건물 정문으로 가는 길이 뚫려 있어서 외부 손님이 드나들 수 있다.

웹 서버, 로드밸런서와 같은 외부와 직접적으로 접촉하는 것들이 이곳에 포함된다.

 

Private Subnet은 건물 안쪽에 각 사무실로 비유할 수 있다. 건물 정문으로 가는 길 자체가 없어서 외부 손님이 직접 들어올 수 없다. DB, 앱 서버와 같은 숨겨야 하는 것들이 이곳에 포함된다.

 

Subnet을 Public/Private으로 가르는 기준은 정문으로 가는 길이 있는가 없는가 차이이다. 즉

 

라우팅 테이블에 IGW(Internet Gate Way)로 가는 길이 있으면 Public, 없으면 Private이다.

 

Public Subnet이라고 무조건 외부와 통신이 가능한 것은 아니다. 그러기 위해선 아래의 조건들을 만족해야 한다.

  1. IGW가 VPC에 붙어있어야 한다.
  2. 라우팅 테이블에 IGW로 라우팅 경로가 적혀있어야 한다.
  3. 해당 서버에 Public IP(공인 IP)가 부여되어 있어야 한다.

 

 Routing, IGW, NAT

Routing Table은 Destination과 Target을 통해 트래픽이 어느 대역으로 가야 하는지 규칙을 정의한 목록이다.

구분 Destination (목적지) Target (어디로 보낼지)
A 10.0.0.0/16 local
B 0.0.0.0/0 igw-xxxx

 

위 테이블은 Public Subnet에 붙어있는 규칙이다.

 

테이블을 해석해보면 A는 밖으로 내보내지 말고 VPC 내부의 주소로 가는 것이기 때문에 내부에서 직접 전달하라는 의미이고, B는 위에서 걸리지 않은 나머지 주소 전체를 IGW로 보내라는 의미이다. 이 의미가 그 방을 Public으로 만들게 된다.

 

구분 Destination (목적지) Target (어디로 보낼지)
A 10.0.0.0/16 local
B 0.0.0.0/0 nat-xxxx

 

위 테이블은 Private Subnet에 붙어있는 규칙이다.

 

테이블을 해석해보면 A는 똑같다. B는 위에서 걸리지 않은 나머지 주소 전체를 NAT로 보내라는 의미이다. 이게 Private이 밖으로 나가는 길이다.

 

이 때 Subnet 1개에는 라우팅 테이블 1개만 연결이 가능하다.

 

IGW와 NAT의 차이점을 정리해보면,

 

IGW는 VPC와 인터넷을 양 방향으로 통신이 가능하고, VPC당 1개만 붙일 수 있다.

 

NAT는 아웃바운드만 가능하며, Private 방의 서버가 외부로 먼저 통신을 요청할 때 사용하는 통로이다.

하지만 NAT 자신은 public Subnet에 존재하며, Private 서버 -> NAT(Public에 있음) -> IGW -> 인터넷 순으로 통신한다는 것을 헷갈리면 안된다.

 

 

 

 

반응형

'Infra' 카테고리의 다른 글

방화벽 이해하기 Security Group vs NACL  (0) 2026.06.04
Public/Private IP 이해하기(IGW, NAT)  (0) 2026.05.25
Web Server / Web Application Server 이해하기  (0) 2026.05.25
CDN(Content Delivery Network)에 대해 이해하기  (0) 2026.05.25
Proxy/Reverse Proxy 이해하기  (0) 2026.05.25
'Infra' 카테고리의 다른 글
  • 방화벽 이해하기 Security Group vs NACL
  • Public/Private IP 이해하기(IGW, NAT)
  • Web Server / Web Application Server 이해하기
  • CDN(Content Delivery Network)에 대해 이해하기
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (175)
      • SW 마에스트로 (1)
      • 알고리즘 (130)
      • CS (13)
      • Java (6)
      • 자기개발 (18)
      • Infra (6)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    IGW/NAT
    작심삼일 챌린지
    파이썬
    reverse proxy
    알고리즘
    SW 마에스트로
    springboot
    OS
    SWEA
    코딩테스트
    NACL
    Infra
    백준
    인프런
    python
    async
    컴퓨터 구조
    java
    completablefuture
    Redis
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
VPC & Subnet 이해하기(Public/Private Subnet, IGW, NAT)
상단으로

티스토리툴바