🌐 네트워크 OSI 7계층 한눈에 보기

계층 이름 (Layer) 실무 관련 예시 역할 설명
7 Application Nginx Config, HTTP/HTTPS 사용자가 사용하는 서비스(웹, 앱)의 데이터를 처리해. URL 경로 분기나 세션 설정이 여기야.
6 Presentation SSL/TLS 암호화 (HTTPS) 데이터를 컴퓨터가 이해하는 방식으로 변환하거나 암호화해. Nginx에서 인증서 적용하는 단계지.
5 Session 세션 유지 시간 (Timeout) 통신하는 양 끝단의 연결을 맺고 끊고, 얼마나 유지할지 관리해.
4 Transport L4 LB, Port(80/443), TCP 포트 번호를 보고 데이터를 적절한 서비스(VM)로 배달해. 네가 포탈에서 VIP 엮는 작업이 이거야!
3 Network 방화벽(IP), Router, L3 IP 주소를 보고 최적의 경로를 찾아줘. 방화벽에서 출발지/도착지 IP로 허용 여부 결정하는 단계지.
2 Data Link MAC 주소, 스위치(L2) 인접한 장비끼리 데이터를 안전하게 전달해. (보통 포탈 너머 클라우드 인프라가 알아서 해줌)
1 Physical 랜선, 광케이블, 허브 0과 1의 전기적 신호가 흐르는 물리적인 선로 자체를 의미해.

 

🌐 서비스별 네트워크 OSI 7계층 한눈에 보기

계층 HTTP/HTTPS (웹) SFTP / FTP (파일 전송) SSH (원격 접속)
7 (Application) HTTP/HTTPS (웹 페이지 요청) SFTP/FTP (파일 업로드/다운로드) SSH (명령어 전달)
6 (Presentation) ASCII, JPEG, TLS/SSL 데이터 표현 방식, SSH Encryption 데이터 암호화 및 압축
5 (Session) 웹 세션 관리, Cookie 파일 전송 세션 유지/제어 터미널 연결 세션 관리
4 (Transport) TCP (Port 80/443) TCP (Port 21/22) TCP (Port 22)
3 (Network) IP 주소 (목적지 서버 찾기) IP 주소 (파일 서버 찾기) IP 주소 (대상 호스트 찾기)
2 (Data Link) MAC 주소 (인접 장비 통신) MAC 주소 (인접 장비 통신) MAC 주소 (인접 장비 통신)
1 (Physical) 랜선, 광케이블 랜선, 광케이블 랜선, 광케이블

🌐 회사에서 주로 하는 L3~L7 계층

작업 내용 주요 타겟 및 식별값 OSI 7계층 비고
방화벽 출발지/도착지 IP, Port 3계층(Network) / 4계층(Transport)
IP 기반은 L3, Port 기반 제어는 L4에 해당
Network LB (VIP 구성) VIP(Virtual IP), VM 이중화 4계층 (Transport)
보통 포탈에서 제공하는 기본 LB는 Port/Protocol 기반의 L4 Load Balancer
Nginx Proxy 설정 & 업그레이드 도메인, URL 경로, HTTP 헤더 7계층 (Application) 세션 시간 설정, URL 경로 기반 라우팅, 보안 헤더 추가 등 비즈니스 로직 처리

 

 

  • 방화벽 (L3/L4): IP 주소를 보고 길을 막거나 여는 건 네트워크 계층(L3)이고, 특정 서비스 포트(TCP/UDP)까지 제어하는 건 전송 계층(L4)이야. 보통 묶어서 'L3/L4 방화벽'이라고 많이 불러.
  • Network LB (L4): VIP를 만들고 서버들을 엮는 건, 데이터가 어떤 포트로 들어오느냐에 따라 분산해 주는 역할을 해.
  • Nginx reverse proxy server (L7): Nginx는 example.com/api처럼 URL 경로를 보고 분기하거나, SSL 인증서를 적용하는 등 애플리케이션 계층(L7)의 복잡한 로직을 처리하는 아주 똑똑한 녀석이야.

🌐 L4 로드밸런싱의 분산 원리

