에이블스쿨 6기 DX 트랙/일일 복습

IT 인프라 - DAY. 03

d061120 2024. 11. 27. 19:31

4. 서버와 스토리지

Unit 1. 서버

※ 서버란?

  • Server: 제공자
  • 클라이언트에게 서비스를 제공하는 컴퓨터 또는 시스템
  • 클라이언트의 요청에 응답하여 데이터를 보내주는 시스템 또는 컴퓨터

[K-마켓 IT 인프라 구성도 - 서버 & 스토리지]


[서버(컴퓨터)의 전통적인 아키텍처]

  • App: 웹, 데이터베이스, 게임, 메일
  • OS: Z/OS, AIX, HPUX, Windows, Linux
  • H/W(CPU, Memory, Disk, Network): 메인프레임, 유닉스, x86

[Server Farm & DMZ]

  • 서버팜
    • 컴퓨터와 서버 등 운영에 필요한 시스템을 한 곳에 모아 놓은 곳
    • 외부에서 허가 되지 않은 접근은 접근 차단
  • DMZ (비무장지대)
    • 보안 지역과 비보안 지역사이의 중립지역
    • 공개해도 되는 서버를 배치하여 서버팜으로의 직접적인 접근을 막아 보안강화

[웹서비스 3Tier 아키텍처 요소]

  • 웹서버
    • 웹 브라우저(클라이언트)로부터 요청을 받아
      정적인 컨텐츠(html, jpeg)는 직접 처리하고동적인 컨텐츠는 WAS에 전달
    • Apache, Nginx, IIS 등
  • WAS (Web Application Server)
    • DB조회나 다양한 로직을 처리하는 동적인 컨텐츠 처리
    • Tomcat, JBoss 등
  • DBMS (Database Management System)
    • 데이터베이스를 운영하고 관리하는 소프트웨어
    • MySQL, MariaDB, Oracle 등

[1Tier]

  • 구조: 클라이언트와 서버가 동일한 시스템에 위치
  • 특징: 모든 애플리케이션 로직과 데이터가 하나의 시스템에서 실행됨
  • 예: 로컬에서 실행되는 데스크톱 애플리케이션
  • 장점:
    • 구현 및 관리가 간단함
    • 네트워크가 필요 없으므로 응답 시간이 빠름
  • 단점:
    • 확장성 부족
    • 데이터 및 애플리케이션이 로컬에 의존하므로 보안에 취약

→ 서비스 운영 단계에서는 권장하지 않음


[2Tier]

  • 구조: 클라이언트와 서버로 나뉨
    • 클라이언트: 사용자 인터페이스(UI)와 일부 비즈니스 로직 실행
    • 서버: 데이터베이스와 주요 비즈니스 로직 처리
  • 예: 클라이언트-서버 모델을 사용하는 애플리케이션
    (예: PC의 클라이언트 프로그램과 중앙 서버의 데이터베이스)
  • 장점:
    • 데이터와 로직이 분리되어 관리 용이
    • 네트워크를 통해 여러 클라이언트에서 데이터에 접근 가능
  • 단점:
    • 클라이언트-서버 간 네트워크 병목 가능
    • 클라이언트에 로직이 포함되어 업데이트와 유지보수 복잡

[3Tier]

  • 구조: 클라이언트, 애플리케이션 서버, 데이터베이스 서버로 분리.
    • 프레젠테이션 계층 (클라이언트): 사용자와 상호작용.
    • 비즈니스 로직 계층 (애플리케이션 서버): 주된 로직 처리.
    • 데이터 계층 (데이터베이스 서버): 데이터 관리 및 저장.
  • 예: 현대적인 웹 애플리케이션 (프론트엔드 + 백엔드 + 데이터베이스).
  • 장점:
    • 각 계층이 독립적이므로 확장성과 유지보수 용이.
    • 다양한 클라이언트(웹, 모바일)에서 사용 가능.
    • 보안, 성능, 분산 처리 등 최적화 가능.
  • 단점:
    • 구현 및 관리 복잡.
    • 추가적인 네트워크 통신으로 인해 응답 시간 증가 가능.

→ 현대의 대부분의 웹 애플리케이션은 유연성과 확장성을 위해 3Tier 구조 선호


[서버 아키텍처의 발전]

기술의 발전에 따라 서버 아키텍처는 발전하여 왔고
현재는 서비스 목적이나 비즈니스 상황에 따라 크게 3가지 아키텍처 사용 중

  • 일반
  • 가상머신
    • 서버 가상화 (Virtualization)
      • 하이퍼바이저(hypervisor):
        호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼(platform)
  • 컨테이너:
    컨테이너란 OS 수준의 가상화 기술로 리눅스 커널을 공유하면서
    프로세스를 격리된 환경에서 실행하는 가상화 기술
    • 서버 컨테이너화 (Containerization)

