클라우드란 "클라우드 컴퓨팅" 이나 "클라우드 서비스" 의 약칭으로, 인터넷으로 가상화된 IT 리소스를 서비스로 제공하는 것을 의미합니다. (자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술)
클라우드 컴퓨팅에서 가상화 하여 서비스로 제공하는 대상은 서버, 네트워크, 스토리지, OS 등 다양한 것을 제공합니다.
이때, 클라우드 이용 형태에 따라 서비스의 종류가 나누어지는데 IaaS, PaaS, SaaS가 이에 해당합니다.
IaaS, PaaS, SaaS 차이
- IaaS (Infrastructure as a Service, 아이아스, 에이스) : 정보 시스템 가동에 필요한 가상 서버를 비롯한 장비나 네트워크 등의 인프라를 인터넷상의 서비스로 제공하는 형태를 말하는 것으로, 즉 개발사에게 제공되는 물리적 자원을 가상화합니다.
- PaaS (Platform as a Service, 파스) : 주로 응용 프로그램을 개발할때 어플리케이션을 가동하기 위한 하드웨어나 OS , 미들웨어 등의 필요한 플랫폼 세트를 제공하는 것입니다. 즉 개발사에게 제공되는 플랫폼을 가상화합니다.
- SaaS (Software as a Service, 사스) : 사용자에게 제공되는 애플리케이션(소프트웨어)을 가상화하여 제공하는 것입니다. 사용자는 인터넷을 통해 호환 장치에서 SaaS 애플리케이션에 로그인하고 사용할 수 있습니다. 그렇기 때문에 클라이언트 측에서 다운로드나 설치가 필요하지 않습니다. 실제 애플리케이션은 사용자 위치에서 멀리 떨어져 있을 수 있는 클라우드 서버에서 실행됩니다.
제공 범위
IaaS : 물리적 자원 제공 (하드웨어 자원의 일부를 떼어줌)
IaaS는 가상화된 물리적인 자산을 UI 형태의 대시보드 또는 API로 제공합니다. 사용자는 서버와 스토리지를 접근할 수 있지만 사실상 클라우드에 있는 가상 데이터 센터를 통해 리소스를 전달받는 형태입니다. IaaS는 기존의 데이터센터에서 제공받던 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이 필요한 경우 기존의 방식에 비해 훨씬 빠른 대응이 가능합니다.
IaaS의 제공업체는 서버, 하드 드라이브, 네트워킹, 가상화 및 스토리지를 관리하며, 개발사는 OS, 미들웨어, 애플리케이션 및 데이터와 같은 자원들을 관리해야 합니다.
PaaS : 소프트웨어 개발을 돕는 플랫폼 제공
PaaS는 개발사에게 OS, 미들웨어, 런타임과 같은 소프트웨어 작성을 위한 플랫폼을 가상화하여 제공하고 관리합니다. 이 가상화된 플랫폼은 웹을 통해 제공되며 개발자는 운영체제, 소프트웨어 업데이트, 저장소 또는 인프라에 대한 관리없이 소프트웨어 개발에 집중할 수 있습니다. 코드를 압축해서 업로드하거나 깃으로 올리면 클라우드에서 알아서 서버에 넣고 돌려줍니다.
SaaS : 고객이 사용하는 소프트웨어 제공 (사용자들이 바로 온라인으로 이용할수있는 서비스)
SaaS는 고객을 대신하여 소프트웨어와 데이터를 제공하고 관리합니다. 패키지 또는 On-premise 방식인 기존의 소프트웨어 전달 방식과 다르게 SaaS는 개별 컴퓨터에 응용 프로그램을 다운로드하고 설치할 필요가 없습니다.
SaaS를 통해 서비스를 공급하는 업체는 데이터, 미들웨어, 서버 및 스토리지와 같은 모든 잠재적인 기술적 문제를 관리하기 때문에 고객은 유지 보수 및 자원을 간소화하면서 비즈니스에 집중할 수 있습니다.
💡 On-premise(온프레미스)
기업의 서버를 클라우드와 같이 '가상의 공간'이 아니라, 자체적으로 보유하고 있는 서버에 직접 설치하고 운영하는 방식 입니다.
클라우드의 장점과 단점
IaaS
장점
- 자유도가 높고 환경 구축이 쉬움
- 시스템 관리자의 부하 경감
IaaS는 환경 구축의 자유도가 매우 높기 때문에 사용자 정의성이 풍부합니다.
CPU나 스토리지 등의 스펙도, 유저가 필요한 타이밍에 필요한 부분을 자유롭게 선택해 이용할수 있으므로, 여러가지 니즈에 대해 코스트를 최적화 하면서 시스템의 개발.구축이 가능합니다.
단점
- 구축에 전문성 필요
- 유지보수 범위가 넓음
IaaS는 플랫폼 및 프로그래밍 환경을 구축해야 하므로 전문지식이 있는 엔지니어가 필요합니다. 또한 유지보수 범위도 넓기 때문에 운용 부하가 커집니다.
커스터마이즈성은 높지만 사용자가 관리해야하는 것은 PasS나 SaaS와 비교하면 관리 비용이 높습니다.
PaaS
장점
- 서비스.어플리케이션의 개발에 전념 가능
- 초기 비용 및 시간 비용 절감 가능
PaaS는 클라우드 환경의 서버, OS, 미드웨어, 데이터베이스 등 애플리케이션 개발에 필요한 환경이 갖추어져 있기 때문에(플랫폼화) 서비스 및 응용프로그램 개발에 집중할 수 있습니다.
또한 개발 시작 시 인프라 구축과 관련된 초기 투자 및 리드 타임을 줄일 수 있습니다.
단점
- 개발의 자유도가 낮음
PaaS는 인프라가 플랫폼으로 개발환경에 내장되어 있어 CPU나 스토리지를 선택할수없거나, 언어나 미들웨어가 비대응이라면 개발 요구 사항을 충족할 수 없는 경우가 많이 있습니다.
SaaS
장점
- 필요한 서비스를 구독에서 즉시 사용 가능
- 시간.장소를 구애받지 않고 이용가능 ( 모든 운영은 프로바이더가)
SaaS는 제공업체가 제공하는 애플리케이션 및 서비스를 계정을 개설하는것만으로 언제 어디서나 이용할수있으므로 개발 비용이나 리드 타임을 소비하지 않고 간단하고 신속하게 도입할 수 있습니다.
또한 관리나 업데이트도 기본적으로 모두 프로바이더가 실시해주기 때문에, 운용면에서의 비용도 필요 없습니다.
단점
- 사용자 정의 불가
- 데이터 마이그레이션이 어려움
SaaS는 기본적으로는 서비스의 커스터마이즈를 할수 없고, 당연히 서비스끼리의 제휴는 기대할 수 없기 때문에 만약 서비스를 마이그레이션하면 데잌터의 마이그레이션에 있어서 큰 수고와 비용을 필요로 할 가능성이 있습니다.
클라우드 서비스 활용 사례
IaaS
Amazon Web Service(AWS), Microsoft Azure, DigitalOcean, Google Compute Engine(GCE)
PaaS
AWS Elastic Beanstalk, Windows Azure, Heroku, Google App Engine
SaaS
Google Apps, Dropbox, Salesforce, WhaTap, Gmail, Office365
Reference : https://www.whatap.io/ko/blog/9/
https://tagilog.tistory.com/1138