클라우드 컴퓨팅(Cloud Computing)이란 무엇인가
1. 클라우드 컴퓨팅의 정의
인터넷으로 가상화된 IT자원(소프트웨어, 스토리지, 서버, 네트워크)을 필요한 만큼 서비스로 제공하는 것을 의미한다. 그리고 클라우드 컴퓨팅에서 가상화하여 서비스로 제공하는 대상은 서버, 플랫폼, 소프트웨어이다.
2. Service Model에 따른 분류
IaaS (Infrastructure as a Service, 아이아스, 이에스) |
PaaS (Platform as a Service, 파스) |
SaaS (Software as a Service, 사스) |
|
정의 | 서비스로 제공하는 Infrastructure - 확장성이 높고 자동화된 컴퓨팅 리소스를 가상화하여 제공하는 개발사에 제공되는 물리적 자원을 가상화 IT 기본 자원만 제공 |
서비스로 제공하는 플랫폼 - 주로 응용프로그램을 개발할 때 필요한 플랫폼을 제공하는 것 - 개발자가 코드만 개발해서 올리면 고객에게 제공이 되는 형태 개발사에 제공되는 플랫폼을 가상화 |
서비스로 제공하는 소프트웨어 고객에게 제공되는 소프트웨어를 가상화 타사 공급 업체가 관리하는 사용자에게 응용 프로그램을 제공하기 위해 인터넷을 사용한다. 대부분의 SaaS 애플리케이션 웹 브라우저를 통해 직접 실행 |
제공 | 서버, 네트워크, 스토리지를 가상화하여 제공하고 관리 | IaaS에 OS, 미들웨어, 런타임을 추가, 플랫폼을 가상화하여 제공하고 관리 Code만 개발해서 배포하면 서비스되는 환경 |
소프트웨어와 데이터를 제공하고 관리 |
고객 (사용자) |
서비스 제공업체의 인프라 내에서 자체 플랫폼과 애플리케이션을 사용 | 스토리지와 기타 컴퓨팅 리소스 외에도 사전 구축된 툴 세트를 사용하여 자체 애플리케이션을 개발, 커스터마이즈, 테스트 가능 | 소프트웨어를 관리 및 설치 또는 업그레이드할 필요가 없으며 SaaS 제공업체가 이러한 작업을 대신 수행한다. 대신 애플리케이션은 웹 또는 API를 통해 이용하는 원격 클라우드 네트워크에 존재한다. 사용자는 애플리케이션을 통해 데이터를 저장 및 분석하고 프로젝트를 위해 협업할 수 있다. |
장점 | 서버 형태로 사용하기 때문에 고정비가 들지 않는다. 물리적 자원 즉시 소비 가능 빠른 변화 |
필요한 플랫폼만 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있다. 제공업체가 보안, 운영체제, 서버 소프트웨어 및 백업을 관리 개발 및 배포 프로세스를 빠르게 확보 |
소프트웨어 소비 형태로 사용하기 때문에 비용 부담을 덜 수 있다. 즉시 사용 가능 데이터는 클라우드에서 안전하게 보호되므로 장비 고장으로 인해 데이터 손실 X |
단점 | 특정 플랫폼 서비스에 종속될 수 있다. | 커스터마이징 어렵다. | |
서비스 | Amazon Web Service(AWS), Microsoft Azure, DigitalOcean, Google Compute Engine(GCE) |
AWS Elastic Beanstalk, Windows Azure, Heroku, Google App Engine |
Google Apps, Dropbox, Salesforce, WhaTap |
* 추가적으로
온프레미스(On-premise)
- 기업의 서버를 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말한다.
- 전통적인 IT 방식
3. Deployment Model에 따른 분류
구분: 클라우드를 실제 어떠한 형태를 구출하는지에 대한 관점
Public Cloud(공공) | Private Cloud(사설) | Hybrid Cloud(하이브리드) | |
정의 | 외부에 클라우드 존재, 불특정 다수나 기관이 사용 Cloud 서비스를 필요로 하는 사용자 누구든지 사용 가능 Cloud 사업자가 자신의 IT 자원을 서비스로 제공 |
특정 기관이나 기업 내부에서만 사용 가능한 클라우드 컴퓨팅 환경 구축 및 관리 | 비용 면에서의 효율성을 높이기 위해, Public+ Private 보안이 중요한 시스템은 Private, 그 외의 보안에 덜 민감한 정보들이나 프로세싱은 Public |
장점 | 리소스 확장성이 탁월 사용한 만큼 비용을 지불하므로, 비용 절감하며 차세대 기술을 활용할 수 있도록 지원 |
데이터의 저장 및 처리도 해당 조직 내에서 처리 가능 제어, 보안 및 가시성 면에서 우수 |
제어, 보안 및 가시성 면에서 우수 |
단점 | 각 클라우드 사용자를 위하여 클라우드 컴퓨팅 환경을 커스터마이징할 수 있는 유연성 면에서 제한점 | 해당 기업/기관에 속하지 않은 사람은 사용 불가 초기 도입 비용 비싸다. 구축 난이도 높음(시간 걸림) |
4. 클라우드의 핵심기술, 가상화
가상화
- 단일 물리적 IT 자원을 동시에 논리적 다수의 IT 자원으로 사용 가능
- 하나의 하드웨어에서 복수의 논리적 가상머신을 동시에 구동할 수 있고, 서로 다른 종류의 운영체제(OS)를 구동시킬 수 있다.
하이퍼바이저(Hypervisor)
- 정의: 다수의 운영체제(OS)를 동시에 실행하기 위한 논리적으로 독립된 가상머신 환경을 제공한다.
가상머신 < --------------- > 하드웨어
Hyper-V
- 가상화 머신 모니터(virtual machine monitor), 가상화 머신 매니저(virtual machine manager=VMM)라고 한다.
- 하나의 가상머신을 실행하는 컴퓨터: 호스트(Host), 각 가상머신들은 게스트(Guest)
- 종류
- TYPE 1(Bare-Metal), 하드웨어 상에서 바로 동작하는 형태
- Xen(Citrix), KVM, VMWare ESXi, MS Hyper-V
- TYPE 2(Hosted), 개인 컴퓨터의 운영체제 상에 응용프로그램의 형태로 설치되는 형태
- VMWare Workstation, VMWare Fusion, Parallels Desktop
5. 가상화와 컨테이너(container)
컨테이너: 기업 서비스의 모든 구성 요소를 모아 놓은 것이며 이동이 편리하다.
컨테이너형 가상화 기술은 기존의 가상화 기술보다 오버헤드가 적고 가상머신에 비해 이미지 용량이 적고 이식성이 뛰어나다. 대표적인 컨테이너 기반의 오픈소스 가상화 플랫폼은 도커(Docker)가 있다.
하지만 보안 문제에서 반드시 하이퍼바이저를 대체할 필요가 없고, 두가지 모두 혼용하여 사용하는 것이 더 좋다고 말한다.
다음으로
'Cloud' 카테고리의 다른 글
[Hypervisor] Windows 10에 MS Hyper-V 설치 (295) | 2021.06.11 |
---|---|
[docker] 컨테이너 /bin/bash에 vim 설치 (306) | 2021.06.04 |
[docker] docker에 MariaDB 설치 및 사용 (444) | 2021.06.04 |
[docker] docker 기본 명령어 #1 (288) | 2021.06.03 |
[docker] 컨테이너 기반의 가상화 도구 docker 설치 in Ubuntu (432) | 2021.06.03 |