클라우드

소프트웨어: 7가지 핵심 서버

syquji 2025. 11. 21. 11:49

1. 웹 서버 (Web Server)

구분 설명
핵심 역할 사용자 요청의 첫 관문 (Gatekeeper). 사용자의 모든 요청을 가장 먼저 받아서 처리합니다.
주요 기능 1. 정적 파일 제공: 변하지 않는 파일(HTML, CSS, 이미지, PDF 등)을 사용자에게 직접 전달합니다.

2. 요청 중계 (Reverse Proxy): 사용자의 API 요청을 **WAS(애플리케이션 서버)**로 안전하고 효율적으로 전달합니다.
대표 소프트웨어 Nginx, Apache HTTP Server
왜 필요할까? WAS는 복잡한 계산(비즈니스 로직)에 집중해야 합니다. 단순 파일 제공이나 요청 중계는 웹 서버가 대신하여 WAS의 부담을 줄이고 안정성을 높입니다. 또한, 보안(SSL/TLS 암호화) 및 로드 밸런싱(요청 분산) 역할도 수행합니다.

 

2. WAS (Web Application Server, 애플리케이션 서버)

구분 설명
핵심 역할 서비스의 두뇌 (Brain)이자 핵심 로직 처리자. 실제로 데이터를 생성, 가공, 검증하는 서비스의 모든 핵심 기능을 담당합니다.
주요 기능 1. 비즈니스 로직 실행: 수강신청, 결제 처리, 게시글 작성 등 서비스의 핵심 기능을 코드로 실행합니다.

2. DB 연동: DB 서버에 데이터를 저장하거나 조회하는 작업을 수행합니다.

3. 트랜잭션 관리: 여러 작업이 하나의 단위로 처리되도록 보장합니다 (예: 결제와 상품 재고 감소는 동시에 성공하거나 실패해야 함).
대표 소프트웨어 Spring Boot (Java), Express (Node.js), Django (Python)
왜 필요할까? 사용자의 **'상태'**가 변하는 모든 중요한 작업(데이터 저장, 수정 등)은 WAS를 통해서만 이루어져야 합니다. 비즈니스 로직의 정확성과 안정성을 보장하는 핵심 서버입니다.

 

3. DB 서버 (데이터베이스 서버)

구분 설명
핵심 역할 서비스의 영구 데이터 창고 (Persistent Storage). 사용자 정보, 주문 내역, 게시글 내용 등 서비스의 상태와 관련된 모든 데이터를 안전하게 저장합니다.
주요 기능 1. 데이터 저장/조회: WAS의 요청에 따라 데이터를 디스크에 저장하고, 필요한 데이터를 찾아 제공합니다.

2. 데이터 무결성/일관성 보장: 데이터가 손상되거나 잘못되는 것을 막고, 항상 정확한 상태를 유지하도록 관리합니다.
대표 소프트웨어 MySQL, MariaDB, PostgreSQL (RDBMS), MongoDB (NoSQL)
왜 필요할까? 데이터의 **'일관성(Consistency)'**과 **'트랜잭션(Transaction)'**이 매우 중요하다면 RDBMS를 사용합니다. 데이터 구조가 유연하거나 대규모 분산 처리가 중요하다면 NoSQL을 고려할 수 있습니다.

 

4. 캐시 서버 (Cache Server)

구분 설명
핵심 역할 초고속 임시 저장소 (High-Speed Temporary Storage). DB에 갈 필요 없이 빠르게 응답할 수 있도록, 자주 사용되는 데이터를 메모리에 잠시 보관합니다.
주요 기능 1. DB 부하 감소: 반복적인 조회 요청을 캐시 서버가 대신 처리하여 DB 서버의 과부하를 막습니다.