L4(Transport Layer)는 IP 주소와 포트 번호를 보고 트래픽을 어디로 보낼지 결정해. 네가 설정한 작업은 아래와 같은 의미를 가져.

  • 포트 기반 분산: 외부에서 VIP의 80번 포트로 접속 요청이 들어오면, 로드밸런서가 네가 묶어놓은 VM들의 80번 포트로 트래픽을 전달해 주는 거야.
  • 부하 분산 알고리즘: 이때 로드밸런서는 내부적으로 설정된 규칙(예: Round Robin - 순차적 전달, Least Connection - 접속 적은 곳 우선 전달)에 따라 1번 VM으로 보낼지 2번 VM으로 보낼지 결정하게 돼.
  • Health Check: 네가 포트를 지정해두면 로드밸런서는 "이 서버 80번 포트 살아있나?" 하고 주기적으로 찔러봐. 만약 1번 서버의 80번 포트가 죽으면 자동으로 2번으로만 트래픽을 보내는 스마트한 역할도 수행하지!

💡L4 Load Balancer(단순전달) + Nginx Reverse Proxy(상세제어)

🛠️ Nginx Config에서 세션/타임아웃 관련 부분

  • keepalive_timeout: 클라이언트와 연결을 얼마나 유지할지 결정 (세션 유지의 기초)
  • proxy_read_timeout / proxy_send_timeout: 백엔드 서버(VM)와 통신할 때 얼마나 기다려줄지 설정
  • Sticky Session (Upstream): 특정 사용자가 계속 같은 서버로 가게 하려면 ip_hash 같은 설정을 쓰기도 해.

🛠️ Proxy Server를 두는 이유가 무엇일까?

중간에 다리 하나를 더 놓으면 느려질 것 같은데 왜 쓸까? 이유는 크게 3가지야.

  1. 보안 (수문장 역할)
    • 진짜 서버(VM)의 IP를 꽁꽁 숨길 수 있어. 외부 사람은 프록시(VIP) 주소만 알 뿐, 실제 내부 서버가 어디에 있는지 몰라. 공격자가 들어오려고 해도 프록시에서 먼저 걸러지지.
  2. 부하 분산 (교통 정리)
    • 네가 하는 LB 작업처럼, 트래픽이 몰릴 때 "너는 1번 서버로 가고, 너는 2번으로 가!"라고 교통 정리를 해줘서 서버가 터지는 걸 막아줘.
  3. 캐싱 (기억력)
    • 자주 요청되는 데이터는 프록시가 미리 가지고 있다가, 진짜 서버한테 안 물어보고 자기가 바로 답해줘. 속도가 훨씬 빨라지지!

💡 nginx 소프트웨어가 5,6,7 계층을 한번에 다 할까?

예전에는 암호화만 전담하는 하드웨어(SSL 가속기)가 따로 있기도 했어. 하지만 요즘은 서버 성능이 워낙 좋아져서 Nginx 같은 소프트웨어가 이 복잡한 계산을 다 감당할 수 있게 된 거지.

  1. 효율성: 한 곳에서 암호화도 풀고(L6), 주소도 확인하고(L7), 세션도 관리하면(L5) 데이터 처리가 훨씬 빠르고 관리가 편해.
  2. 유연성: 하드웨어 장비는 설정을 바꾸기 힘들지만, Nginx는 네가 nginx.conf 파일만 수정하고 reload 하면 바로 반영되니까 운영하기가 압도적으로 좋지.
계층 Nginx가 하는 일 (기능) 실무적인 예시
5계층 (Session) 연결 관리 (Connection) 사용자와의 연결을 얼마나 유지할지(Keep-alive), 타임아웃은 언제 낼지 관리해.
6계층 (Presentation) 암호화 해제 (SSL Decryption) HTTPS 인증서를 읽어서 암호화된 데이터를 우리가 읽을 수 있는 HTTP로 변환해.
7계층 (Application) 콘텐츠 해석 및 라우팅 "어? 요청 주소가 /api네? 그럼 A서버로 보내야지"라고 데이터 내용을 보고 판단해.

 

+ Recent posts