AWS Advanced Networking: VPC와 서브넷 구조 이해하기

2026. 3. 28. 16:45·☁️Cloud/AWS: Certificate Advanced Networking

VPC 란?

  • Amazon VPC(Virtual Private Cloud)는 “내가 정의한 가상 네트워크” 안에 AWS 리소스(EC2/RDS/ALB 등)를 배치하는 서비스.
  • 온프레미스 네트워크(스위치/라우터/서브넷/방화벽) 구조를 클라우드에서 비슷하게 구현하고, AWS의 확장성을 활용한다.

라우팅 관점: Subnet / Route Table / Internet gateway

Subnet은 “AZ 단위로 쪼갠 네트워크 구간”

  • 서브넷 1개는 반드시 1개 AZ에만 속함.

Route Table은 “트래픽 길 안내 표”

  • 라우트 테이블은 서브넷/VPC로 들어오고 나가는 트래픽의 경로 규칙을 가진다. 
  • VPC에는 Main Route Table이 있고, 서브넷별로 Custom Route Table을 붙일 수도 있다. 
  • 모든 라우트 테이블에는 삭제 불가능한 local route(VPC CIDR → local)가 기본으로 들어있고, 이게 같은 VPC 내 서브넷 간 통신 기반이 된다.

Internet Gateway(IGW)

  • 서브넷이 인터넷과 통신하려면 라우팅에 0.0.0.0/0 → IGW가 필요하다. 
  • “서브넷 A만 인터넷 되게” 하려면: 서브넷 A에 연결된 라우트 테이블에만 0.0.0.0/0 → IGW를 넣고, 다른 서브넷은 해당 라우트 테이블을 따르지 않게 분리한다.

Public Subnet, Private Subnet

Public Subnet

  • "인터넷으로 나가는 라우트(0.0.0.0/0 → IGW)가 있는 서브넷"
  • Public IP가 있는 인스턴스는 인터넷 통신 가능
  • 예: NAT, 웹 서버, 로드밸런서

Private Subnet

  • “인터넷으로 나가는 라우트가 없는 서브넷”
  • 인스턴스는 Private IP만 받음
  • 인터넷 아웃바운드가 필요하면 보통 NAT를 사용
  • 예: DB, App 서버

Subnet의 IPv4 주소: "AWS가 5개 IP 무조건 예약"

서브넷마다 AWS가 처음 4개 + 마지막 1개 IP를 예약해서 인스턴스에 할당 불가. 

예) 10.0.0.0/24일 때 예약:

  • 10.0.0.0 : 네트워크 주소
  • 10.0.0.1 : VPC 라우터용
  • 10.0.0.2 : Amazon 제공 DNS 매핑용
  • 10.0.0.3 : 미래 사용 예약
  • 10.0.0.255 : 브로드캐스트(※ VPC는 broadcast 미지원이라 예약)

VPC에서의 IP 종류: Private / Public / Elastic IP(EIP)

Private IP

  • 서브넷 CIDR 범위에서 할당 (VPC 내부 통신의 기본) 

Public IP

  • AWS의 Public IP 풀에서 할당
  • 인스턴스를 Stop/Start 하면 바뀔 수 있음. 

Elastic IP(EIP)

  • 내 계정에 할당(allocate)해두고 유지하는 고정 Public IPv4
  • Stop/Start 해도 안 바뀌고, 다른 인스턴스로 재매핑 가능 
  • “공인 IP를 고정해야 하는데, 인스턴스가 바뀔 수도 있다” → EIP가 대표 해법

VPC 보안 2대장: Security Group vs Network ACL

Security Group(SG): “인스턴스(ENI) 단위 방화벽”

  • Stateful: 인바운드 허용으로 들어온 트래픽의 리턴은 아웃바운드에 따로 룰 없어도 허용되는 개념 
  • 기본값: Inbound deny, Outbound allow all

Network ACL(NACL): “서브넷 단위 방화벽”

  • Stateless: 인바운드/아웃바운드 각각 룰을 명시해야 함 
  • Allow/Deny 둘 다 가능, 룰 번호 순서대로 평가 
  • “서브넷 레벨에서 특정 IP를 차단” 같은 용도로 좋음 

Private Subnet에서 인터넷 아웃바운드: NAT Gateway / NAT Instance

NAT의 목적

  • Private Subnet 인스턴스가 IGW 없이 인터넷으로 나가게 해주는 장치(패킷이 VPC 밖으로 나갈 때 NAT 수행)

NAT Gateway (관리형)

  • AWS가 관리, AZ 내에서 HA 성격
  • NAT GW는 반드시 Public Subnet에 생성해야 인터넷과 통신 가능 
  • 생성 시 EIP를 붙여서 아웃바운드 출구 IP를 고정 
  • NAT GW 자체에는 SG를 붙이지 않고(관리형), 제어는 주로 서브넷 NACL 등으로 한다는 포인트가 나온다. 
  • Private Subnet 라우팅은 0.0.0.0/0 → NAT GW로 설정

NAT GW 고가용성(중요)

  • NAT GW는 “단일 AZ 내에서”는 resilient이지만, AZ 장애 대비는 AZ별 NAT GW를 따로 만들어야 한다. 

NAT Instance (직접 운영)

  • Public Subnet에 EC2로 NAT 서버를 띄우는 방식
  • 요구사항: Public/EIP 필요, Source/Destination check 비활성화 필수 
  • Private Subnet 라우트 테이블의 기본 경로를 NAT Instance ID로 보냄  (운영/패치/장애조치까지 전부 직접 해야 함)
저작자표시 비영리 변경금지 (새창열림)

'☁️Cloud > AWS: Certificate Advanced Networking' 카테고리의 다른 글

AWS Advanced Networking: VPC CIDR 이해하기  (0) 2026.03.28
'☁️Cloud/AWS: Certificate Advanced Networking' 카테고리의 다른 글
  • AWS Advanced Networking: VPC CIDR 이해하기
Diven
Diven
  • Diven
    Diven
    Diven
  • 전체
    오늘
    어제
    • 분류 전체보기 (110) N
      • ☁️Cloud (21) N
        • AWS (2)
        • Alibaba (14) N
        • OCI (1)
        • AWS: Certified Solution Arc.. (0)
        • AWS: Certificate Advanced N.. (2) N
      • 📊DB (13)
        • MongoDB (8)
        • MariaDB (2)
        • PostgreSQL (2)
        • MySQL (1)
      • 🧑🏽‍💻Dev:Lang (9)
        • C++ (0)
        • GO (1)
        • Python (8)
      • ⚙️DevOps (4)
        • CICD (0)
        • Jenkins (4)
      • 🐳Docker (15)
      • 🪢laC (0)
      • ⚓K8s (7)
      • 🐧Linux (25)
      • 🖥️Monitoring (10)
        • Grafana (1)
        • Prometheus (6)
        • Loki (1)
        • ELK (2)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    alertmanager
    SSL
    알리바바 클라우드
    mongoDB
    NGINX
    Cloud
    alb
    mariadb
    Python
    AWS
    jenkins
    MySQL
    k8s
    linux
    Alibaba
    PolarDB
    centOS7
    db
    docker
    prometheus
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Diven
AWS Advanced Networking: VPC와 서브넷 구조 이해하기
상단으로

티스토리툴바