그림으로 배우는 서버 구조

Daniel_Yang·2025년 10월 11일
1
post-thumbnail

당장 실무에 쓰일 것 같지않지만, 개발자로서 기본 소양으로 조금은 알아야할 것 같아서 정리해보았다.

서버의 기본

서버의 역할

  • 하드웨어의 중심적인 역할
  • 애플리케이션 SW 동작시키는 주역

서버와 산하 컴퓨터 사이에는 라우터와 허브 등의 네트워크 기기가 있다.
=> 네트워크 기기들은 질서 있고 효율적으로 목적지까지 잘 찾아가도록 도와주는 필수적인 중간 관리자

현대의 거의 모든 유선 LAN은 '허브'가 아닌 '스위치'를 사용!

서버의 3가지 이용 형태

  • 클라이언트의 요청에 대응하여 처리하는 형태(수동적) ex) 파일, 프린트, 메일, 웹 서버 등
  • 서버에서 능동적으로 처리하는 형태 ex) 운용 감시, RPA, BPMS 서버 등
  • 높은 성능을 활용하는 형태(PC에서 할 수 없는) ex) AI, 빅데이터 서버

서버에 접속하는 기기(클라이언트의 다양화)

  • 각각 유선 또는 무선 네트워크를 통해 접속한다.
  • ex) Desktop PC, 노트북 PC, 태블릿, 스마트폰, 카메라, 안테나(IC 태그), 마이크, 드론, 로봇 등

하드웨어로서의 서버

PC와의 차이

  • 구성 특징: 서버는 신뢰성(24시간. 기본적으로 멈춤X), 확장성(운용 정지않고 교환/증설 쉽게), 가용성, 내결함성 더 필요
  • 성능: 서버는 표시 성능뿐만 아니라 처리(I/O) 성능도 중요. PC는 표시(키보드/마우스) 성능 중시

서버 OS

  • 현재 서버용 OS는 윈도우, Linux, Unix 계열 주류

서버 사양

  • 지금은 '사용자 수', '용도' 등으로도 검토 가능
  • 항목: 형태-크기, CPU 수-종류, 메모리 용량, 내장디스크 용량, 전원 유닛, 다중화 냉각팬 등

다양한 서버의 형태
1. 폼팩터 '어떻게 설치하고 관리할까?': 타워, 랙 마운트, 블레이드, 고밀도
2. 특정 임무를 위한 아키텍처 '어떤 문제를 해결할까?': 메인프레임, 슈퍼텀퓨터

서버의 표준

  • PC 서버(x86)가 표준이었으나... ARM이 치고 올라오고 있다.(Cloud 기업들. 저전력)
  • CPU 아키텍처
    - x86 (CISC 방식)
    • ARM (RISC 방식)

네트워크의 기본은 LAN

  • TCP/IP로 불리는 네트워크의 공통 언어(프로토콜)로 통신
  • 이외 네트워크: Bluetooth통신, WAN(멀리 떨어진 LAN과 LAN을 서로 연결해주는 거대한 네트워크) => 모두 끊임없이 고속 처리 통신에는 적합x

서버 설치 장소

  • 온프레미스: 자유 설정 but 직접 유지 보수, 비용이 낮지않을 수도
  • 데이터 센터: 유지보수 편리 but 데이터가 외부 네트워크로 나간다.

클라우드 서비스

  • 종류
    • IaaS ex) EC2, S3, VPC 등
    • PaaS ex) ElasticBeanstalk, RDS, EKS 등
    • SaaS: '완성된 소프트웨어'를 구독
  • 주의: 데이터를 어떻게 다루는가?

서버 전용 소프트웨어와 미들웨어

  • 서버 전용 SW: 클라이언트 상호작용 없이 서버에서만 사용하는 SW
  • 미들웨어: 서버 전용 SW가 운영체제나 네트워크 위에서 안정적으로 실행되도록 도와주는 중간 계층
    => 기능보다는 “다른 시스템을 연결하고 지원하는 역할”에 초점
