091

[네트워크] IT 인프라 : 구성요소 및 기술 본문

Computer Science/네트워크(NETWORK)

[네트워크] IT 인프라 : 구성요소 및 기술

공구일 2024. 12. 15. 02:34
728x90

01. 구성요소 

(1) 하드웨어

- 서버 : 일반 컴퓨터와 유사, 전원이 이중화 되어 안정적인 전원공급, CPU, 메모리가 일반 컴퓨터 보다 처리용량이 높음 (ex) 타워형 서버(소규모 환경), 랙마운트형 서버(데이터 센터) -> 각 컴포넌트는 버스로 연결, PCle(PCI Express)는 외부 장치와 연결되는 버스

-> 가상서버(Virtual Machine, VM) : 가상화 기술을 통해 하드웨어 자원을 여러 개로 분할하여 각각을 개별 서버로 동작

-> 하이바이저(Hypervisor) : 가상머신 생성/삭제 소프트웨어

+) GPU서버 : 일반 CPU서버와 달리 강력한 그래픽 처리 장치를 탑재한 서버, 고성능 컴퓨팅 환경에 필수적으로 활용, 수천 개의 코어를 동시 연산 처리하거나 행렬 연산과 같은 대규모 병렬처리에 최적화된 병렬 처리 능력을 지님 (ex) 인공지능 및 머신러닝, 데이터 사이언스

 

- 서버랙 : 하드웨어 장비를 설치하는 장치, 전면에는 전원 버튼, HDD 등이 있고 손으로 쉽게 HDD 교체 원활, 전원선 등 케이블은 랙 뒷면에서 연결 -> 폭 19인치, 1U : 4.5cm, 2U : 9cm( U:Unit 단위로 서버랙 높이의 기본 척도)

 

- 스토리지 : 컴퓨터에 데이터를 저장하는 저장소의 역할, 주로 서버에는 HDD가 설치되며, SSD로 대체되는 추세, RAID 구성

-> 스토리지 종류

∙ DAS(Direct Attached Storage) : 저장 장치가 호스트에 직접 연결되어 사용 및 관리, 속도가 빠르고 확장이 쉽지만, 연결되는 수가 한정적임 (ex) USB 사용 외장하드

∙ NAS(Network Attached Storage) : 스토리지를 네트워크에 부착하여 사용(데이터 공유 방식),확장성,유연성,접속증가 시 성능저하 

∙ SAN(Storage Area Network) : 스토리지를 전용 네트워크로 구성하여 사용(고속, 고품질 환경), 광채널 스위치로 연결(SAN 전용 스위치 필요) (ex) FC-SAN(광통신), IP-SAN(IP통신)

-> 스토리지의 데이터 저장방식

블록 스토리지(Block Stroage) : 데이터를 일정한 크기의 블록으로 나누어 저장, 정형화된 데이터를 빠르게 처리하는 용도 (ex) SAN 또는 가상머신의 디스크로 사용

파일 스토리지(File Storage) : 파일과 폴더의 계층 구조로 이루어진 방식, 가장 일반적이로 익숙한 방식(윈도우 탐색기), 데이터가 많아지면 파일과 폴더를 찾는 리소스 소모 -> 성능저하 (ex) NAS

오브젝트 스토리지(Object Storage) : 오브젝트(비디오, 오디오, 텍스트 등)라는 개별 데이터 단위로 데이터를 저장, 평면 구조로써 접근이 쉽고 확장성 높음 (ex) AWS S3

* HDD(하드 디스크 드라이브) : 전통적인 자기 디스크 기반 저장 장치로 대용량 데이터 저장 가능하며 비용 효율적

SDD(솔리드 스테이트 드라이브) : 반도체 기반 저장 장치로 빠른 읽기/쓰기 속도를 제공, 서버 스토리지에서 HDD 대체하는 추세

RAID : 여러 개의 디스크를 하나의 논리적 저장소로 구성해 고가용성과 고성능을 제공하는 기술 (ex) RAID 0(스트라이핑), RAID

 

- 네트워크

