[Cloud] : 04. SaaS & FaaS & DaaS & DBaaS


서론

  • 이번 시간에는 SaaS, FaaS, DaaS에 대해서 포스팅을 하겠다. 앞서 얘기한 IaaS와 PaaS에서 클라우드에 대해서 이해했다면 이번 시간에는 별로 어렵지 않다. 이전에 얘기한 인프라나 플랫폼 단위가 아닌 어플리케이션, 소프트웨어, 기능 단위로 서비스를 제공해준다고 이해하면 된다. 특히 소프트웨어(어플리케이션)의 경우는 실생활에서도 많이 활용되기 때문에 이해하기 쉽다.

01. SaaS 란?

image-center

[참고:redhat.com]


  • SaaS란 Software as a Service의 약자로서 소프트웨어를 서비스로 제공해준다고 생각하면 된다. 사용자는 소프트웨어를 사용할 뿐 해당 소프트웨어 대한 관리나 처리에 대해서는 생각 안해도 된다. 예를 들면 Office 365나 Dropbox, 메일 같은 서비스이다. 사용자는 해당 소프트웨어를 사용하기 위해서는 구독 같은 방법으로 비용을 결제하면된다. 넥플릭스를 이용하기 위해서는 매월 결제하는 것과 동일한 결제 방식이라고 생각하면된다.

02. SaaS의 특성

  • 1) Pay-as-you-Go
    • 위에서 얘기했던거 처럼 SaaS의 경우 종량제 방식으로 매월 구독하는 형태로 결제가 진행된다.
  • 2) 안정성
    • SaaS의 경우 제공하는 CSP 혹은 제공 업체에서 Software를 관리하고 있기 때문에 기본적으로 장애 대응이 되고 있으면 사용자가 개인적으로 관리하는것 보다 훨씬 안정적이다. 또한 패치 및 업그레이드가 실시간으로 진행되기 때문에 보안성도 보장된다.’
  • 3) 확장성
    • 드락박스를 에를 들어서 얘기하면 현재 내가 사용하고 있는 용량이 10GB 였다고 가정하면 만일 100GB를 사용하고 싶다면 쓰고 있는 요금제를 선택하면 바로 업그레이드된 용량을 사용할 수 있다. 만일 이것을 하드디스크로 대입해서 생각하면 512GB를 1TB로 업그레이드하기 위해서는 디스크 구매부터 장착까지 많은 시간과 노력이 필요하게 된다. 이와 같이 사용하고 있는 요금제/종량제를 변경하며 곧바로 확장이 가능하다.
  • 4) 어디서든 접근 가능
    • 드랍박스나 Office 365 같은 경우 공간이나 시간에 제약을 받지 않고 사용하고 싶을때 인터넷이 되는 공간이라면 언제든지 접근할 수 있다.

03. SaaS의 서비스 제공에 따른 레벨

  • 이번에는 제공자 입장에서 생각을 한번해 볼까 한다. DB(Oracle)를 내가 사용자에게 서비스로 제공해주겠다고 가정을 해보자 그러면 각 사용자에게 DB를 어떻게 제공할것인가? 각 사용자 마다 DB를 새로 생성해서 줄것인가? 아니면 각 사용자마다 유저를 생성하여 권한을 줄것인가? 이러한 고민을 레벨별로 나눠서 구분하는것이 아래의 그림이다.

image-center

[참고:paas-ta.kr]


  • Level 1 : ASP와 유사한 형태로서 각 고객별로 애플리케이션 인스턴스 제공
  • Level 2 : 고객별 애플리케이션 인스턴스 제공, 설정 기능에 의한 커스텀 마이즈 가능
  • Level 3 : 모든 고객을 하나의 인스턴스로 지원, 메타 데이터를 통해 커스텀 마이즈, Level 2와 비교하여 효율적인 자원 관리 가능
  • Level 4 : 부하 분산 시스템에서 모든 고객을 지원하는 가장 성숙한 모델, 고객의 데이터를 분산 관리

04. FaaS 란?

image-center

