준영이의 성장일기(FrontEnd)

클라우드 3주차 블로그 본문

클라우드

클라우드 3주차 블로그

Jay_Jung 2024. 3. 26. 21:13

4주차 까지는 클라우드 개념에 대해서 학습하고 이후 실습 단계로 진행된다. ✨

 

1. 클라우드를 실현하는 기술들

(가상화 기술, 분산 처리 기술, 컨테이너, 저장 기술)

 

* 분산 처리 기술

개념: 대량의 데이터를 여러 서버에 분산하여 동시에 빠르고 효율적으로 처리하는 기술이다.

 

* 가상화 기술

개념: 하나의 장치를 여러 개로 나눠 동작시키거나 여러 개의 장치를 묶어 하나의 장치인 것처럼 사용자에게 공유자원으로 제공하는 것을 의미한다.

-> IT자원의 가상 인스턴스를 만드는데 사용되는 플랫폼 : 하이퍼바이저 가상화 기술(Docker로 이어짐)

-> 가상 서버에는 CPU, 메모리, 스토리지, 네트워크 등이 에뮬레이트 되므로 물리 서버처럼 사용이 가능하다

 

- 컴퓨터 에서의 가상화란 ? -

: 실체적인 컴퓨터 시스템의 가상 버전을 만드는 것을 의미한다.

 

 

2. 가상화

-> 클라우드의 핵심적 역할을 하고 장단점이 존재하는데 다음과 같다.

 

* 장점

  • 적은 컴퓨팅 리소스 하드웨어(소프트웨어 X) 구매로 비용절감(reduced spending)
  • 쉬운 백업과 재해복구(easier backup and disaster recovery)  
  • 중단 없는 비즈니스(better business continuity)
  • 효율적인 IT 운영(more efficient IT operations)

* 단점

  • 가상화 소프트웨어 및 가상화지원 하드웨어(소프트웨어 X) 구매로 초기 투자 비용 발생 (upfront costs)
  • 소프트웨어 라이선스 비용 발생(software licensing considerations) -> 기준: 유료인 경우에만!!
  • 초기 교육 필요(possible learning curve) -> 예시: Aws, Azure

 

3. 분산 처리 기술

-> 현재 클라우드와 같이 사용하여 데이터를 여러 개의 서버에 나누어 별로로 처리할 수 있다. 

(클라우드 등장 이전에는 대용량 데이터를 처리하려면 고속 CPU와 대용량 메모리 탑재 서버가 필수)

 

-> 처리의 부하 상황에 따라 서버와 같은 리소스를 늘리거나 줄일 수 있음

 

-> 대량의 데이터를 분산 처리하는 장치로 여러 개의 서버를 결합하여 하나의 컴퓨터로 보이게 할 수 있다. 

    해당 의미의 단어: 클러스터링(정보처리기사 개념에도 나옴)

    -> 특징: 대용량 데이터 처리 중에 몇 개의 서버에 장애가 발생하더라도 나머지 서버에 자동으로 작업을 할당 하고 작업을 이어갈 수 있다.

 

-> 대표적인 분산 처리 구현 가능 소프트웨어는?

     : Apache Hadoop, Apache Spark

 

 

4. 하이퍼바이저(Hypervisor)❗❗

개념: 가상머신에 물리시스템 자원에 대한 접근을 제공하는 프로그램

-> 가상머신은 가상머신이 실행되고 있는 물리적 컴퓨터로부터 분리된 또 하나의 컴퓨터(즉, 가짜 컴퓨터!!)

-> 애플리케이션이나 사용자의 관점에서 가상머신은 물리적 시스템의 모든 속성과 특성을 가지지만, 물리적 머신을 에뮬레이트하는 엄격한 소프트웨어

-> 시스템 가상머신(또는 하드웨어 가상머신)은 스스로의 가상 기기 드라이버, 프로세서 자원 할당, 가상 기기 드라이버를 이용한 기기 I/O를 가진다.

-> 단순하게 말하면 가상화 소프트웨어

-> 하이퍼바이저는 가상머신모니터(VMM)와 동일하게 사용된다.

 

하이퍼바이저 위에 게스트 OS가 생성된다.

 

5. 하이퍼바이저(Hypervisor)의 종류❗❗

- Type 1 vs Type 2

Type 1 

-> 여기서 또 분류가 된다.(Type 1 : 베어 메탈 or 호스티드)