Layer Description Data Unit Protocol Network Device
7 응용 계층 통신 관련 프로그램으로 사용자 입력/출력 제공 Data HTTP,FTP,SMTP,Telent L7
6 표현 계층 데이터 재구성 또는 구문 검색(암호화, 압축 등) ASCII, MPEG,MIDI  
5 세션 계층 연결에 대한 설정/관리/해제와 대화 및 동기 제어 API's,Sockets,WinSock  
4 전송 계층 종단 간 데이터 전송, 순서 변경, 재조립, 오류 복구, 흐름 제어 Segments TCP,UDP L4
3 네트워크 계층 경로 설정, 종단 장치 간 데이터 전송, 네트워크 주소 지정 Packet/
Datagram
IT,ICMP,IPSec, IGMP L3 Router
2 데이터링크 계층 이웃 장치 간 접속 방식, 오류 검출/정정, 흐름 제어, 프레임 동기화 Frame Ethernet, Token Ring, FDDI, Apple Talk L2, Bridge
1 물리 계층 기게적, 전기적 또는 광 특성의 신호를 전송 Bit Coax, Fiber, Repeaters NIC, Repeater, Hub

(2) 소프트웨어

- 운영체제 : 컴퓨터 하드웨어와 사용자 및 소프트웨어를 연결해주는 소프트웨어 (ex) 유닉스, 리눅스, 윈도우

(3) 데이터 센터 : 지진 해일 등 자연 재해 위험이 적은 곳, 지반이 딱딱한 곳 -> 대규모 지진에 대비한 내진 설계, 출입 관리를 엄격, 냉난방시설, 전력 및 통신 다중화, 전기 요금 증가 및 에너지 절약을 위해 자연 환경 적극 활용

(4) 보안

- 보안 위협으로부터 조직의 IT 인프라를 보호하기 위한 모든 보안 조치

∙ 외부 위협 : 해킹, DDoS, 악성코드/랜섬웨어

∙ 내부 위협 : 내부자 위협, 데이터 유출, 보안 정책 미준수

-> 물리적 보안 : 데이터 센터의 접근 통제, CCTV 감시, 환경 모니터링(온도, 습도, 화재 감지 등)

-> 네트워크 보안 : 방화벽 구축, 침입 탐지/방지 시스템(IDS/IPS), VPN, DDoS 방어 시스템

-> 시스템 보안 : 접근 권한 관리, 백신/악성코드 차단, 데이터 암호화

 

02. 인프라 관련 기술

(1) 직렬/병렬 -> 병렬의 경우 병목현상 발생

- CPU,HDD등에서 직렬/병렬 처리

∙ 직렬 처리로 속도를 높이는 한계 발생

∙ 병럴 처리로 속도가 빨라지는 것은 아니나(CPU 처리 능력이 동일) 단위 시간당 처리량이 증가

∙ 디스크의 읽기,쓰기(I/O) 처리

- 서부 내부에서의 처리

∙ 멀티 프로세스 : 다수의 웹서버 데몬(https)을 실행

∙ 멀티 스레드 : 하나의 프로세스 안에 다수의 스레드를 이용해 병렬화

- 서버 외부에서의 처리

∙ 부하분산을 위해 복수의 서버 배치 & 데이터 처리

 

(2) 동기/비동기

- 동기처리 (ex) 웹페이지를 새로고침

∙ 서버가 일을 마칠 때까지 기다림( 결과가 있을 때까지 아무것도 못하고 대기)
∙ 설계가 간단하고 직관적 

- 비동기처리 (ex) 웨페이 새로고침 하지 않고 데이터 로드(댓글 영역만 업데이트)

∙ 서버에게 일을 맡기고 다른 일하고 때가 되면 응답 받음 -> 자원을 효율적으로 사용할 수 있음

∙ 동기보다 설계가 복잡

 

(3) 큐(Queue)

- 대기 행렬로서 FIFO(First-In-First-Out) 구조를 가짐

- 사용사례

∙CPU 처리를 기다리고 있는 프로세스나 스레드 행렬

∙ 프린터 출력을 위한 대기열

∙ 네트워크의 품질(QoS)을 높이기 위해 우선순위 큐를 사용

+) 스택(Stack) : LIFO(Last-In-First-Out) 구조

 

(4) 배열, 연결리스트

