컴퓨터공학/클라우드 서비스

[클라우드 서비스] 클라우드를 실현하는 컴퓨팅 기술

  • -
반응형

오늘은 클라우드에서 실현하는 기술들을 알아보고, 기술들 중 가상화 기술에 대해서 자세히 알아보려고 한다.

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

가상화 기술

서버 같은 하드웨어 리소스(예: CPU, 메모리, 스토리지)를 논리적으로 다룰 수 있게 만드는 기술

분산처리 기술

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

컨테이너

하나의 OS환경에서,App을 실행하기 위한 영역
컨테이너는 여러 개로 나누어 사용할 수 있다.

저장 기술

대량 데이터의 집계, 상품 거래, 빅 데이터 분석 등 특성별로 RDB나 NoSQL로 대표되는 다양한 데이터베이스 기술

 

가상화 기술

컴퓨팅에서 가상화(Virualization)라고 하는 것은 실체적인 컴퓨터 시스템의 가상 버전을 만드는 것을 의미한다.
컴퓨터 시스템의 가상 버전은 예를 들어 하드웨어, 네트워크, 스토리지 등이 있다.

- 서버 가상화는 물리적인 서버에 여러 개의 서버 환경을 할당하여 각각의 환경에 OS와 App을 실행할 수 있도록 한다.

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

- 가상 서버는 CPU, 메모리, 스토리지, 네트워크 등이 애뮬레이트 되므로 물리 서버처럼 사용 가능하다.
각각 가상의 서버는 독립된 상태이므로, 같은 물리서버에 있는 가상 서버 중 하나가 바이러스와 같은 위협에 노출되더라도 다른 가상 서버에게 영향을 미치지 않는다.

가상화 기술의 장단점

장점 단점
- 적은 컴퓨팅 리소스 하드웨어 구매로 비용절감
- 쉬운 백업과 재해복구
- 중단 없는 비즈니스
- 효율적인 IT 운영
- 가상화 소프트웨어 및 가상화 하드웨어 구매로 초기 투자 비용 발생
- 소프트웨어 라이선스 비용 발생
- 초기 교육 필요
* 개인 사용자 입장에서 단점이 아닌, 가상화 기술을 사용하는 기업(또는 클라우드 서비스를 제공하는 기업)의 단점입니다.

분산처리 기술

클라우드 등장 이전에는 대용량 데이터를 처리하려면 고속 CPU와 대용량 메모리 탑재 서버가 필요했으나, 지금은 분산 처리 기술과 클라우드 서비스를 이용하여 데이터를 여러 개의 서버에 나누어 별도로 처리할 수 있다.

- 처리 부하 상황에 따라 서버와 같은 리소스를 늘리거나 줄일 수 있다. (유연성)


- 클러스터링 : 대량의 데이터를 분산 처리하는 장치로 여러 개의 서버를 결합하여 하나의 컴퓨터로 보이게 할 수 있다.
클러스터링을 하면, 대용량 데이터 처리중에 몇 개의 서버에서 장애가 발생하더라도 나머지 서버에 자동으로 작업을 할당하고 작업을 이어갈 수 있다.

- 분산처리 구현 가능 소프트웨어 오픈 소스로는 Apache Haddop 과 Apache Spark가 있다.

 

하이퍼바이저(Hypervisor)

가상 머신에 대해서 물리시스템 자원에 대한 접근을 제공하는 프로그램을 말한다. *VMM(Virtual Machine Monitor)라고도 함.
단순하게 말하면 가상화 소프트웨어

- 가상 머신은 물리적 컴퓨터로부터 분리된 또 하나의 컴퓨터

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

- 가상 머신은 스스로의 가상 기기 드라이버, 프로세서 자원 할당, 가상기기 드라이버를 이용한 기기 I/O를 가진다.

- 호스트 머신(Host Machine)으로 불리는 물리시스템에 가상 머신을 생성하고 관리할 수 있다.
*이 때 호스트 머신에서 동작하는 가상 머신을 게스트 머신(Guest Machine)이라고 한다.

 

하이퍼바이저 종류와 특징

베어 메탈(bare metal) - Type1

물리시스템 위에 하이퍼바이저가 직접 설치되는 방식 (네이티브방식)

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

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

- 신속한 확장과 축소가 가능해야 하므로, 확장성이 충분히 기술적으로 부장되어야 한다.

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

- 불필요한 오버헤드를 최소화하여 가상 머신에서 동작하는 애플리케이션의 실행속도가 호스트 머신에 직접 설치되어 운영되는 성능과 근접한 결과를 만들어 낸다.

- 물리시스템이 하드웨어적으로 가상화를 지원해야 한다. (CPU가 VT-x, AMD-V 지원여부 확인)