[참고:paas-ta.kr]


  • FaaS란 Fuction as a Service의 약자로 함수(기능)를 서비스로 제공해주는 것이다. 예를 들면 AWS Lambda, Google Cloud Functions, MS Azure Functions 등이 있다. 사용자는 Rest API 방식이나 HTTP 메소드를 통해서 함수를 호출하면 결과값을 리턴 받거나 특정 액션 이벤트를 발생시킬 수 있다. 이때 미터링의 기준이 되는것이 이 함수 호출 횟수(그리고 실행된 시간) 만큼만 비용을 내는 방식이다.

  • 개발자가 사용자 정의 로직을 작성하고 이러한 소스를 CSP(Cloud Service Provider)에서 관리를 전담하여 서버 컨테이너가 실행시켜주는 기능이다. 즉 서버에서 수행될 기능을 개발자가 직접 코드로 작성할 수 있다. 일종의 트리거 혹은 함수라고 생각하면 된다.

  • 다음 포스팅에서 MSA에 대해서 설명하겠지만 이 기능을 활용하면 서버리스 어플리케이션을 만들 수 있다. 이때 중요한 부분이 각 어플리케이션 혹은 기능들 간에 통신을 RestFul API 방식을 활용한다는 부분이다.

  • Serverless 란 서버가 없다는 의미가 아니라 클라우드 컴퓨팅의 모델 중에서 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 말한다. 이를 구현하기 위해서 대표적으로 사용하는 구현 방식이 FaaS와 BaaS가 있다.

05. DaaS

image-center

[참고:library.gabia.com/]


  • DaaS란 Desktop as a Service로서 최종 사용자에게 네트워크를 통해서 데스크톱을 제공해주는 서비스를 말한다. 최종 사용자는 인터넷이 된는 상황에서는 언제 어디서나 아무런 기기로 접근이 가능하다.

  • DaaS를 사용하면 모든 정보가 중앙 서버에서 저장되어 있기 때문에 직원의 개별 PC가 바이러스나 노출, 파손, 분실 등의 위헙에서 적다. 기업에서 업무망 접근할때 가장 안전한 기술이라고 할 수 있다. 외부 근무가 많거나 재택 근무가 많은 기업에서 사용하기 좋은 방식이다.

  • DaaS는 제공하는 서비스 형태에 따라서 아래 두가지 방식이 있다.
    • 영구 데스크톱 : 데스크톱을 사용자에 맞게 수정하고 저장할 수 있으므로 특정 사용자가 로그인할 떄마다 동일한 모습으로 표시된다.
    • 비영구 데스크톱 : 데스크톱은 공유 클라우드 서비스에 액세스하는 수단으로만 사용되며 사용자가 로그아웃할 때마다 초기화 된다.
  • DaaS와 VDI(Virtual Desktop Infrastructure)는 구현하는 기능은 동일하다. 하지만 가상화가 일어나는 공간이 사용자가 보유한 인프라이면 VDI라고 하고, 전문 클라우드 공급사에서 제공해주면 DaaS가 되는것이다. 결론은 DaaS는 VDI를 클라우드 형태로 제공하는 서비스라고 할 수 있다.

06. DBaaS

  • DBaaS란 DataBase as a Service의 약자로서 하드웨어나 소프트웨어를 먼저 설치할 필요 없이 최종 사용자들에게 데이터베이스 관리 소프트웨어를 서비스로서 온 디멘드 방식으로 딜리버리하는 것을 의미한다.

  • SaaS와 살짝 구분 짓는 이유는 Database가 가지고 있는 특성에 의해서 그렇다. DB의 경우는 상태 정보를 저장해야된다는 영속성을 가진다. 정보를 지속적으로 저장하기 위해서는 백업혹은 복구하는 방안에 대해서도 정책을 가지고 있어야 된다. 이는 DB가 절대적으로 가지고 있어야 하는 기능이기 때문에 클라우드에서는 이를 DBaaS로 제공하고 있다.

  • 대표적인 DBaaS로는 AWS의 RDS(Relational Database Service)와 Auroa가 있다. 이 둘은 읽기 전용 복제 슬레이브와 여러개의 AZ(Availability Zone)에서 클러스터를 구성하여 장애처리 구조를 내부적으로 구현되어 있어서 안정성을 부여했단.

07. 끝마치며

  • 이번 시간을 클라우드 서비스 유형에 대한 내용이 끝이 났다. 다음 시간에는 클라우드를 통해서 개발하는 어플리케이션에 대한 방법론에 대한 내용을 포스팅해볼려고 한다. MSA와 클라우드 네이티브 어플리케이션을 알고 클라우드를 100분 활용할 수 있는 시간이 되었으면 한다.

댓글남기기