문홍의 공부장

클라우드 컴퓨팅(Cloud Computing): IaaS, PaaS, SaaS 본문

개발/기타 개념

클라우드 컴퓨팅(Cloud Computing): IaaS, PaaS, SaaS

moonong 2020. 1. 29. 16:40
반응형

클라우드 컴퓨팅(Cloud Computing)?

  • 서로 다른 물리적 위치에 존재하는 컴퓨터들의 리소스를 가상화 기술로 통합하여 제공하는 기술. 자신의 PC가 아닌, 인터넷 위에 구름처럼 띄워져 있는 클라우드 사업자의 컴퓨터에서 정보를 처리할 수 있도록 하는 서비스.
  • 네트워크 전체에서 컴퓨팅, 네트워크, 스토리지 인프라, 서비스, 플랫폼, 애플리케이션을 사용자에게 제공하는 접근 방식. 클라우드에 저장하고, 웹/앱을 구동해 원하는 작업을 수행할 수 있는 사용자 중심의 컴퓨터 환경을 말한다.
  • Google Docs(Google), Work Space(MicroSoft), Acrobat(Adobe) 등이 있다.

클라우드 컴퓨팅의 장점

  • 비용
    하드웨어와 소프트웨어를 소유하지 않고, 사용하고자 하는 기능을 사용하고자 하는 기간만 서비스로써 사용할 수 있다.
    이를 통해 소프트웨어 업데이트 작업 및 데이터 유지보수의 효율성을 높이고 비용을 절약할 수 있다.
  • 속도 & 생산성
    자체 시스템을 구축할 경우, 설계 후 하드웨어와 소프트웨어를 설치하기 까지 많은 시간이 걸린다. 반면, 클라우드가 제공하는 하드웨어와 소프트웨어를 이용하면 신속하게 시스템을 구축할 수 있다. 많은 양의 컴퓨팅 리소스도 대부분 몇 번의 마우스 클릭으로 몇 분 만에 프로비전될 수 있어 유연성, 생산성이 증대되며 기업은 용량 계획 부담을 덜 수 있다.
  • 확장성
    클라우드 세계의 탄력적인 확장은 바로 필요한 때에 적절한 지리적 위치에서 대략적인 컴퓨팅 성능, 스토리지, 대역폭 등 적절한 양의 IT 리소스를 제공하는 것에 있다. 자체 시스템을 구축하는 것에 비해 컴퓨팅 리소스가 필요할 때 필요한 만큼 확장하고, 필요하지 않을 때는 축소하는 등의 유연한 활용이 가능하다.
  • 안정성 & 보안
    클라우드 공급자 네트워크의 여러 중복 사이트에 데이터를 미러할 수 있으므로 데이터 백업, 재해 복구 및 비즈니스 연속성을 쉽게 제공할 수 있다. 또한, 많은 클라우드 공급자가 전체적인 보안 태세를 강화하는 광범위한 정책 집합, 기술 및 컨트롤을 제공하여 데이터, 앱 및 인프라를 잠재적인 위협으로부터 보호할 수 있다.

가상화와 클라우드 컴퓨팅의 차이?

가상화: 단일한 물리 하드웨어 시스템에서 여러 환경이나 자원을 생성할 수 있는 기술.
간단히 말하자면, 가상화는 하드웨어에서 기능을 분리하는 기술이고 클라우드 컴퓨팅은 이러한 분할을 사용하는 솔루션보다 큰 개념의 방법론이다.

클라우드 컴퓨팅의 종류: IaaS, PaaS, SaaS

클라우드 컴퓨팅이 도입되면서, 이전에는 사용자가 모두 IT 인프라의 구성 요소를 관리해야 했었던 반면, 이제는 일정 부분을 클라우드에서 내려받는 형태가 도입되었다. 그 비중(사용자 관리 : 클라우드 제공) 에 따라 Packaged Software, IaaS, PaaS, SaaS 로 나뉜다.

1. Packaged Software

  • 사용자가 직접 인프라, 플랫폼, 어플리케이션을 모두 구성하여 관리하는 모델
  • 물리적 장치, 하드웨어, OS, 네트워크 환경, 서버 관리 등 모든 것을 사용자가 직접 준비하여야 함

2. IaaS(Infrastructure-as-a-service 서비스로서 인프라)

  • 서버, 스토리지, 네트워크와 같은 컴퓨터 인프라 장비를 제공하는 서비스.
    직접 데이터 센터를 구축할 필요 없이, 클라우드 환경에서 필요한 인프라를 꺼내 사용하면 된다.
    제공받은 인프라에서 사용자는 사용자가 직접 OS과 어플리케이션을 설치하고, 서비스를 운영/관리할 수 있다.
  • 가상 호스팅(VM hosting) 과 비슷하나, 가상 호스팅은 사용자가 직접 장비를 구매해야하는 반면, IaaS는 기업이 준비해놓은 환경에서 사용자가 선택할 수 있다.
  • 장점: 고객은 가상 서버 하위의 레벨에 대하여 고려할 필요가 없다.
  • 단점: 가상 서버 하위의 레벨에 대하여 접근, 제어가 불가하기 때문에 IT 운영 시 불편함을 겪을 수 있다. (장점이자 단점)
  • AWS EC2, Netflix 등

3. PaaS(Platform-as-a-service 서비스로서 플랫폼)

  • 소프트웨어 서비스를 개발할 때 필요한 플랫폼/환경을 제공하는 서비스.
  • 사용자는 어플리케이션 자체에만 집중하며, OS, 서버, 네트워크 등은 모두 클라우드(PaaS)에서 제공한다.
  • 장점: 이미 설치된 미들웨어 위에 코드만 돌리면 되기 때문에, 관리가 편리하여 가장 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 꼽힌다.
  • 단점: 하나의 인프라 기반으로 개발할 수 있다 (IaaS와 마찬가지로, 장점이자 단점)
  • 세일즈포스닷컴, 구글 앱엔진 등

아마존과 같은 서비스가 VM을 제공하는 IaaS라면, PaaS는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조이다. 즉, 개발자는 소스코드만 적어서 빌드하는 것이고, 컴파일은 클라우드에서 진행하여 결과만 가져오는 것.

개발자가 개발을 하는 데 필요한 도구와 환경을 사용하고, 사용한 만큼만 비용을 내기 때문에 개발자로선 비용 부담을 덜 수 있다. 단, 플랫폼 기반으로 애플리케이션을 개발하기 때문에 특정 플랫폼에 종속될 수 있다는 단점이 있다. A 서비스 업체의 PaaS에서 앱을 개발하고 이 작업을 이어서 B 회사의 Paas에서 하기가 쉽지 않다는 뜻이다. 다양한 플랫폼에서 작업하려면 이에 맞게 앱을 수정하는 과정이 필요하다.

4. SaaS(Software-as-a-service 서비스로서 소프트웨어)

  • 클라우드를 통해 모든 것이 제공되는 소프트웨어. 소비자 관점에서 제공되는 IT 서비스
  • 장점: 별도의 설치 없이 웹에 접속, 로그인만 하면 바로 사용할 수 있다. 별도 업데이트 필요 없이 최신 SW를 사용할 수 있다.
  • 단점: 인터넷에 접속할 수 있어야만 사용할 수 있으며, 외부 데이터 노출에 대한 위험 있음
  • Google Docs, Dropbox 등

References:

반응형