실습 1-9 _ NAT Gateway

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

실습 1-9 — NAT Gateway: 프라이빗의 '나가는 길' 완성 & 리소스 정리

프라이빗 서버는 외부에서 못 들어오지만, 자기가 먼저 나가는 것(패키지 다운로드 등) 은 필요합니다. 그 출구가 NAT 게이트웨이입니다. 이번 편으로 전체 아키텍처가 완성되고, 마지막에 비용을 막기 위한 정리(삭제) 까지 합니다.

 

📌 이번 편 한눈에

 

질문 답

NAT GW가 왜 필요? 프라이빗 서버의 아웃바운드 전용 출구
어디에 두나? 퍼블릭 서브넷 (IGW 경로가 있는 곳)
필수 준비물 EIP(고정 공인 IP)
마지막에? 반드시 삭제 — NAT GW는 시간당 과금

개념 — NAT GW는 '단방향 출구'

IGW 편에서 IGW는 양방향이라 했습니다. NAT GW는 다릅니다.

  • NAT GW = 아웃바운드 전용: 내부가 먼저 시작한 연결만 내보내고, 응답을 되돌려줍니다. 외부가 먼저 들어오는 건 불가.
  • 그래서 프라이빗 서버는 NAT GW로 나갈 수만 있고, 외부 노출은 막힙니다.
  • NAT GW는 출발지 IP를 자신의 EIP로 변환(SNAT) 해 내보냅니다.

⚠️ NAT GW는 반드시 퍼블릭 서브넷에 둡니다. NAT GW 자신이 인터넷으로 나가려면 0.0.0.0/0 → IGW 경로가 있는 서브넷(=퍼블릭)에 있어야 하기 때문입니다.


01~02. NAT 게이트웨이 생성

VPC → NAT 게이트웨이 → NAT 게이트웨이 생성.

🖼️ [이미지] NAT 게이트웨이 목록(비어 있음)

 

설정값:

항목 값 설명

이름 My-NAT-GW  
가용성 모드 영역별(Zonal) 특정 AZ 내 세분화 제어
서브넷 Public-Subnet NAT GW가 살 곳(퍼블릭!)
연결 유형 퍼블릭 인터넷 아웃바운드용
탄력적 IP 할당 ID 탄력적 IP 할당 클릭 EIP 새로 발급·연결

 

 

가용성 모드 — 영역별 vs 리전별

  • 영역별(Zonal): 지정한 단일 AZ에서 동작(전통 방식). 여러 AZ에 HA가 필요하면 AZ마다 NAT GW를 따로 둡니다.
  • 리전별(Regional, 신규): 리전 내 AZ에 자동 확장되어 다중 AZ 관리를 간소화.

 

🖼️ [이미지] NAT 게이트웨이 설정 화면 + 생성 직후 상태 Pending → Available

 

 

생성 직후 상태는 Pending, 잠시 후 Available 이 됩니다.


 

03. EIP(탄력적 IP) 확인

NAT GW에 붙은 EIP를 확인합니다. VPC → 탄력적 IP → 태그 My-EIP 추가.

🖼️ [이미지] EIP 상세 — My-EIP(13.124.116.211) / NAT 게이트웨이 ID = My-NAT-GW


이 EIP가 프라이빗 서버들이 밖으로 나갈 때의 공통 출발지 주소가 됩니다. 고정이라 외부에서 보면 항상 같은 IP로 보입니다.


04. Private-RT에 NAT 경로 추가

NAT GW를 만들어도, "외부로 갈 땐 NAT로 가라"는 이정표가 없으면 소용없습니다. Private-RT에 경로를 넣습니다.

VPC → 라우팅 테이블 → Private-RT → 라우팅 탭 → 라우팅 편집.

🖼️ [이미지] Private-RT 라우팅 — 현재 10.9.0.0/16 → local 하나뿐