구분정의비유
서버 전용 소프트웨어특정 서비스를 제공하기 위해 서버에서 실행되는 애플리케이션Apache, Nginx, Tomcat, Spring Boot, Node.js, MySQL Server 등
미들웨어애플리케이션과 OS/네트워크 사이에서 데이터·요청을 중개하거나 통신을 도와주는 소프트웨어 계층WAS (WebLogic, JBoss), MQ, Kafka, Redis, API Gateway 등

ex)
- Spring Boot → Tomcat/WAS 위에서 실행
- 웹 서버(Apache) ↔ WAS(Tomcat) : Tomcat이 미들웨어 역할
- Spring Boot (서버 애플리케이션) ↔ Kafka (메시징 미들웨어)
- ERP 서버 ↔ Oracle DB (DB 미들웨어)


서버로 무엇을 하는가?

서버는 산하의 컴퓨터를 어떻게 보고 있는가?

  • IP 주소로 서로 호출
    - IP 주소: 컴퓨터 SW가 인식하는 컴퓨터 주소
    • MAC 주소: HW가 인식하는 주소. 네트워크 내에서 기기 특정

컴퓨터 간 데이터 통신

라우터의 역할

  • 전송되는 데이터를 자신이 목적지로 보낼 것인지, 아니면 다음 라우터로 중계할 것인지 항상 생각
    => 서로 다른 네트워크들을 연결하고, 데이터가 가야 할 최적의 경로를 찾아 보내주는 것

서버 가상화와 데스크톱 가상화

  • 서버 가상화: 서버 자원 효율성. IT관리자를 위해 ex) VMware vSphere, KVM, Hyper-V, Xen
  • 데스크톱 가상화(VDI): 중앙에서 모든 데스크톱 환경을 관리 가능(보안, 원격 등). 사용자를 위해

Telework(원격근무)와 Thin Client(도구)

  • Thin client: 최소한의 기능만 갖춘 간단한 컴퓨터. 중요한 것은 중앙 서버에서만 수행하니 클라이언트 PC 보안문제 생겨도 피해 적다.

네트워크 가상화

  • 하나의 물리적인 네트워크 장비(스위치, 라우터 등)를 여러 개의 독립된 가상 네트워크로 나누거나, 여러 개의 장비를 하나처럼 보이게 합치는 기술
    ex) Fabric Network(=Ethernet Fabric)

어플라이언스 서버: 특정 작업만 빠르고 안정적으로 처리하도록 HW와 SW가 처음부터 하나로 합쳐져 최적화된 서버

서버의 디스크: PC와 비교하면 성능과 신뢰성이 높은 제품 요구

  • 지표: Latency, Throughput, TPS

    현재 고성능 서버는 NVMe 인터페이스(연결 방식)를 사용하는 SSD(저장 매체) 여러 개를 RAID(운영 방식)로 묶어, 낮은 Latency와 높은 Throughput/IOPS를 확보하는 것이 일반적이다.
    *SAS vs NVMe, HDD vs SSD


클라이언트에 대응하는 역할

  • 사용자의 시선
  • 파일 서버(접근권한설정), 프린트 서버(무선LAN을 활용한 프린터의 네트워크화), NTP 서버(시각 동기화)
  • IP 주소 할당: 서버 OS에 있는 DHCP 서비스로 클라이언트의 IP 주소를 동적 관리
  • SIP 서버(IP 전화 제어), SSO 서버(인증 지원), 업무 시스템 서버, ERP, IoT 서버
    • IP 전화: 인터넷 프로토콜을 사용한 전화 by VoIP
    • SSO 방법: reverse proxy vs agent
      - 큰 차이: 인증을 처리하는 위치
      • reverse proxy: 모든 애플리케이션 앞단에서 요청을 가로챔. 기존 앱 수정 불필요 but 단일장애지점
      • agent: 해당 앱 서버 내에 설치된 에이전트가 요청을 받아 인증 여부를 확인. 세밀한 접근 제어 but 유지보수 어려움
    • ERP: 생산, 경리, 물류 드으이 다양한 업무 통합 시스템. 어떤 업무에서 데이터 변경 -> 연계된 다른 업무 데이터도 갱신
    • IoT 서버: 수많은 device들을 인터넷에 연결
      ① 상태를 감시하고 데이터를 수집/처리/저장
      ② 원격으로 제어하는 핵심 시스템
      - 일반 시스템 검토와는 달리 불안정한 네트워크 환경(디바이스 위치), 다양한 통신 방식과 데이터, 대규모 트래픽 처리 등 다른 관점이 요구된다.

