클라우드란?
클라우드는 인터넷을 통해서 언제 어디서든지 원하는 때 원하는 만큼의 IT리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있게 하는 서비스를 말한다.
즉, 내 컴퓨터 장비를 사용하지 않고 컴퓨터 장비를 구축해 놓은 데이터 센터(Data Center, 클라우드)에 있는 컴퓨터를 온라인을 통해 작업하는 것을 말한다(IDC, '인터넷 데이터 센터'(Internet Data Center)라고도 말한다.) 이렇게 되면 서버를 직접 구매할 때 고려해야할 전력, 위치, 서버 세팅, 확장성 등을 고민하지 않고 서비스 운영에만 집중할 수 있다.
이를 오프프레미스(off-premise) 방식이라고 한다.
반면에 온프레미스(on-premise) 방식은 데이터 센터를 직접 보유하고 있는 네이버, 카카오 같이 기업이나 개인이 자체 시설을 직접 유지 관리하는 프라이빗 데이터 센터를 말한다.
클라우드 서비스 종류
IaaS(Infrastructure as a Service)
- 서비스 제공자가 컴퓨팅 리소스를 네트워크를 통해 서비스로 제공하는 서비스이다. 즉, 인프라를 제공
- IaaS의 대표적인 서비스에 스토리지, 호스팅, 컴퓨팅, 네트워킹 등이 포함된다.
- 자신이 직접 서버 컴퓨터를 구매해서 네트워크 설정을 하고 보안 설정을 하는 등의 복잡한 과정이 필요없다. 필요할 때, 필요한 만큼의 자원만 빌려서 사용할 수 있다.
- 마치 빈방을 빌리는 느낌으로 생각하면 된다. 원하고 필요한 만큼 가구를 채우는 식으로
- 직접 서버 컴퓨터를 구매할 필요는 없지만, 다양한 서비스 구축에 대한 지식이 필요하다. 예를 들어, 서버 인스턴스를 만들어서 트래픽 관리를 하지 않으면 서버가 터질 수 있다.
- 아마존의 aws와 같은 서비스가 대표적인 예시. EC2, S3와 같은 서비스로 사용자는 서버 자원이나 파일 저장소를 빌려서 사용할 수 있다.
PaaS(Platform as a Service)
- 기업의 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로 제공하는 서비스이다. 즉, 플랫폼을 제공
- IaaS가 각각의 서비스를 구매해서 서비스를 구축해야되는 것과 달리, 하드웨어와 OS, 미들웨어(ex. 데이터베이스)까지 구축되어 있는 서비스를 말한다. IaaS와 달리 사용자가 인프라 관리에 힘을 쓰지 않아도 된다.
- 빌트인 방을 생각하면 이해하기 쉽다. 이미 다 갖춰져 있고 가져와서 사용만하면 된다.
- Java, PHP, Javascript 등의 프로그래밍 언어를 사용하여 사용자가 개발한 애플리케이션을 운영할 수 있다.
- 위의 프로그래밍 언어를 지원하는 애플리케이션 실행 환경이나 데이터베이스 등이 미리 마련되어 있어 단기간에 응용 프로그램을 개발하여 서비스를 제공할 수 있다.
- 대표적인 서비스로 구글 App Engine이 있다. App Engine을 구글은 아래와 같이 설명을 하고 있다.
완전 관리형 플랫폼에서 애플리케이션을 빌드하고 배포하세요. 기본 인프라 관리를 걱정할 필요 없이 규모에 구애받지 않고 애플리케이션을 원활하게 확장할 수 있습니다. 배포를 구성하거나 서버를 관리할 필요가 없어 개발자는 관리 오버헤드에 시달리지 않고 우수한 애플리케이션을 빌드하는 데 집중할 수 있습니다. App Engine은 일반적인 개발 언어 및 다양한 개발자 도구를 지원하기 때문에 개발자들은 높은 생산성과 민첩성을 유지할 수 있습니다.
기본 인프라 관리를 걱정할 필요 없이 코드 작성에만 집중할 수 있습니다. 소규모든 대규모든 애플리케이션을 자동 확장/축소하는 기능이나 서버에 대한 완전 관리형 패치 및 관리와 같은 기능이 있기 때문에 인프라 걱정은 Google에 전담시킬 수 있습니다.
SaaS(Software as a Service)
- 서비스 제공자가 사용자에게 소프트웨어(어플리케이션) 서비스를 제공하는 서비스다.
- 하드웨어와 OS, 미들웨어, 애플리케이션까지 구축되어 있는 소프트웨어를 서비스로 이용하는 것이다. 사용자는 서비스를 사용하기만 하면 된다.
- 완제품을 생각하면 된다. 이미 완성되어 있는 것을 우리는 단지 사용만 하면 된다.
- 서비스 제공자가 모든 SW를 만들어서 다양한 플랫폼에 제공하는 경우가 많다. 모바일, 데스크톱 환경에 관련없이 모두 접근할 수 있는 경우가 많다.
- 대표적으로 Microsoft Onenote, Google Drive 와 같이 완성된 형태의 SW가 있다. 사용자들은 비용만 내고 소프트웨어(어플리케이션) 서비스를 사용하면 된다.
PaaS와 IaaS 비교
PasS
- 플랫폼에 종속되어 있기 때문에 유연하지 않다. 즉, AWS ec2 같이 하나의 서버에 여러 컴포넌트를 설치하는 식의 작업이 불가능하다.
- 이식성이 낮다.
- 운영비 효율이 좋다.
- 설치가 쉽다.
IaaS
- 플랫폼에 종속되어 있지 않기 때문에 유연하다. 서버를 대여하면 그 안에서 뭐든 설치해서 작업이 가능하다.(단 효율은 저리가~)
- 위의 이유 때문에 이식성이 높다.
- 이식성이 높다는 것은 그만큼 자유도가 높다는 것이다. 그러므로 설치, 관리, 운영이 어렵다.
- 자유도가 높다는 것은 높은 기술이 필요시 된다. 그러므로 인건비, 관리비 등과 같은 운영비 효율이 낮다.