라우팅 추가 → 대상 0.0.0.0/0 → 대상 리소스 NAT 게이트웨이 → My-NAT-GW → 변경 사항 저장.

🖼️ [이미지] 라우팅 편집(0.0.0.0/0 → nat-…(My-NAT-GW)) + 저장 후 라우팅(2)

 

저장하면 Private-RT가 0.0.0.0/0 → My-NAT-GW / 10.9.0.0/16 → local 두 개가 됩니다. (NAT GW 생성 + 이 경로 추가가 항상 짝입니다)


05. 검증 — PrivateEC2에서 ping

Bastion(PublicEC2)을 거쳐 PrivateEC2에 접속한 뒤:

ping -c 3 www.google.com

🖼️ [이미지] ip-10-9-2-241에서 ping 성공 — 0% packet loss

0% packet loss로 응답이 오면, 공인 IP가 없는 프라이빗 서버가 NAT GW를 통해 외부로 나갔다가 돌아온 것입니다. 아웃바운드 격리 구조가 정상 동작함을 확인했습니다.

💡 외부에서 PrivateEC2로 직접 ping/접속은 여전히 불가합니다. NAT는 아웃바운드 전용이니까요. "나가는 건 되고, 들어오는 건 안 된다"가 핵심입니다.


IX. 실습 정리 — 리소스 삭제 (★비용 주의)

⚠️ NAT GW와 EIP는 그냥 두면 계속 과금됩니다. NAT GW는 시간당 요금 + 데이터 처리 요금, EIP는 미사용 시 요금. 실습이 끝나면 반드시 삭제하세요.

 

종속성 때문에 순서가 중요합니다.

  1. EC2 인스턴스 종료 — PublicEC2, PrivateEC2 모두 선택 → 인스턴스 상태 → 인스턴스 종료(삭제)
  2. NAT 게이트웨이 삭제 — My-NAT-GW → 작업 → NAT 게이트웨이 삭제
  3. EIP 릴리즈 — My-EIP → 작업 → 탄력적 IP 주소 릴리즈 (안 풀면 과금 지속)
  4. VPC 삭제 — My-VPC → 작업 → VPC 삭제 (서브넷·RT·IGW·SG 등 종속 리소스가 함께 정리됨)

💡 삭제 순서의 원리 — "안에 든 것(EC2) → 비싼 것(NAT GW·EIP) → 컨테이너(VPC)" 순. VPC는 내부 리소스가 남아 있으면 삭제가 막히므로 마지막입니다.


마치며 — 전체 아키텍처 완성

이로써 퍼블릭/프라이빗 분리 + Bastion + NAT 의 표준 구조를 직접 손으로 완성했습니다.

인터넷 ─ IGW ─ 퍼블릭 서브넷(Bastion, NAT GW)
                     │
       프라이빗 서브넷(PrivateEC2) ─ NAT GW로 아웃바운드만

기억할 한 줄:

"들어오는 문(IGW)과 나가는 문(NAT GW)은 다르다. 그리고 실습이 끝나면 비싼 문부터 닫는다."

VPC부터 NAT까지 한 바퀴를 돌며, "퍼블릭/프라이빗은 라우팅이 정한다", "방화벽은 NACL(서브넷)+SG(인스턴스) 2중", "NAT는 아웃바운드 전용" 이라는 핵심을 직접 확인했습니다. 수고하셨습니다!


NAT GW의 아웃바운드 전용 특성, 퍼블릭 서브넷에 두는 이유, 가용성 모드(영역별/리전별), NAT 경로는 GW 생성과 짝, 그리고 삭제 순서와 비용 경고를 강조했습니다. 이미지 자리 8곳에 캡처를 넣고 ID·IP는 실제 값으로 바꿔주세요. 시리즈 완결편이라 마지막에 전체 구조를 요약했습니다.

저작자표시 (새창열림)

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

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

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hyeseong-dev
실습 1-9 _ NAT Gateway
상단으로

티스토리툴바