호스티드(hosted) - Type2

물리시스템 위에 운영체제(OS)가 올라가고 운영체제 위에 하이퍼바이저가 설치되어 동작되는 방식
대표적으로 VMware player, VitualBox 제품군이 있다.

- 호스트 머신 운영체제 위에 마치 어플리케이션처럼 설치된다.

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

- 중간에 호스트 머신의 운영체제가 동작하고 있기 때문에 호스트 머신의 하드웨어를 직접 접근할 수는 없다.
따라서, 사용이 편리한 반면 오버헤드가 많이 발생할 수 밖에 없는 구조이다.

 

가상화 종류와 특징

가상화 기반으로 하여 하이퍼바이저를 구현하고, Iaas, Paas, Saas 서비스를 구축할 수 있다.
가상화는 크게 2가지 타입으로 나눌 수 있다. (수정 여부에 따라)

전가상화(Full Virtualization)

컴퓨팅 시스템의 하드웨어 자원 전체를 완전하게 가상화 하는 방식이다.
가상머신에 설치되는 게스트 OS 수정 없이 구동되어 완전히 독립된 분리 상태로 동작한다.

- 게스트 OS 수정 없이 구동 가능하다.

- 전가상화 환경에서 동작하는 게스트 OS는 자신이 물리시스템에서 동작하는 것과 동일하게 하드웨어와 관련된 명령어를 직접 요청하게 된다. 이 때문에 게스트 OS가 하드웨어에 직접 요청하는 명령을 하이퍼바이저가 적절하게 수행해 주어야 한다.

- 전가상화는 2가지로 구분된다.
가상 머신에 설치된 게스트 OS의 요청을 하이퍼바이저가 받아서 처리해야 하므로 오버헤드가 발생할 수 밖에 없다.

소프트웨어 지원 기반 전가상화는 소프트웨어적으로 해결해야 하지만,
하드웨어 지원 기반 전가상화는 소프트웨어적으로 처리해야 할 명령을 하드웨어로 처리해 오버헤드를 줄일 수 있다.

하드웨어적 지원을 받는 전가상화 소프트웨어로만 구현되는 전가상화
- 네이티브 방식 (Type1)
- 호스티드 방식 (Type2)
- 바이너리 트랜슬레이션(binary translation)(=이진 변환 기법)을 통해 소프트웨어 적으로 명령어를 처리하는 방식

1. 소프트웨어 기반의 전가상화에서 발생하는 오버헤드 문제를 해결하고자 CPU벤더들은 가상화를 지원하는 새로운 기능이 탑재된 하드웨어를 출시하기 시작
2. 바이너리 트랜슬레이션을 제거하고 가상화기술이 구현된 하드웨어가 직접 수행하도록 하였다.
3. 바이너리 트랜슬레이션 없이 가상화 기술을 통해 하드웨어를 직접 제어한다.
1. 바이너리 트랜슬레이션 : 가상머신에 설치된 게스트 OS로부터 요청이 오면 하이퍼바이저는 요청을 소프트웨어적으로 처리
2. 바이너리 트랜슬레이션은 VMWare가 개발한 방법인데, 중간에 위치한 하이퍼바이저가 CPU가 인식할 수 있는 명령으로 변경해야 한다.

따라서, 오버헤드가 발생하고 구현이 까다롭다는 단점이 있다.
3. 이런 단점을 극복하고자 게스트 OS를 수정한 하이퍼 콜(hyper-call) 방식이 제안 되었는데, 그것이 반가상화의 개념이다.

 

반가상화(Para Virtualization)

게스트 OS와 하이퍼바이저 간 통신방식이 바이너리 트랜스레이션을 사용할 경우 오버헤드가 많이 발생한다.
이런 소프트웨어적 전가상화의 단점을 보안하기 위해 고안된 방식이다.

- 게스트 OS를 소프트웨어적으로 수정한 것이다.

- 반가상화의 게스트 OS는 자신이 가상화 환경에서 동작하는 것을 인지하며 사용한다.
즉, 하이퍼바이저에게 무엇을 요청할지 알고 있다는 의미로, 게스트 OS와 하이퍼바이저가 통신을 하기 위해서는 게스트 OS가 이에 맞게 수정되어 하이퍼바이저와 통신할 수 있는 API가 추가된다.

- 소프트웨어적 가상화보다 성능이 좋으며 특정 애플리케이션 환경에서는 하드웨어 기반 전가상화보다 더 좋은 성능을 보이기도 한다.

 

하이브리드 가상화

반가상화(소프트웨어 기반)와 하드웨어 기반 전가상화를 조합한 형식이다.

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

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

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

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 구독, 공감 부탁드립니다.