2. 응답 속도 향상: 디스크 접근보다 훨씬 빠른 메모리(RAM) 접근을 통해 사용자에게 즉각적인 응답을 제공합니다.
대표 소프트웨어 Redis, Memcached
왜 필요할까? 사용자 로그인 세션 정보, 자주 바뀌지 않는 게시판 목록, 인기 검색어 등 빠르게 접근해야 하지만, 데이터가 조금 오래되어도 큰 문제가 없는 데이터입니다.

 

5. 모니터링 서버 (Monitoring Server)

구분 설명
핵심 역할 서비스 상태 진단 및 감시자 (Health Checker & Supervisor). 모든 서버와 애플리케이션의 상태를 24시간 감시하고 데이터를 수집합니다.
주요 기능 1. 메트릭(지표) 수집: CPU 사용량, 메모리, 네트워크 트래픽, 사용자 응답 시간 등의 지표를 실시간으로 수집합니다.

2. 시각화: 수집된 데이터를 그래프나 대시보드로 만들어 한눈에 상태를 파악할 수 있게 합니다.

3. 알람 (Alerting): 설정된 임계치(예: CPU 사용량 90% 초과)를 넘어서면, 즉시 개발자에게 알림(Slack, 문자 등)을 보냅니다.
대표 소프트웨어 Prometheus, Grafana, Zabbix, ELK Stack
왜 필요할까? 장애가 발생하기 전에 미리 징후를 파악하고 대비할 수 있게 하며, 장애 발생 시 원인을 빠르게 분석하고 대응할 수 있는 기반이 됩니다.

 

6. 미디어 서버 (Media Server)

구분 설명
핵심 역할 대용량 파일 배달 전담 (Large File Delivery Specialist). 동영상, 대용량 문서, 강의 자료 등 크기가 큰 파일을 효율적으로 사용자에게 전송하는 역할을 분리하여 WAS의 부담을 덜어줍니다.
주요 기능 1. 파일 전송 효율화: 대용량 파일을 전송할 때 발생하는 네트워크 부하를 전담합니다.

2. 부분 다운로드 (Range Request): 동영상 스트리밍처럼 파일의 특정 부분(재생 중인 위치)만 요청하고 전달하는 기능을 지원하여 효율적인 미디어 재생을 가능하게 합니다.
대표 소프트웨어 Nginx (파일 제공 용도로 설정), Flask (간단한 API 서버)
왜 필요할까? 강의 영상 서비스, 대용량 파일 업로드/다운로드 기능이 있는 서비스처럼 트래픽이 큰 파일 전달이 필요할 때 사용합니다.

 

7. 프로그래밍 언어 및 프레임워크

언어 (프레임 워크) 특징 적합한 상황
Java (Spring Boot) 견고성, 안정성, 대규모 시스템에 최적화되어 있으며, 강력한 트랜잭션 처리와 풍부한 엔터프라이즈급 라이브러리를 제공합니다. 금융, 대규모 사용자 트래픽, 복잡하고 안정성이 중요한 핵심 로직 (미션 크리티컬)
Python (Django/FastAPI) 개발 속도가 빠르고 문법이 간결하며, 데이터 분석 및 AI 연동이 쉽습니다. 빠른 프로토타입 개발, 조회 중심 API, 머신러닝/데이터 처리가 포함된 서비스
Node.js (Express) 비동기 처리(동시 요청 처리)에 강점이 있으며, 프론트엔드/백엔드를 동일 언어(JavaScript/TypeScript)로 개발할 수 있어 효율적입니다. 채팅, 실시간 알림 등 대기 시간이 길지만 연결이 많아야 하는 I/O 중심 서비스

 

  • Web 서버(안내 데스크):
    • “정적 자료”(예: 안내서, 지도, 이미지, CSS) 즉시 응답
    • “업무/계산”(로그인, 주문 등)은 사무실로 전달
  • WAS 서버 (사무실/업무 담당자):
    • 전해진 요청의 비즈니스 로직 및 프로그램 실행
    • 필요하면 DB에 정보 요청