Unit 2. 가상머신과 컨테이너

[일반(물리) vs 가상 아키텍처]

※ 가상 아키텍처를 사용하는 이유

  • 자원 활용도 증가
  • 유연성과 확장성
  • 비용 절감
  • 관리 용이성
  • 격리성 및 보안 강화
  • 이식성: 가상 머신은 물리적 하드웨어와 독립적이므로 다른 서버로 쉽게 이전 가능

[하이퍼바이저: Baremetal vs Hosted]


 

1. Bare-metal 하이퍼바이저(= Type 1 하이퍼바이저)

  • 설치 위치: 물리적 하드웨어 위에서 직접 실행, 운영체제(OS)가 필요하지 않음
  • 예: VMware ESXi, Microsoft Hyper-V, Xen
  • 특징:
    • 운영체제 없이 하드웨어 자원에 직접 접근
    • 높은 성능과 안정성 제공
    • 주로 서버 및 데이터센터 환경에서 사용
  • 장점:
    • 낮은 오버헤드로 인해 효율적
    • 높은 자원 활용도 및 성능
    • 보안성이 뛰어남(독립적 계층 구조)
  • 단점:
    • 초기 설치와 설정이 복잡
    • 전문적인 관리 기술 필요

2. Hosted 하이퍼바이저(= Type 2 하이퍼바이저)

  • 설치 위치: 기존 운영체제(OS) 위에서 실행
  • 예: Oracle VirtualBox, VMware Workstation, Parallels Desktop
  • 특징:
    • 호스트 OS가 하드웨어를 관리하고, 하이퍼바이저는 그 위에서 동작
    • 주로 개인 사용자나 소규모 개발 환경에서 사용
  • 장점:
    • 설정과 관리가 간단
    • 운영체제가 제공하는 다양한 기능 활용 가능
    • 데스크톱 환경에서 편리
  • 단점:
    • 호스트 OS를 거쳐 하드웨어에 접근하므로 성능 저하 발생
    • 오버헤드가 더 크며 대규모 시스템에는 부적합

요약:

  • Bare-metal: 하드웨어에 직접 설치, 높은 성능과 안정성, 서버 환경에 적합
  • Hosted: 운영체제 위에서 실행, 사용 편의성 높음, 개인 및 개발 환경에 적합

[물리 자원 공유]

  • 하나의 호스트에서 동작하는 가상머신들은
    결국 그 호스트에 있는 cpu, 메모리 같은 자원들을 공유해서 사용함


[가상 네트워킹]

  • 하이퍼바이저 내에 가상 스위치를 만들어 사용
  • 하이퍼바이저 종류에 따라 스위치의 동작 방식은 다름

[가상머신 마이그레이션(Migration)]

  • 마이그레이션: 가상머신을 하나의 호스트에서 다른 호스트로 이동
    • Live Migration:
      - 서비스 중단 없이 가상 머신을 다른 호스트로 옮기는 기술
    • Off-line(non-live) Migration:
      - 서비스 중단(shutdown) 후 가상 머신을 다른 호스트로 이동

[Virtual Box]

  • Type 2 (Hosted) 하이퍼바이저
  • 윈도우, 리눅스, Mac OS 에서 실행 가능
  • 금일 실습 시간에 사용했던 툴(실습 내용 생략)

[컨테이너란]

  • OS 가상화 기술 중 하나
  • 프로세스를 격리하는 기술
  • OS 커널에서 다수의 컨테이너를 실행 가능

[컨테이너와 가상머신 비교]


[컨테이너 엔진의 발전 흐름]

  • LXC (LinuX Containers):
    • 단일 호스트상에서, 여러 개의 격리된 리눅스 시스템(컨테이너)들을 실행하기 위한
      운영 시스템 (cgroups 기술 + namespaces 기술)
  • 도커:
    • LXC를 기반으로 조금더 효율적으로 컨테이너를 생성, 관리, 배포 작업을 도와주는 기술.
      컨테이너를 이미지화 하여 배포를 쉽고 빠르게 지원.
    • LXC에는 없는 캡쳐(스냅샷) 기능보유
  • CRI-O:
    • 쿠버네티스(다중 컨테이너 관리도구)에서 사용할수 있게
      맞춤형식으로 개발된 컨테이너 엔진

'에이블스쿨 6기 DX 트랙 > 일일 복습' 카테고리의 다른 글

클라우드 서비스 - DAY. 01  (0) 2024.12.02
IT 인프라 - DAY. 04  (0) 2024.11.28
IT 인프라 - DAY. 01  (0) 2024.11.25
딥러닝 심화: Object Detection  (0) 2024.11.08
딥러닝 2일차  (0) 2024.11.06