클라우드 컴퓨팅




개요


클라우드 컴퓨팅의 개념과 이용방식, 장점과 단점에 대해 간략하게 알아보겠다.





클라우드 이름의 유래


클라우드라는 이름은 네트워크나 인터넷을 기술 문서에서 표현할 때 구름 모양으로 표현했던 것에서 유래한 것으로 본다.




컴퓨팅 기술의 발전 과정


메인프레임 -> PC -> 클라이언트 서버 -> 인터넷 -> 웹 서비스 -> 그리드 컴퓨팅 -> 유틸리티 컴퓨팅 -> 클라우드 컴퓨팅




클라우드 컴퓨팅의 등장 배경


  1. 서버 사용에 있어서 낭비되는 공간을 효율적으로 사용하기 위해서 도입되기 시작했다. 이에 따라 비용 절감이 되었다
  2. 최근 슈퍼 컴퓨터급의 능력을 요구하는 기술들을 사용, 분석하는데 별도로 구입하는 것은 비용적인 부분을 감당할 수 없다.
  3. 소프트웨어의 발전으로 개인 및 기업 사용자 모두 클라우드 컴퓨팅 기술을 사용할 수 있는 환경이 만들어졌다.




클라우드 컴퓨팅의 개념


클라우드 컴퓨팅이란 네트워크에서의 클라우드 사업자에 의해 필요한 공간, 시간만큼만 렌탈서비스의 형태로 사용할 수 있는 컴퓨팅 방식을 의미한다.

간단하게 클라우드는 확장 가능하고 측정된 IT 리소스를 원격으로 프로비저닝하기 위해 설계된 IT 환경이라고 할 수 있다.

프로비저닝이란 IT 리소스들을 실시간으로 사용 가능한 상태로 만드는 기술을 말한다.

클라우드에서 제공하는 서비스란 리소스를 빌려주는 것이라고 할 수 있으며 리소스란 하드웨어, 미들웨서, 소프트웨어적인 자원을 말한다.

클라우드 컴퓨팅은 분산 컴퓨팅의 상위호환이다. 분산컴퓨팅이란 하나의 작업을 다수의 노드에서 처리하는 것을 의미한다.

분산 컴퓨팅은 하드웨어가 다른 환경을 지원하기때문에 하드웨어를 통제할 미들웨어단이 반드시 필요하다.

분산 컴퓨팅을 strict하게 하면 병렬 컴퓨팅이 되는데 가장 큰 특찡은 동일 기종만 지원하는 것이다.

클라우드는 병렬환경으로 구현하였다. 이유는 간단하게 관리의 용이성 때문이다.


인프라와 플랫폼의 차이

인프라는 하드웨어적인 자원을 말하며 플랫폼은 하드웨어적인 것 위에 활용할 소프트웨어까지 제공하는 것을 의미한다.


클라우드 특징

즉시성, 유연성, 확장성, 가용성, 보안성


컴퓨팅 특징

서버, 저장장치, 데이터베이스, 네트워크, 보안


NIST에서의 클라우드 컴퓨팅 정의

클라우드 컴퓨팅은 컴퓨팅 리소스에 언제 어디서나 필요에 따라 편리하게 네트워크를 통해 접근하는 기능을 제공하는 모델이다.

컴퓨팅 리소스는 최소한의 관리로 신속하게 프로비저닝되고 배포될 수 있다. 클라우드 모델은 5가지 기본 특성과 3가지 서비스 모델 4가지 배포 모델링으로 이루어진다.


가트너 보고서에서의 클라우드 컴퓨팅 정의

확장 가능하고 탄력적인 IT 기능이 인터넷을 사용하는 외부 고객들에게 서비스 형태로 제공되는 컴퓨팅 방식이다.


대한민국 법률상에서의 클라우드 컴퓨팅 정의

공유된 정보통신 기기, 정보통신 설비, 소프트웨어 등 정보통신 리소스를 이용자의 요구나 수요의 변화에 따라 정보 통신망을 통해 신축적으로 이용할 수 있도록 하는 정보 처리 체계




클라우드 컴퓨팅 서비스 모델


클라우드 서비스는 사용자가 네트워크를 통해서 원격으로 접근할 수 있는 모든 IT 리소스를 의미한다.

클라우드 서비스는 제공 범위에 따라서 IasS, PaaS, Saas로 구분된다.