- 배열 : 같은 성질을 갖는 항목들을 순서대로 구성한 집합

∙ 항목 사이에 빈틈이 없으며, 메모리 낭비가 될 수 있음

∙ 탐색이 빠르나, 데이터 추가,삭제가 느림

- 연결리스트

∙ 크기가 가변적으로 메모리 공간에 불연속적으로 데이터 저장

∙ 다음 항목의 주소를 저장 & 선으로 연결한 구조

∙ 탐색은 느리나, 데이터 추가,삭제가 빠름

 

(5) 캐시(cache) : 사용 빈도가 높은 데이터를 고속으로 접근할 수 있도록 조치하는 것

- 브라우저에서 요청한 페이지가 먼저 캐시에 저장되어 있는지 확인 -> 캐시에 있으면 빠른 응답(cache hit)

-> 캐시에 없으면 메모리부터 데이터를 가져오고 재사용을 위해 캐시에 저장(cache miss)

- 보통 CPU와 메모리 사이의 속도를 조절하기 위해 사용하나, 웹서비스에서 브라우저와 웹서버간의 속도를 조절할 때도 사용

 

(6) 배타적 제어

- 병렬처리 환경에서 하나의 자원을 공유하는 상황에 발생 -> 공유자원에 동시 접근 시 장애 발생, 배타적 제어 처리 부분은 병목현상 발생

- 두개 이상의 프로세스/스레드가 공유자원에 동시에 접근 불가

  장점 단점
With 배타적 제어 공유 데이터를 일관성 있게 유지 병렬 처리 불가
W/O(without) 배타적 제어 병렬처리로 빠르게 처리 데이터 불일치 발생(공유 데이터 동시 접속)

 

(7) 인터럽트

- 프로세스 실행 중 예상하지 못한 상황이 발생했을 때, 그 일을 먼저 처리 후 원래 작업으로 복귀

- 외부 인터럽트

∙ 입출력 장치 : 키보드, 마우스와 같은 입출력 장치의 입력 처리

∙ 타이머 : 일정 시간 간격으로 CPU에 인터럽트 요청

- 내부 인터럽트

∙ 하드웨어의 고장, 실행할 수 없는 명령어

∙명령어 실행 오류, 사용 권한 위배

 

(8) 폴링

- 일정한 주기로 서버와 응답을 주고 받는 방식

- HTTP는 지속적 연결이 불가능, 주기적으로 서버에 요청을 보내 업데이트

- 폴링은 주기가 짧으면 서버에 오버헤드(부담) 증가, 주기가 길면 실시간성이 떨어짐

+) 웹훅 : 서버에서 어떠한 작업이 수행되었을 때 해당 작업이 수행되었을 때, 해당 작업이 발생했다고 HTTP POST 방식으로 알림

(9) 이중화(가용성 향상)

- 시스템의 장애를 대비하는 등 안전성을 강화하기 위해 같은 시스템을 두 개 이상 설치하고, 시스템 장애 발생 시 정상 시스템으로 전화하도록 만든 구조

* 안정성 : 시스템이 일정한 시간동안 오류 없이 동작하는 능력 = 고가용성

가용성 : 시스템이 서비스를 요청받았을 때, 서비스를 제공할 수 있는 능력

- 이중화 대상

전원, 장치의 이중화 : 독립적으로 운영되는 복수의 전원 탭 연결, UPS(정전 시에 애용하는 대규모 충전지) 활용

(WEB/WAS) 서버 이중화 : 물리적 서버나 가상 서버를 복수로 구성하여 한 서버가 장애가 발생하더라도 다른 서버가 서비스 제공

네트워크 이중화 : 네트워크 인터페이스 카드(NIC)를 이중화하여 카드 장애 및 포트 장애에 대응, 네트워크 장비의 장애를 대비한 이중화 (ex) 같은 일을 하는 L2 혹은 L3 스위치 2개 연결

저장소 이중화 : HDD 이중화 또는 RAID 구성을 통해 디스크 이중화

데이터 센터 이중화 : 자연 재해를 대비해 데이터 센터 자체를 이중화

- 이중화 구현 기술

로드 밸런싱 : L4 스위치 등을 이용해 트래픽을 여러 서버에 분산

