본문 바로가기

개발 지식/말 그대로 지식

IaaS, PaaS, SaaS란?

반응형

클라우드 컴퓨팅(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