반응형
클라우드 컴퓨팅(Cloud Computing)이란?
물리적으로 서로 다른 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합해 제공하는 기술이다.
예를 들면 개인용 컴퓨터나 기업의 서버에 개별적으로 저장해 두었던 프로그램이나 문서를 클라우드에 저장하고 웹 브라우저 등 필요한 애플리케이션을 구동해 원하는 작업을 수행할 수 있는 사용자 중심의 컴퓨터 환경을 말한다.
가상화 vs 클라우드 컴퓨팅
가상화는 하드웨어에서 기능을 분리하는 기술이고, 클라우드 컴퓨팅은 이러한 분할을 사용하는 솔루션보다 큰 개념인 방법론이다.
가상화
- 가상화는 VMware나 Virtualbox와 같이 단일한 물리 하드웨어 시스템에서 여러 환경이나 자원을 생성할 수 있는 기술이다.
- 하이퍼바이저 라고 불리는 소프트웨어가 하드웨어에 직접 연결되며 가상 머신을 만들 수 있다.
- 이러한 가상 머신은 하이퍼바이저의 자원을 적절하게 배분받은 후 사용한다.
클라우드 컴퓨팅
- 네트워크 전체에서 컴퓨팅, 네트워크, 스토리지 인프라 자원, 서비스, 플랫폼, 애플리케이션을 사용자에게 제공하는 접근 방식이다.
IaaS, PaaS, SaaS란?
IT 인프라의 여러 필요한 구성 요소 중 예전에는 모두 사용자가 관리해야만 했지만, 이제는 일정 부분을 클라우드에서 내려받는 형태가 도입되었다. 따라서 어느정도를 사용자가 직접 관리하는지, 그리고 어느정도를 클라우드에서 제공받는지에 따라서 네 가지로 나누어진다.
기본 구성요소
Applications |
---|
Data |
Runtime |
Middleware |
O/S |
Virtualization |
Servers |
Storage |
Networking |
IaaS(Infrastructure as a Service)
Infrascture 레벨을 제공하는 서비스. 사용자는 OS를 직접 올리고 그 상위 계층만 구성하면 되는 모델이다. (bold체가 사용자가 관리해야 하는 부분)
Applications |
---|
Data |
Runtime |
Middleware |
O/S |
Virtualization |
Servers |
Storage |
Networking |
- 가상 호스팅(VM Hosting)과 비슷하나, 가상 호스팅은 직접 장비를 사서 그 장비의 한해서 자원을 할당하고 구성해야 하지만, Iaas는 기업이 준비해놓은 환경에서 사용자가 선택할 수 있다는 점에서 차이가 있다.
- 일반적으로 적은 OS가 지원. (아마존은 일부 Linux와 Windows Server 제공)
- 고객은 OS와 어플리케이션을 직접 관리해야 한다.
- 관리 측면에서 개발자와 인프라 관리자의 역할을 분담할수 있음.
- 장점
- 고객은 가상 서버 하위의 레벨에 대해서는 고려할 필요가 없다.
- 단점
- 가상 서버 하위의 레벨에 대해서는 전혀 고객이 접근하거나 컨트롤할 수 없다.
- 결국, 가상 서버 하위의 레벨에 대해서 고려할 필요가 없는 사용자가 쓰기에 적합한 모델이다.
- 예시
- AWS EC2를 이용하면 물리적인 서버, Network, Storage 등등을 직접 구매하거나 준비하지 않아도 원하는 OS를 깔아 서버로 사용할 수 있다. OS를 제공한다는 느낌이긴 하지만, 선택권을 주고 OS의 종류나 다양한 자원들을 사용자가 선택하므로 대표적인 IaaS라고 할 수 있다.
PaaS(Platform as a Service)
개발자가 응용 프로그램을 작성할 수 있도록 플랫폼 및 환경을 제공하는 모델. (bold체가 사용자가 관리해야 하는 부분)
Applications |
---|
Data |
Runtime |
Middleware |
O/S |
Virtualization |
Servers |
Storage |
Networking |
- 운영팀이 인프라를 모니터링 할 필요가 없다.
- 사용자는 OS, Server 하드웨어, Network 등을 고려할 필요가 없다.
- 어플리케이션 개발 자체에만 집중할 수 있다. => 빠르게 어플리케이션을 개발하고 서비스 할 수 있다.
- 아마존과 같은 서비스가 VM을 제공하는 IaaS라면, PaaS는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조다.
- 즉, 사용자는 소스코드만 적어서 빌드하고 컴파일은 클라우드에서 하여 결과만 가져오는 것이다.
- 장점
- PaaS의 경우 이미 설치된 미들웨어 위에 코드만 돌리면 되기 때문에 관리가 편리하다.
- 가장 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 여겨지고 있다.
- 단점
- 하나의 인프라를 기반으로 개발할 수 있다는 것 자체가 장점이자 단점
- PaaS는 기본적으로 어플리케이션 플랫폼이 함께 제공된다. 어플리케이션이 플랫폼에 종속되어 개발되기 때문에 다른 플랫폼으로의 이동이 어려울 수 있다.
- 예시
- Heroku, Google App Engine, IBM Bluemix, OpenShift, SalesForce 등이 있다.
SaaS(Software as a Service)
설치할 필요도 없이 클라우드를 통해 제공되는 S/W다. (사용자가 관리하는 부분 없음)
Applications |
---|
Data |
Runtime |
Middleware |
O/S |
Virtualization |
Servers |
Storage |
Networking |
- 모든 것을 기업(클라우드)에서 제공함으로써 사용자는 별도의 설치나 부담없이 SW 사용 가능
- SaaS는 소비 관점에서 제공되는 IT 서비스다. 구독의 방식으로 돈을 벌거나 트래픽 기반으로 돈을 벌 수 있다.
- 장점
- 퍼블릭 클라우드에 있는 소프트웨어를 웹 브라우저로 불러와 언제 어디서나 사용할 수 있다.
- 사용자는 웹만 접속하면 되기 때문에 사용하기 매우 쉽고, 최신 소프트퉤엉 업데이트를 빠르게 제공받을 수 있다.
- 기업 입장에서도 클라우드에 소프트웨어가 있기 때문에 따로 업데이트를 하지 않아도 접속한 사용자는 최신 sw를 사용하게 될 수 있다.
- 단점
- SaaS의 특성상 반드시 인터넷에 접속할 수 있어야만 사용할 수 있고, 외부의 데이터 노출에 대한 위험이 있다.
- 예시
- 웹 메일, 구글 클라우드, 네이버 클라우드, MS오피스365, 드롭박스 등이 있다.
Reference : <https://wnsgml972.github.io/network/network_cloud-computing.html
반응형
'개발 지식 > 말 그대로 지식' 카테고리의 다른 글
CES 2020 요약 (0) | 2020.01.22 |
---|---|
USECASE 다이어그램이란 (0) | 2020.01.13 |
프레임워크와 라이브러리의 차이 (0) | 2019.11.16 |