클러스터링 : 여러 서버를 하나의 시스템처럼 동작하게 만드는 기술

데이터 복제 : Active 서버와 Standby 서버 간의 데이터 동기화

∙ 하트비트(Heartbeat) 모니터링 : 시스템이 살아있는지 확인, 서버들 간에 주기적으로 상태를 확인하여 장애 감지

(ex) 에이전트가 60초 간격으로 하트비트 메시지 전송, 정해진 시간에 하트비트 메세지가 오지 않으면 경고 및 추가 조치

 

(10) 성능향상

- 성능 문제의 원인 : 응답속도, 처리량

- 응답속도(Response) : 서비스 요청에 대한 응답 속도 (ex) 버퍼링

응답 지연이 발생 지점 확인 -> 네트워크 성능 확인

- 처리량(Throughput) : 단위 시간 당 처리된 데이터의 양 (ex) bps, Mbps

컴퓨터 리소스(CPU, 메모리 등)의 처리 능력 확인 -> 네트워크 대역폭 확인

- 병목현상(bottleneck) : 병의 목이 좁아 흐르는 수량이 제한되는 성질

-> 해결 방법은 원인을 파악해 시스템 성능을 높이거나(Scale Up) 병렬 처리할 수 있도록 수를 늘림(Scale Out)

- 위치별 병목현상

CPU 병목현상 : CPU를 이용하기 위해 대기 행렬이 발생(큐에 데이터가 쌓임) -> CPU 응답 느림

※ CPU 사용률이 100%라고 해서 병목현상이 발생한다는 것은 아님

메모리 병목 현상 : 메모리 영역 고갈, 동일 영역의 경합(공유 메모리에 다수가 접근)

디스크 I/O 병목현상 : HDD에 읽기/쓰기 과정에서의 병목

네트워크 I/O 병목현상 : 모든 트래픽을 한 개의 게이트웨이에서 처리하면서 병목

애플리케이션 병목현상 : 알고리즘의 문제로 처리량 혹은 응답속도가 낮음 -> 비효율적인 데이터베이스 접근

 

03. 클라우드 컴퓨팅

(1) 클라우드 컴퓨팅의 탄생 : 인터넷을 통해 컴퓨팅 자원(서버, 스토리지, 네트워크 등)을 필요한 만큼 제공하고 사용하는 기술

- 물리 서버를 사용하면서 비효율 발생으로 가상화 기술 탄생

- 자원(비용)의 비효율

하나의 서버에서는 하나의 운영체제와 애플리케이션을 설치/응용

하드웨어는 급속히 발전함에 따라 소프트웨어 요구사항을 상회

물리 서버 자원을 효율적으로 활용하기 위한 요구 등장

(ex) 자원활용도가 너무 낮더라도 별도의 서버 구축 -> 가상화를 통해 자원 분배

- 확장성 

비정기적인 트래픽(수강신청 등)에 대비하여 충분한 서버 구축 필요

-> 서버의 확징 및 축소에 리소스가 많이 투입됨 (ex) 서버 구입, 환경 구성(인터넷 연결, OS/app 설치 등)

- 유지보수 

서버 장애 시 서버 교체를 위해, 서버를 OFF 하고. 교체하면 서비스 중단 발생

=> 가상화 기술의 등장으로 자원을 효율적으로 사용할 수 있게 됨

 

(2) 가상화 기술 : 하드웨어 리소스(CPU, 메모리, 스토리지)를 논리적으로 다루는 기술 -> 서버 가상화, 네트워크 가상화,스토리지 가상화

- 서버 가상화 : 물리 서버 하나의 리소스를 여러 개의 서버 환경으로 할당 -> 각각 OS 및 app 실행

물리 서버 수를 줄여 공간 절약 및 비용 절감 -> 가상 서버 중 하나가 장애(바이러스 등)가 발생하더라도 다른 가상 서버에 영향 X

서버 가상화 기술