메일과 인터넷

  • 메일과 인터넷을 지원하는 서버: 메일, 인터넷 서버는 보안상의 이유로 사무 공간 등에서 보여선 안된다.

SSL 흐름

  • 클라이언트 PC가 서버에 접속
  • 서버는 인증서와 공개키 보냄
  • 클라이언트 PC는 인증서 확인 + 통신에 사용할 비밀번호(세션 키) 생성 -> 공개키로 암호화해서 전송
  • 서버는 개인키로 비밀번호 확인
    => 이제 이걸로 통신

Proxy 서버(=대리)

  • 문제가 될 수 있는 사이트 차단
  • 외부에서의 부적절한 접근에 대해 클라이언트 보호

서버로부터의 처리와 고성능 처리

  • 시스템 운용 감시(리소스, health) => 서버의 안정적 기동
  • IoT로부터 서버가 데이터 수집
  • RPA: 업무 자동화 실현 도구
  • BPMS: 업무 프로세스를 분석 및 개선하면서 관리
  • AI 서버, 빅데이터 서버(비구조화 데이터까지. 대량의 데이터 분석)
    - Hadoop: 빅데이터의 실용화 뒷받침 기술. 오픈소스 미들웨어로, 대량의 방대한 데이터 고속 처리

보안과 장애 대책

시스템에 무엇을 지키고 싶은가?

  • 정보 자산 ex) HW, SW, 데이터, 인적 자산, 서비스 등
  • 데이터 분류: 공개 정보/비밀 정보
  • 위협: 기술적 위협, 인적 위협

보안 위협과 대책 사례

대상기술적/인적보안 위협대책 사례
시스템이나 서버기술적 위협외부에서의 부정 액세스- 방화벽
- DMZ
- 디바이스 간 통신 암호화
사용자인적 위협내부에서의 부정 액세스- 사용자 관리
- 액세스 로그 확인
- 디바이스 조작 감시
데이터기술적 위협데이터 유출이동식 매체 안의 데이터 암호화

  1. 정보 보안 정책: 기본 방침 > 대책 기준 > 실시 순서

  2. 완충 지대(DMZ): 방화벽이 있다고 내부 네트워크 안전하다 보장 x

    • 내부 네트워크로의 침입을 막기 위해 방화벽과 내부 네트워크 상이에 설치하는 완충 지대
  3. 서버 내 보안: Access 제어 매커니즘 ex) 사용자 관리 서비스

  4. 바이러스 대책

  5. 서버 장애 대책: Fault Tolerance System(장애허용시스템)

    • 기술적인 관점: 다중화(ex - 클러스터링), 부하 분산(ex - 로드밸런싱)
  6. 네트워크 장애 대책: 티밍(출입구가 되는 네트워크 카드에 장애가 발생해서 통신 불가 상황 방지하는 기술)

  7. 디스크 장애 대책: RAID

  8. 데이터 백업: Full 백업, 차등 백업

    • 물리적인 구현 형태: 메인->대기 시스템으로의 백업, 서버 안 예비 디스크 준비 백업, DVD나 테이프 저장 장치 등의 외부 매체 활용
  9. 전원 백업

    • UPS: 갑작스런 정전이나 전압의 급격한 변화로부터 서버나 네트워크 기기 등을 보호하는 장비
      1. 정전 시 전원 공급 기능
      2. 안전하게 셧다운 하는 기능