IaaS

Infrastructure as a Service의 약자로 CPU, 메모리 등의 하드웨어 자원들을 제공하는 클라우드 서비스

데이터 센터 물리적 공장, 서버 및 저장소, 네트워킹 방화벽

흔히 클라우드 서비스를 말하면 빠지지 않고 나오는 것이 AWS, Azure등이 있는데 이런 기본적인 환경만 제공하는 것이 IaaS이다.


PaaS

Platform as a Service의 약자로 OS와 소프트웨어 개발이나 데이터 분석을 위한 도구들까지 제공하는 서비스

예전 dropbox와 같이 단순 저장소 역할만 하는 것을 Paas라고 볼 수 있다.


SaaS

Software as a Service의 약자로 호스팅된 응용 프로그램이나 앱까지 제공하는 서비스

구글 드라이브나 최신의 dropbox 노션과 같은 것이 SaaS이다.




클라우드 컴퓨팅 배포 모델


클라우드 기반의 시스템을 배포하는 아키텍처는 4가지가 있다.

Public Cloud

다수의 사용자가 클라우드 사업자의 IT 리소스를 공유하여 사용하는 모델

사용자는 원격으로 클라우드 서버에 접속하여 부여된 계정으로 사용한다.

Azure, AWS, Naver Cloud, GCP등이 있다.


Private Cloud

단일 조직이 IT 리소스들을 가상화하여 데이터 센터를 구축하고 사용하는 모델


Hybrid Cloud

Private Cloud와 Public Cloud를 둘 다 사용하는 모델

일반적으로 프라이빗 클라우드의 용량이 부족한 경우 퍼블릭 클라우드에서 IT 리소스를 할당 받아 사용한다.


Community Cloud

금융권과 같이 여러 조직의 업무와 기능이 유사한 경우 파트너쉽을 맺고 퍼블릭 클라우드와 비슷하게 공동으로 데이터 센터를 구축하고 사용하는 모델




클라우드 컴퓨팅 특성


탄력성

소비자가 자신이 필요한 크기만큼 그때그때 조절하여 빌릴 수 있는 특징

클라우드 컴퓨팅은 초기 투자 비용 없이도 대규모 컴퓨팅 인프라를 확보할 수 있다.


신속성

클라우드를 사용하면 로컬 컴퓨터환경을 구축하는데 걸리는 시간이 필요없이 하나의 서버 또는 컴퓨터를 구축할 수 있다.


경제성

클라우드 사업자는 사용자에게 매력적인 가격으로 클라우드 환경을 임대해준다.

이로 인해 각자 관리하던 데이터를 클라우드에서 통합 관리함으로써 업데이트, 작업, 데이터 관리의 효율을 높이고 비용을 절감할 수 있다.


가용성

개인의 컴퓨터 또는 서버에서 돌릴 수 없는 것들을 필요한 만큼 빌려서 돌릴 수 있다.

서비스를 사용할 때 오류가 발생할 가능성이 낮다.


신뢰성

클라우드는 서비스 중단을 최소화할 수 있도록 IT 리소스의 가용성을 증대시키고, 런타임 오류 발생 조건을 최소화하여 신뢰성을 향상시킨다.

서비스를 사용중에 오류가 발생하더라도 극복할 확률이 높다.





클라우드 컴퓨팅 장점


비용 절감

당연히 IT 리소스를 직접 보유하는 것이 아니기 때문에 유지 보수도 직접 하지 않는다. 이에 따른 비용 절감은 엄청나다.


인력 문제 해소

시스템 구축, 운영 및 유지 보수에 소요되는 인력들을 줄이고 다른 부분에 투자할 수 있다.

시스템 도입 과정을 단축

원격으로 시스템을 도입하기 때문에 과정이 훨씬 간편해진다.

구축 및 운영에서 발생하는 문제 해결

시스템의 구축 및 운영에서 발생할 수 있는 오류를 해결할 필요가 없기 때문에 업무 프로세스의 구조를 간편화 할 수 있다.




클라우드 컴퓨팅 관련기술


클러스터링 기술

리소스들을 군집화하여 단일 리소스인것처럼 동작하는 것.

리소스들을 하나로 동기화하는 것이므로 Homogeneous(동기종)환경에서만 구성이 가능했지만 현대에는 heterogeneous(이기종)환경에서도 가능하다.


가상화

