네발오징어
개발이모저모
네발오징어
전체 방문자
오늘
어제
  • 분류 전체보기
    • nodejs
    • spring
    • 알고리즘
    • DevOps
    • AWS

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • TypeScript
  • pre-signed-url
  • S3
  • AWS
  • getter
  • setter

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
네발오징어

개발이모저모

AWS

NAT Gateway란?

2023. 6. 27. 18:28

전부터 NAT Gateway의 역활이 외부에서 들어오는 통신을 내부 사설망의 IP로 변환시켜 연결시켜주는 역활이라고만 알고 있었다.

하지만 통신에 대해 조금만 더 생각해보니 인바운드로 들어오는 통신은 어떻게 설명이 되지만 반대로 나가는 부분은 설명이 되지않았다.

이에 좀 알아보고 정리해본다.

 

NAT Gateway

NAT 게이트웨이는 NAT(Network Address Translation, 네트워크 주소 변환) 서비스입니다. 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있습니다.

한 마디로 프라이빗 서브넷 외부의 접근을 막기 위해 사용되어진다.

 

그렇다면 외부에서 NAT Gateway를 통한 프라이빗 서브넷 내의 EC2 인스턴스와의 통신은 아래와 같다.

 

1. 외부 시스템 또는 인터넷에서 프라이빗 서브넷 내의 EC2 인스턴스로 데이터 패킷을 전송

2. 전송된 패킷은 NAT Gateway로 도착

3. NAT Gateway는 패킷의 출발지 주소를 자체 퍼블릭 IP 주소로 변환

4. 변환된 패킷은 프라이빗 서브넷의 라우팅 테이블에 따라 EC2 인스턴스로 전달

5. EC2 인스턴스는 변환된 패킷을 수신하고 해당 패킷을 처리

 

이와 반대되는 프라이빗 서브넷 내의 EC2 인스턴스가 외부와 통신하는 과정은 다음과 같다.

 

1. EC2 인스턴스에서 외부로의 데이터 패킷을 생성

2. 패킷은 EC2 인스턴스의 라우팅 테이블에 따라 목적지를 NAT Gateway로 설정

3. NAT Gateway는 패킷을 수신하고 출발지 IP 주소를 자체 퍼블릭 IP 주소로 변환

4. 변환된 패킷은 NAT Gateway의 라우팅 테이블에 따라 외부로 전달

5. 외부 시스템 또는 인터넷은 변환된 패킷을 수신하고 해당 패킷을 처리

 

위 두가지 경우를 보아 NAT Gateway는 퍼블릭 서브넷에 존재하며 프라이빗 서브넷의 내부 IP 주소를 외부와 통신 가능한 퍼블릭 IP 주소로 변환하여 통신을 중개하는 역활을 한다는 것을 알게 되었다.

 

하지만 제일 의아한 부분은 요청은 NAT Gateway의 퍼블릭 IP로 요청을 보내는데 어떻게 한 EC2 인스턴스를 특정한다는 건가?

 

 

'AWS' 카테고리의 다른 글

Network ACL vs 보안그룹  (0) 2023.06.20
Pre-signed url  (0) 2023.06.12
파일 다운로드 속도 비교(S3 GetObject vs axios get)  (0) 2023.06.05
AWS SES (with aws-sdk)  (0) 2023.05.23
    'AWS' 카테고리의 다른 글
    • Network ACL vs 보안그룹
    • Pre-signed url
    • 파일 다운로드 속도 비교(S3 GetObject vs axios get)
    • AWS SES (with aws-sdk)
    네발오징어
    네발오징어

    티스토리툴바