서버의 도입

  1. 서버 도입 시 검토 과정: 어떤 시스템? > 서버가 어떤 처리? > 클라우드 > 온프레미스인가, 임대인가?
    => 이제는 새로운 시스템은 거의 클라우드부터 검토하는 게 기본
    => 클라우드나 어플라이언스 서버의 등장으로 서버 관련 작업 공수 감소
    => 비즈니스에 집중!

  2. 서버의 성능 견적

    • 3가지 관점: 탁상 계산에 의한 견적, 동종 사례와 메이커 추천 참고, 툴을 이용한 성능/부하 측정
    • CPU 탁상 계산: 이전에는 클록 주파수였으나, 이제는 CPU 코어와 스레드 수 중심
  3. 서버 설치 장소(온프레미스 시)

  4. IT 전략과의 정합성 확인

  5. 서버는 누가 관리하는가?

    • 용무: 사용자 관리, 자산 관리, 운용 관리 등
  6. 서버 사용자는 누구인가?

    • 시스템이나 서버의 사용자는 워크그룹으로 관리(조직 단위나 역할 등으로)
    • 사용자의 권한

서버의 운용 관리

가동 후 관리

  • 운용 관리 by 시스템 운용 담당자 : 운용 감시, 성능 관리, 변경/장애 대응 - 정형적/메뉴얼화된 운용 등
  • 시스템 보수 by시스템 엔지니어 : 성능 관리, 레벨업, 기능 추가, 버그/장애 대응 - 비정형/메뉴얼화 되지않은 운용 등

장애의 영향: 영향 범위와 영향도(크기)로 검토

서버의 성능 관리: CPU, 메모리, 디스크 등의 순으로 사용률 확인, 대처

SW 업데이트: 성능 향상(시스템 기능 추가, 버전 업), 정상 운용(버그 수정, 필수 SW 업데이트)

장애 대응

  • 장애: 시스템이 정지하거나 서버가 보이지 않는 등 정상으로 기능하지 않는 것
  • 기본적인 절차: CPU, 메모리, 디스크 순으로 살펴본다.
    - 전용 관리 툴 혹은 Command 사용(ping, ipconfig, tracert, arp)

서비스 수준 체계(SLA): 시스템 이용자를 고객으로 인식하고 높은 품질의 서비스를 제공해야한다는 사고방식

  • 주요지표: 가용성(시스템 가동시간), 복구 시간
    - 가용성: 시스템을 멈춰선 안 된다는 원칙 하
    • 복구시간: MTTR(평균 복구 시간) - 시스템에 고장이 발생하고나서 일정 시간 이내로 복구(평균 시간)

사례와 미래

  • 미래 키워드: 소형화, 집적화, 가상화, 다양화, 클라우드

얻어가야하는 것

과정: 어떤 시스템을 만들고 싶다(구체화) --- 시스템 규모 ---> 서버 검토

  • 시스템 모델화 및 구성 => 관계자 간의 공통된 인식
    - SW, HW 요구사항 고려
    - 무슨 시스템/접속 기기 종류/네트워크/기능/이용형태(3가지 중)

  • 서버 검토
    - 성능 견적 후, 사이징

    • 서버가 정말 필요한가? (투자 대비 효과)
  • CPU 아키텍처
    - x86 (CISC 방식)

    • ARM (RISC 방식)
  • 서버 전용 소프트웨어와 미들웨어

  • Proxy

  • SSL

  • 컴퓨터 간 데이터 통신, 데이터 캡슐화

  • 완충 지대(DMZ)

  • 미래 키워드: 소형화, 집적화, 가상화, 다양화, 클라우드


0개의 댓글