장점 - 가상 서버마다 OS 선택 가능
- 가상 서버들이 완전히 분리
- 하나의 가상 서버가 사이버 공격을 받아도 다른 가상 서버에게 피해가 미치지 못함
- 다른 컨테이너에 복사하거나 마이그레이션 하기 쉬움
- 가상화 환경 위에서 별도의 OS를 동작시킬 필요가 없어 하드웨어 리소스 적고 부팅이 빠름
단점 - 가상 서버마다 OS가 필요하므로 CPU, 메모리, 스토리지 등의 하드웨어 리소스 사용량 많음
- 가상 서버의 부팅 시간이 많이 걸림
- 호스트OS와 컨테이너는 커널을 공유(Linux 커널에서 window 컨테이너 동작 불가능)
- 하나의 호스트 OS가 여러 개의 컨테이너를 동작 시키므로 한 컨테이너가 사이버 공격을 받으면 다른 컨테이너도 위험에 노출

 

- 컨테이너 기술 : 애플리케이션과 그 실행에 필요한 모든 종속성(라이브러리, 바이너리 등)을 하나로 패키징한 기술

> 등장 배경 : 환경일관성, 신속한 배포와 확장성을 가진 클라우드 컴퓨팅이 확산, 작은 단위의 서비들을 독립적으로 배포/관리하는 마이크로 서비스 아키텍처(MSA)

> 특징 : 가상 서버보다 가상화 오버헤드가 적어 빠르게 기동/정지 가능, 하드웨어 리소스 사용이 적어 1대의 물리 서버에 많은 컨테이너 동작 가능, 컨테이너 단위로 패키징 돼 클라우드 간 복제 및 이식성 우수

> 대표 컨테이너 타입 가상화 소프트웨어 = Docker / 컨테이너 타입 가상화 소프트웨어 운영 관리 도구 = Kubernetes(K8S)

 

- 클라우드 컴퓨팅 비유(클라우드는 그릇 기반기술)

그릇 : 클라우드 사업자(ex) AWS, Azure, GCP

음식 : AI, IoT, 로봇, 블록체인, 양자, 위성

식탁에 다양한 음식들이 각각의 그릇에 담겨 사용자에게 제공됨

-> 사용자는 클라우드 환경에서 동작하는 각종 서비스를 유연하게 사용할 수 있음

개인 그릇/공용 그릇으로 구분

각 그릇은 다양한 음식을 담을 수 있음(다양한 서비스)

1개 식탁에 1개 이상의 그릇을 세팅할 수 있음(multi/hybird cloud)

다른 그릇의 소스를 찍어 먹을 수 있음(상호운용성)

 

- 클라우드 컴퓨팅의 특징

주문형 셀프 서비스 : 사업자의 수동 조작 없이 사용자별 관리 화면에서 서비스를 이용할 수 있음

광범위한 네트워크 접속 : 모바일 기기 등 다양한 디바이스로 서비스에 접속할 수 있음

리소스의 공유 : 사용자마다 리소스가 할당되지만, 어느 부분에 접속했는지 알수 없음

신속한 확장성 : 필요에 따라 리소스를 늘리거나 줄일 수 있음

측정 가능한 서비스 : 서비스를 이용한 만큼 요금이 부과

 

- 클라우드 서비스 모델

> SaaS(Software as a Service)

 업무에서 사용하는 SW의 기능을 필요한 만큼 서비스로 제공

하나의 서버를 여러 기업에서 공유하는 멀티 테넌트 방식

사용자 계정을 마련하면 서비스 바로 이용 -> 스마트폰, 태블릿 등의 다양한 기기로 접속 가능 (ex) google workspace

 

>PaaS(Platform as a Service)

기업의 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로 제공

애플리케이션 실행 환경이나 데이터베이스 등이 미리 제공

자사에서 개발한 응용 프로그램을 가동할 수 있음 -> 서버 및 미들웨어의 상세 설정은 불가능 (ex) kubernetes

 

>Iaas(Infrastructure as a Service)

CPU나 하드웨어 등의 컴퓨팅 리소스를 네트워크를 통해 서비스로 제공

대표 서비스 : 가상 서버, 온라인 스토리지

하드웨어 자원을 소프트웨어적으로 나누어 사용자에게 제공(자유로운 스케일 업/다운)

사용량에 따른 종량제 혹은 월정액제 (ex) 프로모션 진행 시 일시적으로 컴퓨터 리소스를 많이 빌려 사용하고, 종료되면 리소스 감축