제시해 주신 비유를 바탕으로 DB, 캐시, 모니터링, 미디어 서버의 역할을 이어서 설명해 드릴게요. 이 비유는 전체 IT 시스템을 하나의 종합 서비스 기관이나 회사로 생각하시면 이해하기 쉽습니다.


🏢 서버 역할별 비유 (서비스 기관)

서버 역할 서비스 기관 비유 주요 동작/기능
Web 서버 안내 데스크 "정적 자료"(안내서, 지도, CSS, 이미지 등)는 즉시 응답하고, "업무/계산"이 필요한 요청은 WAS(사무실)로 전달합니다.
 
 

WAS 서버 사무실 / 업무 담당자 안내 데스크에서 전해진 요청의 비즈니스 로직과 프로그램을 실행합니다. 수강신청, 데이터 검증 등 핵심 업무를 담당하며, 필요하면 DB에 정보를 요청합니다.
 
 

DB 서버 문서 보관소 서비스 데이터를 저장하고 관리하며, 신청 내역, 사용자 정보 등 상태 데이터를 안전하게 보관합니다. 데이터의 무결성과 일관성을 보장하며, 트랜잭션 처리(오류 시 전체 취소)를 수행합니다.
 
 
 

캐시 서버 메모장 / 서랍 속 자주 쓰는 서류 자주 조회되는 데이터나 세션 정보를 메모리에 저장하여, DB 접근을 최소화하고 빠르게 응답합니다.
DB(금고)까지 가는 데 시간이 걸릴 때, 자주 찾는 정보는 미리 꺼내놓는 곳입니다.
로그인 상태 정보(세션), 자주 보는 목록 등을 메모리라는 휘발성이지만 빠른 공간에 보관하여 응답 속도를 극대화합니다.

 
 
 

미디어 서버 창고 / 대용량 자료실 강의자료, 동영상, 과제 파일 등 용량이 큰 콘텐츠를 저장하고 사용자에게 제공합니다. 파일 전용 서버로서 WAS/DB 서버의 트래픽 부하를 분산시킵니다.
 
 
 

모니터링 서버 보안실 / 24시간 감시 카메라 서버와 서비스의 상태를 실시간으로 수집·시각화하여 장애를 감지합니다. 자원 사용량(CPU, 메모리 등)을 확인하고 장애 대응 및 성능 병목 파악에 사용합니다.
 
 
 

 


 

🔑 보충 설명: DB 서버 vs. 미디어 서버 역할 차이

구분 DB 서버 (금고 / 문서 보관소) 미디어 서버 (창고 / 대용량 자료실)
보관하는 데이터 상태 데이터 (정형 데이터):

사용자 ID, 주문 번호, 결제 금액, 게시글의 제목과 내용 텍스트

작고, 구조화되어 있으며, 자주 변경됩니다.
대용량 파일 (비정형 데이터):

동영상 파일, 이미지 파일, 강의 자료(PDF, PPT), 첨부 파일 등

크고, 거의 변경되지 않으며, 파일 자체가 중요합니다.
데이터 사용 목적 업무 처리 (트랜잭션):

데이터의 일관성정확성이 가장 중요합니다. (예: 결제 후 잔액이 정확히 차감되었는지)
전송 및 스트리밍:

효율적인 배달빠른 다운로드 속도가 중요합니다.
비유적 차이 **"문서 내용의 정확성"**을 보장하는 곳.

매우 정확한 장부, 계약서, 고객 정보가 보관된 금고입니다.
**"큰 물건의 보관 및 배송"**을 전담하는 곳.

대형 박스, 가구, 동영상 콘텐츠가 담긴 창고입니다.
WAS의 역할 WAS(사무실)가 **'정보를 조회하거나 변경해 달라'**고 자주 요청합니다. WAS(사무실)가 **'이 파일을 사용자에게 보내 달라'**고 요청하면, 미디어 서버가 직접 대량 전송을 전담합니다.

 

'클라우드' 카테고리의 다른 글

하드웨어: 네트워크와 스토리지  (0) 2025.11.21