서론
클라우드 구축을 하다보면, Private VPC에서 인터넷을 연결해주기 위해 NAT가 필요로 하는 경우가 매우 많다. NAT가 처음에는 그저 사설 IP 혹은 사설 네트워크 내의 리소스가 외부 인터넷과 연결을 위해 사용된다고 생각하여 사용했지만, 사실 정확한 용도는 이름 자체에 있다.
Network Address Translation
쉽게 말해 네트워크 주소인 IP를 바꿔주겠다는 것이다.
NAT 정의
[공용적인 정의]
NAT(Network Address Translation, 네트워크 주소 변환)는 사설 IP 주소를 공인 IP 주소로 변환하거나 그 반대로 변환해주는 기술이다. 주로 내부 네트워크(예: 가정이나 회사의 LAN)에서 사용하는 장치들이 인터넷과 통신할 수 있도록 도와주는 역할을 한다.
[클라우드 관점에서의 정의]
클라우드 아키텍처에서 NAT(Network Address Translation)는 주로 퍼블릭 인터넷 접근이 제한된 프라이빗 서브넷의 리소스가 외부로 나가는 트래픽을 가능하게 할 때 사용된다. 즉, 프라이빗 서브넷 → 인터넷 방향의 아웃바운드 통신을 허용하는 역할을 한다.
굳이 두가지 정의를 좀 나눠서 설명한 이유는 공용적인 정의는 사실 무선 공유기의 입장에서 설명을 한 것이라면, 나는 클라우드 관점에서 NAT가 어떻게 사용되는지 더 알고 싶었다.
NAT의 필요성
그럼 정확히 NAT가 왜 필요로 하는 것인가. 아래 아키텍쳐를 통해 설명이 가능하다.
지금 해당 프로젝트에서는 쿠버네티스와 그에 관련된 모든 리소스들은 보안상의 이유로 Private Subnet에 위치해있다. 보안적으로는 좋으나 문제는 내부 리소스들이 외부 인터넷으로 접근이 불가능 하다는 것이다.
프라이빗 서브넷 환경에서의 문제점
프라이빗 서브넷은 보안상의 이유로 외부 인터넷과 직접 연결되지 않는다. 여기서 DB 서버, 내부 API 서버, 내부 관리 시스템이 외부에 접근해야하는 경우 문제가 발생한다. 예를 들어 라이빗 서브넷의 인스턴스가 소프트웨어 업데이트, 패치 다운로드, 외부 API 호출을 시도 할 경우 접근이 불가능하다.
그리고 이러한 문제들은 NAT를 부착해줌으로써 해결할 수 있다. 다음과 같은 시나리오로 설명이 가능하다.
[Private Instance -> NAT -> Public Scenario]
1. 프라이빗 인스턴스가 외부로 요청: yum update 혹은 docker 를 설치하기 위해 install docker
2. 라우팅 테이블에 따라 트래픽은 바로 외부로 향하는 것이 아닌 NAT Gateway로 전달됨
3. NAT Gateway가 요청의 IP를 공인 IP로 변경: 사설 IP 요청 → 출발지 주소를 공인 IP로 변환 → 외부로 전달
4. 외부로 요청을 보내고 난후 NAT Gateway가 응답을 다시 사설 IP로 매핑
5. 프라이빗 인스턴스가 응답 수신
사실 이러한 과정은 우리가 흔히 사용하는 공유기에서 발생하는 과정이기도 하다.
NAT 사용 이유
NAT를 사용하는 이유는 크게 2가지만 기억하면 된다.
1. 공인 IP 주소 절약
현재 IPV4 갯수는 제한적인다. 이때 NAT를 사용하며 사설 IP를 사용하고 Public IP를 하나에서 요청을 주고 응답을 받을 수가 있다.
즉, 여러 대의 장비가 하나의 공인 IP를 공유 가능 → 효율적인 IP 자원 사용이 가능하다.
2. 보안성 향상(클라우드 아키텍쳐 관점)
내부 사설 IP 주소는 외부에 노출되지 않음. 떄문에 외부에서는 NAT 장치까지만 볼 수 있고,
내부 구조는 보이지 않음 → 네트워크 구조 은닉이 가능하다.
NAT 서비스
NAT는 AWS, GCP, Azure등 웬만한 Cloud 서비스에서 쉽게 사용할 수 있다. 이전에는 카카오 클라우드에서 사용해본 경험이 있는데 사실 클라우드마다 사용법이 거의 유사하기에 한번 해본 사람이라면 금방 할 수 있다.
참고자료
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-NAT-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
🌐 NAT(Network Address Translation) 이란 무엇인가?
NAT (Network Address Translation) 개념 네트워크 주소 변환(network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록
inpa.tistory.com
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-nat-gateway.html
NAT 게이트웨이 - Amazon Virtual Private Cloud
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
'DevOps&Cloud' 카테고리의 다른 글
ArgoCD Sync Policy와 Sync 방식 (0) | 2025.05.03 |
---|---|
CICD: JIB(Java Container Image Build) 장점과 언제 쓰는것이 좋을까 (1) | 2025.04.30 |
Elastic Search 이해하기(Elastic Search vs RDBMS) (1) | 2025.04.26 |
Kubernetes Architecture: Control Plane 과 Worker Node 이해하기 (0) | 2025.04.23 |
Helm이란? (0) | 2025.04.23 |