(ex) Amazon Elasitic Compute Cloud(EC2)

 

- 클라우드 이용모델

>온프레미스(on-premise) : 회사 내에서 자체적으로 데이터 센터를 보유하고 시스템 구축에서 운용까지 직접 수행하는 형태

장점 : 높은 품질&보안

단점 : 하드웨어 리소스(CPU, 메모리 등)를 구축하는 초기 비용 발생

> 퍼블릭 클라우드(Public Cloud) : AWS, GCP, Azure와 같은 클라우드 사업자가 시스템 구축해 불특정 다수에게 서비스 제공

장점 : 하드웨어 투자 비용이 낮음, 필요한 자원을 빌려씀

단점 : 사용량이 많아지면 온프레미스 환경보다 더 많은 비용이 발생할 수 있음

> 프라이빗 클라우드(Private Cloud) : 클라우드 서비스 제공자가 기업의 전용 데이터 센터 환경 구축 제공

장점 : 높은 보안성

> 하이브리드 클라우드(Hybrid Cloud) : 퍼블릭 클라우드 + 프라이빗 클라우드
>커뮤니티 클라우드(Community Cloud) : 공통의 관심사(보안,규정준수,관할권 등)를 가진 특정목적의 커뮤니티를 공유하는 클라우드

  온프레미스 클라우드
경제성 - 사전에 시스템 이용 피크 타임을 예측하고, HW/SW를 준비
- 피크 타임 이외에는 리소스 낭비 발생
- 가격 변동 없음
- 사용하고자 하는 기능/기간만 사용하므로 낭비X
- 소프트웨어 및 데이터를 클라우드로 통합 관리
- 소프트웨어의 업데이트 및 데이터의 관리 효율
- 비용절약
유연성 - 서버 구축과 시스템 확장에는 고도의 기술과 엄청난 비용이 필요
- 구축된 시스템을 쉽게 확장/축소 어려움
- 컴퓨터 리소스를 필요한 만큼 확장/축소
가용성 - 서버의 장애 조치가 필요한 경우, 시스템의 이중화 및 백업 등의 조치가 필요 - 하드웨어에 장애가 발생하더라도 서비스를 계속해서 사용할 수 있도록 구성
빠른 구축 속도 - 시스템 설계 후 HW와 SW를 조달하고 배치하는데 시간이 걸림 - 클라우드가 제공하는 HW와 SW를 이용

 

+)기타

(1) 엣지 컴퓨팅(Edge Computing) : 네트워크의 중앙이 아니라 가장자리에서 데이터를 처리(클라우드는 중앙 집중 처리 방식)

- 데이터가 생성되는 곳 가까운 곳에 네트워크 엣지를 두어 분산 처리하는 방식으로, 데이터 처리 지연 시간 감소& 응답속도 향상, 네트워크 트래픽 개선, 안정성 향상, 보안 강화 (ex) IoT 장치, 자율주행자동차, 캐싱 등

 

(2) 서버리스 컴퓨닝(Serverless Computing) : 서버 인프라 관리 없이 코드 실행에만 집중할 수 있는 컴퓨팅 모델

- 개발자는 서버와 같은 인프라 관리를 할 필요 없어 애플리케이션의 빠른 개발과 배포 가능 (ex) AWS Lambda, Azure Functions

컴퓨팅 모델 발전과정

- 베어멘탈 : 하드웨어에 직접 운영체제를 설치하여 사용하는 전통적인 방식

클라우드 상에서 하나의 서버를 온전히 사용, 모든 하드웨어 리소스를 직접 제어 및 사용 가능 -> 확장성이 제한

- 가상머신 : 물리적 하드웨어를 논리적으로 나누어 여러 개의 가상 컴퓨터 생성

각 가상 머신은 격리된 환경을 제공하며 다양한 운영체제를 동시에 실행 가능

- 컨테이너 : 호스트 OS 위에 애플리케이션과 그 실행에 필요한 라이브러리만 패키징

빠른 배포와 확장, 자원 효율적이며, 호스트OS에 종속적 (ex) Docker, Kubernetes 등

 

 

 

 

 

 

 

 

 

728x90