본문 바로가기
정리

포트포워딩, TCP/IP

by dyddyd0 2025. 3. 19.

 

AWS EC2에서 로컬 DB 서버에 접속하는 방법 (포트 포워딩 설정)

 

  • EC2 (AWS 클라우드) → Spring Boot 서버 실행
  • Local (내 PC) → Database 서버 실행

 

 

Spring Boot 서버를 AWS EC2에서 운영하고, 데이터베이스(DB) 서버는 로컬 환경(내 PC)에 두는 경우, EC2에서 로컬 DB에 접근하려면 네트워크 설정이 필요함.

 

이 상태에서 EC2의 Spring Boot 애플리케이션이 로컬 DB에 접속해야 한다.

하지만 기본적으로 클라우드에서 로컬 네트워크로 직접 접근할 수 없다.

이를 해결하기 위해 포트 포워딩(SSH 터널링)을 설정.

 

SSH 포트 포워딩이란?

SSH 포트 포워딩(Tunneling)은 외부 네트워크에서 내부 네트워크의 특정 포트로 안전하게 연결하는 방법.

이를 이용하면 EC2에서 마치 로컬에 있는 것처럼 DB 서버에 접속할 수 있다.

 

cmd에서 ipconfig를 통해 기본 게이트웨이를 알아내고,

로컬에서 사용 중인 IP에 들어가 공유기 설정에서 포트포워딩을 뚫어주자.

MariaDB 3307 포트를 사용할 것이라 3307로 뚫어주었음.

여기까지 한다면 springBoot서버에서 로컬서버로 접근 가능하다.

 

 

+

포트 포워딩(Port Forwarding):
외부에서 특정 포트로 들어오는 네트워크 요청을 내부 네트워크의 다른 IP나 포트로 전달하는 기술.

 

예를 들어, AWS EC2에서 로컬에 있는 DB 서버(예: MySQL)로 접근하려면, EC2의 특정 포트(예: 3306)로 들어오는 요청을 로컬 네트워크의 DB 서버로 전달해야 함.

이때 포트 포워딩을 수행하는 프로토콜이 TCP이다.

 

 

 

TCP(Transmission Control Protocol)는 신뢰성이 보장되는 연결 지향형 프로토콜.

 

즉, 데이터를 송수신할 때 패킷 손실 없이 정확하게 전달되는 것을 보장함.

 

포트 포워딩에서 TCP를 사용하는 이유:
- 데이터 무결성 보장 → DB와 같은 중요한 데이터 통신에 적합
- 연결 지향적 → 클라이언트와 서버 간 세션을 유지하며 안정적인 연결 제공
- 흐름 제어 및 오류 검출 → 네트워크 환경이 불안정해도 안정적으로 동작

 

 

포트 포워딩과 TCP / UDP 차이

포트 포워딩은 일반적으로 TCP 기반이지만, 특정 서비스에서는 UDP 기반 포트 포워딩도 사용할 수 있다.

프로토콜 특징 포트 포워딩 사용 예시
TCP 연결 지향, 신뢰성 보장 MySQL, PostgreSQL, HTTP, SSH
UDP 연결less, 빠름, 신뢰성 없음 VoIP, 게임 서버, 영상 스트리밍

DB 연결은 신뢰성이 중요하므로 TCP 기반 포트 포워딩이 필수임.
➡ 반면, UDP는 패킷 손실이 있어도 괜찮은 스트리밍, 게임 서버 등에 주로 사용됨.

 

 

 

 

TCP/IP란?

TCP/IP(Transmission Control Protocol / Internet Protocol)는 인터넷을 포함한 네트워크 통신의 기본 프로토콜 체계임.
TCP/IP를 통해 컴퓨터 간 데이터를 송수신하고, 패킷을 전달하며, 신뢰성 있는 연결을 유지할 수 있다.

TCP/IP는 하나의 프로토콜이 아니라,
인터넷 통신을 위한 "프로토콜 집합(스택)"을 의미

  • 우리가 흔히 말하는 인터넷, 웹, 이메일 등은 모두 TCP/IP 기반으로 작동

 

TCP/IP의 개념

TCP/IP는 두 개의 주요 프로토콜, TCP와 IP의 조합으로 동작한다.

- TCP (Transmission Control Protocol)

  • 데이터를 패킷 단위로 나누고 재조합하여 신뢰성 있는 전송을 보장
  • 송신자가 데이터를 보내면 수신자가 정상적으로 받았는지 확인(Acknowledgment)
  • 패킷 손실이 발생하면 재전송
  • 예제: HTTP, FTP, SSH, 이메일(SMTP, POP3) 등

- IP (Internet Protocol)

  • 데이터 패킷을 목적지까지 경로 설정(라우팅)하여 전달
  • 각각의 기기는 IP 주소(예: 192.168.0.1)를 가짐
  • 예제: IP 주소를 기반으로 한 네트워크 통신

즉, IP는 패킷을 어디로 보낼지 결정하고, TCP는 패킷이 안전하게 도착하도록 관리한다.

 

 

TCP/IP의 4 계층 구조

TCP/IP는 4 계층 모델을 기반으로 동작한다.

-> 4계층 모델을 기반으로 웹, 이메일, 네트워크 통신이 이루어짐

계층 프로토콜 역할 예시
응용 계층 HTTP, FTP, SMTP 사용자와 직접 상호작용 웹 브라우저, 이메일
전송 계층 TCP, UDP 데이터 흐름 관리, 신뢰성 제공 TCP(HTTP, SSH), UDP(VoIP, 게임)
인터넷 계층 IP, ICMP 데이터 패킷의 목적지 경로 지정 라우팅, IP 주소
네트워크 액세스 계층 Ethernet, Wi-Fi 물리적 데이터 전송 LAN, Wi-Fi, 5G

 

구글 웹 접속 과정을 예시로 들어보자.

  1. 응용 계층: 웹 브라우저가 www.google.com을 요청 (HTTP/HTTPS 사용)
  2. 전송 계층: TCP가 데이터를 패킷 단위로 나누고 번호를 매김
  3. 인터넷 계층: IP가 Google 서버의 IP 주소로 패킷을 라우팅
  4. 네트워크 계층: Wi-Fi, LAN, 5G를 통해 실제 네트워크로 전송
  5. Google 서버 응답: 같은 경로를 따라 TCP/IP를 통해 브라우저로 응답 전달

즉, 서로 다른계층에서 함께 동작하는 구조임.

TCP/IP 특징

- 인터넷 표준 프로토콜 → 모든 네트워크 통신의 기본
- 패킷 스위칭 방식 → 데이터를 작은 패킷으로 나누어 전송
- IP 주소 기반 라우팅 → 목적지까지 최적 경로 설정
- 신뢰성 보장(TCP), 속도 우선(UDP) 선택 가능
- 유연한 확장성 → IPv4, IPv6 지원

반응형

'정리' 카테고리의 다른 글

TCP와 UDP  (0) 2025.04.08
URL 입력부터 페이지 렌더링까지  (1) 2025.04.07
Thread  (0) 2025.03.05
Java Garbage Collector  (0) 2025.02.27
JVM  (0) 2025.02.26