1. IT 인프라 구조의 이해
1.1. IT 인프라의 정의 및 중요성
1.1.(1). IT 인프라의 정의 및 중요성
1.1.(2). IT Infrastructure
- 시스템의 *비기능적인 요구사항과 관련
*비기능적인 요구사항(Non-functional Requirement) : 시스템의 성능, 안정성, 확장성, 보안 등과 같은 요구사항
df. 기능적인 요구사항(Functional Requirement) : 시스템이 제공하는 기능 또는 서비스에 대한 기술
1.1.(3). IT 인프라의 구성요소
- 하드웨어 | 소프트웨어 | 네트워크
1.1.(4). 하드웨어와 소프트웨어
1.1.(5). IT 인프라에 대한 관점
Ex. 시스템 관리자 vs 비즈니스 분석가 vs 일반 사용자
1.1.(6). IT 인프라의 중요성
정보기술 지원 / 기업의 경쟁력과 혁신 촉진 / 개인정보 및 데이터 보안 / 변화에 유연한 대응
1.2. 전통적인 IT 인프라의 구조와 기능
1.2.(1). IT 인프라의 계층
- 소프트웨어 및 애플리케이션
- 액세스 및 장치
- 서버 및 스토리지
- 네트워크 및 통신
- 전문 및 관리형 서비스
1.2.(2). 전통적인 IT 인프라 관리의 5가지 핵심 요소
애플리케이션 / 데이터베이스 관리 / 서버&운영체제 / 네트워크&스토리지 / 백업&재난복구 시스템
1.2.(3). 전통적인 IT 인프라의 특징
; 보안 및 데이터 보호에 있어 On-premise vs Cloud -> 개인/팀 역량에 따르는 부분
2. IT 인프라의 구성요소
2.1. IT 인프라의 주요 구성 요소 : 하드웨어
2.1.(1). 개요
Hardware + Software -> Meatware(; human entities in a computer system or technology)
2.1.(2). 하드웨어와 네트워크
2.1.(3). 서버
2.1.(4). 물리 서버
2.1.(5). Server vs PC
2.1.(6). 물리서버의 종류
2.1.(7). 서버 타입 별 유형
타워형 서버(Workstation) / 랙(Rack)형 서버 / 블레이드(Blade) 서버
; 서버가 아무리 스펙이 좋아도 네트워크 문제를 해결하지 못하는 경우 발생
Ex. 코로나 때, Network BottleNeck 발생으로 서버 과부하가 아님에도 서비스 장애 발생
※ 물리적인 호환성 문제 Example : 벤더락인(Vendor Lock-in)
2.1.(8). 랙(Rack)
; 네트워크 트래픽 과부하로 인한 문제를 해결하는 분산처리를 하기 위해 Rack 방식과 네트워크 스위치를 같이 가지는 형태로 변화
2.1.(9). CPU
2.1.(10). GPU
; GPU 자체가 병렬 처리에 최적화된 작고 많은 코어로 구성되어 있기에
-> 병렬처리 연산에 CPU보다 GPU가 강점을 가지기에 Cloud 서비스를 사용하면 매우 효율적 -> 병렬처리가 많이 필요한 딥러닝에서 많이 사용
2.1.(11). Memory
; Swapping이 많이 일어나면 RAM의 성능 향상 필요
(?Windows에서는 Page/Paging이라고 지칭? (Ref_https://stackoverflow.com/questions/1688962/whats-the-difference-between-operating-system-swap-and-page)
2.1.(12). 스토리지 디바이스(Storage Device)
2.1.(13). 연결방식 기반의 스토리지 디바이스 분류
; DAS -> NAS
~ 스토리지의 DB서비스 지속을 위해 분리되어 네트워크로 연결(<- 서버의 장애로 인한 스토리지에서 영향을 받기에)
; NAS -> SAN
~ NAS에서 하나의 스위치에 의한 서버쪽 트래픽 과부하로 인해 스토리지 부분 네트워크 장애 발생 -> fibre channel(;Storage 전용 채널) 따로 네트워크 채널 생성 (SAN; Storage Area Network)
; SAN의 경우, 고가이며 구현이 어렵다 ~ Ex. 금융 DB서버, 게임 DB서버 (빠른 응답과 동시성이 필요하기에)
2.1.(14). 기타 하드웨어 : 메인보드, NIC, UPS, KVM Switch
2.2. IT 인프라 주요 구성 요소: 소프트웨어
2.2.(1). 소프트웨어
2.2.(2). 운영체제(Operating Systems, OS) : Unix-based & Unix-like
2.2.(3). Unix
2.2.(4). 애플리케이션 소프트웨어
; AP Server(애플리케이션 서버) = WAS(; HTTP를 이용하는 AP Server)
2.2.(5). 애플리케이션 서버의 3가지 연결 구조
Tier 1 / Tier 2 / Tier 3
3. 네트워크 및 데이터센터
3.1. IT 인프라 주요 구성 요소 : 네트워크
3.1.(1). 네트워크
LAN & WAN
3.1.(2). 프로토콜
3.1.(3). 네트워크 참조 모델(Reference model)
OSI(Open Systems Interconnection) 모델 & TCP/IP 모델
3.1.(4). OSI 계층 vs TCP/IP 계층
3.1.(5). TCP/IP
3.1.(6). IP Address
3.1.(7). CIDR(Classless Inter-Domain Routing)
3.1.(8). 공인 IP와 사설 IP
3.1.(9). 물리적인 포트와 논리적인 포트
3.1.(10). 네트워크 주요 장비
이더넷 허브 / L2 스위치 / VLAN / L3 스위치 / 라우터
3.2. IT 인프라 주요 구성 요소 : 데이터 센터
3.2.(1). IT 인프라 환경의 변화 : On-Premise -> Colocation -> Cloud
3.2.(2). 데이터센터
3.2.(3). 데이터센터의 중요성
3.2.(4). 데이터센터 인프라 구성 요소
3.2.(5). 데이터 센터 구축 시 고려사항
안전 및 물리적 보안 / 1년 365일 무중단 서비스 / 전력 소비량 감축 / 미세먼지 필터링 장비 설치
4. 가상화와 클라우드
4.1. 클라우드 컴퓨팅의 핵심 기술 : 가상화
4.1.(1). 가상화와 클라우드
+ 가상화와 클라우드 차이점
- 가상화 : 단일 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 자원(리소스)을 생성하는 기술
- 클라우드 : 네트워크 전체에 확장 가능한 자원(리소스)을 추상화하고 풀링(Pooling)하는 IT 환경
4.1.(2). 가상화(Virtualization)
4.1.(3). 가상화(Virtualization)의 종류
서버 가상화 / 네트워크 가상화 / 스토리지 가상화 / 데스크톱 가상화 (+ Hypervisor Virtualization)
4.1.(4). 서버 가상화의 핵심기술
하이퍼바이저 & 컨테이너
4.1.(5). 서버가상화
4.1.(6). 서버가상화 : Native/Bare-metal Hypervisor
4.1.(7). 서버가상화 : Hosted Hypervisor
4.1.(8). 서버 가상화의 장점
리소스 최적화 / 비용 절감 / 유연성과 확장성 / 격리성 / 테스트 및 개발 환경 제공
4.1.(9). 서버 가상화의 단점
성능 오버헤드 / 관리의 복잡성 / 보안 문제
4.1.(10). 애플리케이션 실행 환경의 변화
On-Premise -> Virtual Machine -> Container
4.1.(11). 서버가상화 : Container
4.1.(12). Virtual Machine vs Container
전통적인 배포 vs 가상머신 기반 배포 vs 컨테이너 기반 배포
; k8s는 컨테이너 기반인 도커의 OS 문제에 따른 영향이 없도록, 클러스터를 구성해서 컨테이너 지휘/관리
4.2. 클라우드 컴퓨팅
4.2.(1). IT 인프라 환경의 변화
온프레미스(On-Premise) -> 코로케이션(Colocation) -> 클라우드(Cloud)
4.2.(2). 클라우드 컴퓨팅의 등장
1965.John McCarthy | 1996.Compaq.Internet Solution Division Strategy for Cloud Computing | 2006.Christophe Bisciglia | 2006.Amazon Web Service
4.2.(3). 클라우드의 정의
NIST(미국 국립 표준 기술 연구소)의 정의
4.2.(4). 클라우드 컴퓨팅의 3-4-5 모델(NIST)
- 3 Service Models : IaaS & PaaS & SaaS
- 4 Deployment Models : Private Cloud (& Community Cloud(Ex.공공 클라우드)) & Hybrid Cloud & Public Cloud
- 5 Essential Characteristics : On-demand Self-service & Broad Network Access & Resource Pooling & Rapid Elasticity & Measured Service
4.2.(5). 클라우드컴퓨팅 서비스 모델
4.2.(6). Cloud 3 Service Model
4.2.(7). 클라우드 컴퓨팅 배포 모델
Public Cloud / Private Cloud / Hybrid Cloud
4.2.(8). 클라우드 모델의 필수 특성
주문형 셀프 서비스 / 광범위한 네트워크 액세스 / 리소스 풀링(resource pooling) / 민첩한 탄력성 / 서비스 측정
4.3. 데이터센터의 유형
4.3.(1). 데이터센터의 유형
온프레미스 데이터센터 / 코로케이션(Colocation) 데이터센터 / 클라우드 데이터센터 / 에지 데이터센터(Edge Data Center)
4.3.(2). 온프레미스와 클라우드 컴퓨팅 데이터 센터 비교
5. 클라우드네이티브
5.1. 클라우드 네이티브의 개념
5.1.(1). 클라우드네이티브의 정의 : 클라우드 컴퓨팅 모델의 이점을 최대한 활용하여 정보시스템을 구축 및 실행하는 환경
5.1.(2). CNCF에서 정의한 클라우드 네이티브 정의
인프라 관점 | S/W 아키텍처 관점 | 개발 및 운영조직, 프로세스 관점 | 서비스 운영 관점
5.1.(3). 클라우드 네이티브의 주요 특징
코드 기반 인프라(IaC) / 개발팀과 운영팀 지속 협력 / 클라우드 인프라 전반에서 배포 및 관리 / 컨테이너 기반 코드 패키징 / MicroService 기반 설계
5.1.(4). 클라우드 네이티브이 주요 구성요소
DevOps / Continuous Delivery(CI/CD) / Microservices / Container-based Infra