클라우드 컴퓨팅 - IaaS, SaaS, PaaS

Minjae Kwon·2021년 2월 10일
3

 🍉   Learning Journal

목록 보기
28/36

회사 리서치를 하다가 Sendbird 김동신 대표님의 인터뷰를 보게 됐다. 그 중 아래 답변의 SaaS, PaaS 와 같은 키워드가 눈에 띄어 찾아 정리해본다. 소프트웨어를 하나의 프로덕트로 볼 때, 부품을 공급하는 구조를 API 경제에 빗대어 표현한 점이 와닿았다.

한국은 아직 SI 중심적인 소프트웨어 경제가 주축을 이루고 있는데, 한국의 소프트웨어 산업은 앞으로 어떤 방향으로 나아가고 변화할 것으로 보는가.

API 경제는 전 세계에서 일어나는 거대한 파도다. 본질적으로 모든 산업이 시작할 때는 작지만 성장하면서 더 복잡해지고 번들에 포함되지 않은 요소들을 가치사슬 내내 가지고 오게 된다. 제조업이 좋은 사례다. 예전에는 자동차 회사가 모든 부품을 자체 제작했다면, 지금은 자동차 제조업자들에게 부품을 파는 10억 달러 시가 총액을 가지고 있는 공기업 형태로 부품 제조업자들이 존재한다.

이는 전체적인 소프트웨어 산업에서 발생하는 현상이다. 20~30년 전을 되돌아보면 모든 것은 자체 개발됐다. 하지만 10년 전쯤부터 SaaS 또는 오픈소스와 같은 모델들 덕분에 변화가 일고 있다. 최근 들어 PaaS나 API와 같은 더 발전된 형태를 볼 수 있다. 지금은 회사들이 특수화된 소프트웨어 요소들과 서비스 제공자들에게 의존하고 있다. 그래서 API들은 회사가 핵심적인 것에 집중할 수 있는, 그 위에 입힐 수 있는 추상적 레이어를 만든다. 센드버드의 경우 최상의 채팅 API를 제공한다.

🌤 클라우드 컴퓨팅?

인터넷을 통해 컴퓨터 리소스에 접근할 수 있는 사용자 중심의 컴퓨터 환경이다. 여기서 리소스는 데이터 저장소일수도 있고, 서버, 데이터베이스, 네트워킹, 소프트웨어일 수도 있다. 물리적으로 개인용 컴퓨터, 기업용 서버 등에 보관하는 것과 대조적으로, 웹에 접속할 수만 있다면 이들 컴퓨터 자원에 접근이 가능하다.

🙋🏻‍♀️ IaaS, SaaS, PaaS?

IT인프라의 여러 구성요소 들 중 일정 부분은 사용자가 관리하고, 나머지 서비스는 클라우드로부터 제공받게 되는데, 이 때 얼마만큼을 클라우드로 분리할지에 따라 나누어지는 개념이다.

민트색으로 클라우드로 구분되는 영역을 나누어 보았다.

  • IaaS: Infrastructure as a Service
  • PaaS: Platform as a Service
  • SaaS: Software as a Service

☁️ Packaged Software

  • 사용자가 하드웨어 구매부터, O/S 설치, 네트환경 구성, 서버 관리 등을 다 한다.

☁️ IaaS

  • 기업(클라우드)으로부터 인프라스트럭처 레벨의 서비스를 제공받는다.
  • 가상 서버 하위 레벨에 대한 고려없이, OS와 어플리케이션을 직접 관리한다.

예시: AWS 의 EC2
프로젝트에서 사용한 경험이 있는데, 아마존에서 가상 머신을 제공한다. 사용자는 원하는 OS를 고르고 스펙 설정 후 어플리케이션을 올리기만 하면 된다.

☁️ PaaS

  • 개발자가 응용프로그램을 작성할 수 있도록 플랫폼 및 환경을 제공받는다.
  • node.js 등과 같은 런타임과 컴파일 기능 등을 제공하며, 개발자는 소스만 작성한다.
  • 가장 이상적인 어플리케이션 플랫폼 관점의 클라우드 모델로 받아들여지고 있다.
  • IaaS와 같은 취약점으로서, 어플리케이션이 플랫폼에 종속되어 개발되기 때문에 다른 플랫폼으로의 이동이 어려울 수 있다.

예시: AWS Elastic Beanstalk, Heroku, Windows Azure (주로 PaaS 로 사용됨), Force.com, OpenShift, Apache Stratos 등

☁️ SaaS

  • 별도의 설치 부담 없이, 클라우드를 통해 소프트웨어를 제공받는다.
  • 구독이나 트래픽 기반으로 수익을 창출한다.
  • 반드시 인터넷에 접속해야만 사용 가능하고, 외부에 데이터 노출에 대한 위험이 있다는 것이 단점으로 꼽힌다.

예시: Google Apps (Gmail 등), Dropbox, Slack, Netflix

💡 정리해보면, 위의 개념은 각각 host, build, consume 에 대응된다고 할 수 있다.
PaaS 와 SaaS 는 자주 혼동되기도 하는데, 가장 큰 차이점은 SaaS 는 소프트웨어 자체를 '소비'하는데에 중심이 있는 반면, PaaS 는 플랫폼을 기반으로 개발자들이 소프트웨어를 '만드는' 데에 역점을 둔다는 것이다.

🌤 클라우드 컴퓨팅의 장점?

  • 앱이나 브라우저를 통해, 어떤 기기에서든지 접속 가능하다.
  • 사용자는 클라우드에 정보를 업로드/백업할 수도 있으며, 여러 기기에서도 자신의 파일을 seamless 하게 관리할 수 있다.
  • 사용자가 개인 컴퓨터에 큰 용량을 가지고 있을 필요가 없다.
  • 훨씬 수월하게 업데이트된 서비스를 이용할 수 있다. 업데이트 버전을 다운받으면 끝! 💾 ❌
  • 하드웨어 구매, 유지 등에 필요한 비용 절감 효과가 있다. (이런 데에 쓰던 비용을 인터넷 속도를 높이는 데에 쓴다.)

🌤 클라우드 컴퓨팅의 단점?

  • 보안상의 문제. 암호화를 하더라도 만약 암호키가 사라지면, 데이터도 사라진다.
  • 클라우드 컴퓨팅으로 관리되는 서버는 자연재해, 내부 버그, 정전 등에 영향을 받는다. 지역을 가로질러서 캘리포니아에 정전이 오면, 한국 사는 우리에게 영향을 끼칠 수도 있다.

[ 참고자료 ]

profile
Front-end Developer. 자바스크립트 파헤치기에 주력하고 있습니다 🌴

0개의 댓글