-> 개념: 베어메탈은 물리시스템(H/W) 위에 하이퍼바이저가 설치되는 방식으로 네이티브방식 이라고도 불린다

-> 대표 제품: KVM, Hyper-V, Xen

-> 물리시스템의 운영체제 역할을 하기 때문에 별도의 운영체제가 필요없다.

-> 실제 데이터 센터에서 구축되는 시스템에는 Type 1 하이퍼바이저가 설치되어 운영된다.

-> 호스트 머신에 직접 설치되기 때문에 가상 머신과 호스트 머신 간 빠른 통신이 가능해야 함.

-> 물리시스템이 하드웨어 적(소프트웨어 적 X)으로 가상화를 지원해야 한다.

 

Type 2 

-> 개념: 베어메탈은 물리시스템(H/W) 위에 하이퍼바이저가 설치되는 방식으로 네이티브 방식 이라고도 불린다

-> 물리시스템(H/W) 위에 운영체제(OS)가 올라가고 운영체제 위에 하이퍼바이저가 설치되어 동작되는 방식

    🎈 물리시스템 위에 있는 운영체제: Host OS / 하이퍼바이저 위에는 가상머신(= Guest OS) 존재!

-> 대표 제품 : VMware player, VitualBox

-> 가상머신을 단일 물리시스템에 설치되어 운영하는 데 있어 편리함

-> 중간에 호스트 머신의 운영체제(Host OS)가 동작하고 있기 때문에 호스트 머신의 H/W를 직접 접근할 수는 없다.

    (장점:  사용의 편의성   단점: 오버헤드가 많이 발생 )

 

<PDF에서 그렸던 그림>

 

하이퍼바이저 Type 1

 

 

하이퍼바이저 Type 2

 

 

Type 1 Vs Type 2

 

 

6. 전 가상화 Vs 반 가상화❗

 

이 두 개념의 기준: 게스트 운영체제(OS)의 수정 여부 유무!!

 

* 전 가상화

 

-> 가상머신에 설치되는 게스트 OS 수정없이 구동되어 완전히 독립된 분리 상태로 동작

-> 방식: S/W 지원 전 가상화 , H/W 지원 전 가상화

     -> 공통점: 게스트 OS가 수정될 필요가 없다.

-> 오버헤드의 양: SW > HW ( 이유: H/w 지원 기반의 전 가상화는 소프트웨어적으로 처리해야 할 명령을 하드웨어로 처리해 오버헤드 감소 가능 )

 

* 바이너리 트랜슬레이션

  개념 :  가상머신에 설치된 Guest OS로부터 request가 오고,  하이퍼바이저가 그 request를 소프트웨어적으로 처리

  -> 단점: 오버헤드가 발생하고(이것이 바로 H/W 지원 보다 오버헤드의 양이 많은 이유) 구현이 까다롭다

  -> 단점 해소를 위해 게스트 OS를 수정하는 하이퍼 콜(hyper-call) 방식이 제안

      : ✨ 이것이 바로 반 가상화의 개념

 

S/W 지원 전 가상화&nbsp; Vs H/W 지원 전 가상화

 

 

 

 

* 반 가상화

 

개념: Guest OS를 소프트웨어적으로 수정한 것을 의미한다.

 

-> 반 가상화의 Guest OS는 자신이 가상화 환경에서 동작하는 것을 인지하며 사용한다.

-> Guest OS와 하이퍼바이저가 통신을 하기 위해서는 게스트 OS가 이에 맞게 수정되어 하이퍼바이저와 통신할 수 있는 API가 추가된다.

 

반 가상화 로직

 

 

7. 하이브리드 가상화( 전 가상화 + 반 가상화 )

-> 하드웨어 기반의 가상화는 운영체제의 수정이 필요치 않은 전 가상화로 성능이 우수하나, 특정 환경에서는 반 가상화 보다 성능이 좋지 않은 경우가 발생

-> 일반적으로 메모리 집약형 작업 또는 빈번한 I/O발생 작업 즉, 대규모 데이터 분석처리를 요구하는 대형 데이터 센터 환경에서 발생하는 작업일 경우에 이슈 발생

-> 하드웨어 기반 가상화 환경에 반 가상화의 네트워트와 디스크 드라이버를 사용함으로써 I/O 집약형 작업에 성능문제 해결

 

 

하이브리드 가상화 구성도