가상화는 클라우드 서비스를 가능하게 하는 핵심 기술로 물리적 컴퓨터 환경에서 가상 머신을 만드는데 사용된다.

가상화를 시켜주는 VMM 또는 하이퍼바이저는 각각의 게스트들에게 실제 리소스들인 것처럼 할당하여 하드웨어, 소프트웨어를 활용할 수 있게한다.

가상화에는 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화가 있다.


호스트 가상화

하드웨어상에 운영체제를 설치하고 그 위에 가상화 소프트웨어를 설치하여 가상화하는 방식이다.

운영체제 위에 게스트 운영체제를 작동시키기 때문에 CPU나 메모리 사용이 증가하는 오버헤드가 발생한다.

그러므로 하나의 서버를 다수의 사용자가 사용할 때 유리하다.

흔히 생각하는 VM생각하면 된다. VMWare, Virtual Box와 같은 것


하이퍼바이저 가상화

컴퓨터 위에 호스트 OS를 설치하지 않고 하이퍼바이저를 설치하고 그 위에 게스트 OS를 설치하여 부팅할 때 OS를 선택하게 해주는 것을 의미한다.

하이퍼바이저가 하드웨어를 직접 제어하기 때문에 오버헤드가 호스트 가상화에 비해 적지만 환경별로 게스트 OS가 설치, 작동되기 때문에 발생한다.

하이퍼바이저 가상화는 전가상화와 반가상화로 나눌 수 있다.


전가상화

전가상화는 이름에서 알 수 있듯이 하드웨어를 완전히 가상화 하는 방식이다.

모든 게스트 운영체제가 내리는 모든 명령은 하이퍼바이저를 통해서 하드웨어에게 전달된다.

하드웨어를 완전하게 가상화 했기 때문에 게스트 운영체제는 자신이 호스트라고 인식하고 명령을 내리며 하이퍼바이저는 각기 다른 운영체제에서 내려오는 명령을 이해할 수 있다.

게스트 운영체제에게 자원을 할당해주는 것 또한 하이퍼바이저를 통해서 하는데 프로세스와 하드웨어 사이에 완전한 완충지대를 만들어 놓았다고 생각하면 된다.

하나의 레이어를 추가해서 명령이 실행되기 때문에 성능이 비교적 느리다.


반가상화

게스트 운영체제가 하이퍼 콜이라는 명령을 내리면 하이퍼바이저가 하드웨어를 통제하는 방식을 의미한다.

하이퍼 콜은 하드웨어가 알아들을 수 있게 번역한 명령이라고 보면된다. 전가상화와는 다르게 자신이 가상화된 운영체제임을 알고 번역하여 명령을 내린다.

그렇기 때문에 수정된 커널이 있어야하며 이는 매우 어렵다.


컨테이너 가상화

컨테이너는 프로세스와 구동 환경을 격리하여 가상화한 기술이다.

호스트 가상화와 비슷하다. 다른점은 게스트 운영체제가 필요없다는 것이다.

프로세스와 모든 종속성 파일이 컨테이너에 패키징되어 다른 운영체제에서도 사용할 수 있다.


서버리스 컴퓨팅

서버리스 컴퓨팅은 서버를 생성하고 관리하지 않아도 어플리케이션 코드를 실행할 수 있는 환경을 말한다.

즉 프로세스가 특정 작업에 의해서 불러지면 별도의 기능으로 실행되는 것이다.

예를들어 물건을 주문했을 때 주문에 대한 확인 메일이 있다.




클라우드 컴퓨팅 단점


보안 취약성 증가

클라우드를 사용해서 개인또는 기업의 데이터를 저장하는 것은 클라우드 사업자가 접근할 수 있음을 의미한다.

또한 클라우드와 사용자의 통신에 대한 공격의 가능성도 생긴다.


책임 소재의 불분명

??

제한된 이식성

아직 표준이 정해지지 않았기 때문에 기업만의 솔루션을 구축하고 제공한다.

그렇기 때문에 특정 클라우드 서비스를 사용했다면 다른 서비스로 이동하기가 힘들다.

과도한 비용 지출

만약 장기로 서버를 운영할 것이라면 클라우드보다 온프레미스 방식으로 구축하는 것이 효과적일 수 있다.

클라우드를 사용중일 때 사업자가 비용 인상을 요구하면 그대로 따를 수 밖에없다.