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)
- 하이퍼바이저(hypervisor):
- 서버 가상화 (Virtualization)
- 컨테이너:
컨테이너란 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) 후 가상 머신을 다른 호스트로 이동
- Live Migration:
[Virtual Box]
- Type 2 (Hosted) 하이퍼바이저
- 윈도우, 리눅스, Mac OS 에서 실행 가능
- 금일 실습 시간에 사용했던 툴(실습 내용 생략)
[컨테이너란]
- OS 가상화 기술 중 하나
- 프로세스를 격리하는 기술
- OS 커널에서 다수의 컨테이너를 실행 가능
[컨테이너와 가상머신 비교]
[컨테이너 엔진의 발전 흐름]
- LXC (LinuX Containers):
- 단일 호스트상에서, 여러 개의 격리된 리눅스 시스템(컨테이너)들을 실행하기 위한
운영 시스템 (cgroups 기술 + namespaces 기술)
- 단일 호스트상에서, 여러 개의 격리된 리눅스 시스템(컨테이너)들을 실행하기 위한
- 도커:
- LXC를 기반으로 조금더 효율적으로 컨테이너를 생성, 관리, 배포 작업을 도와주는 기술.
컨테이너를 이미지화 하여 배포를 쉽고 빠르게 지원. - 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 |