클라우드는 “인터넷”을 통해 접근할 수 있는 서버 그리고 그 안에서 구동되는 소프트웨어, 데이터베이스 등을 의미한다.
나의 컴퓨터 장비를 사용하지 않고 컴퓨터장비를 구축해 해야할 작업을 온라인에 분산되어 존재하는 데이터 센터(Data Center, 이하 클라우드)에 맡겨 수행하는 것을 말한다.(IDC, ‘인터넷 데이터 센터'(Internet Data Center)라고도 합니다.)
이렇게 되면 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중할 수 있다. 이를 오프프레미스(o-premise) 방식이라고 한다.
ex) 춘천 - 네이버 데이터센터
기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터(IDC)
온프레미스방식은 앞서 설명한 네이버의 IDC를 예로 들수 있다.
SaaS(Software as a Service)는 인터넷을 통해 소프트웨어를 제공하는 방법
ex) 구글 드라이브, N드라이브, 구글 DOCS 등
IaaS(Infrastructure-as-a-Service), 인프라를 제공.(서버와 저장소를 줍니다.) 빈방을 주는 것이라고 생각하면 된다.
가상머신 위에서 애플리케이션의 각 컴포넌트가 구동됨.
특정 클라우드에 종속 x, 운영비가 상승함. 이식성이 좋음.
ex) AWS의 EC2, NCP
가상머신이란 가상 컴퓨터, 컴퓨터 시스템을 에뮬레이션(가상현실화)하는 소프트웨어를 말한다.
PaaS(Platform-as-a-Service)는 플랫폼을 제공한다.
플랫폼을 제공. 빌트인 방.
운영비는 절감할 수 있고, 모니터링, CI/CD가 제공된다.
설치가 쉽지만 IaaS보다는 유연하지 않고 플랫폼에 종속되게 되어있음.
ex) heroku 등이 있음.
하나의 서버에 직접 Node.js MongoDB를 설치하는 것이 아니라 Node.js 클라우드 서비스 따로 설치해야 한다.
그렇기 때문에 마이그레이션, 원래의 서비스를 기반으로 이전할 때 너무나 힘들며 애플리케이션의 각 컴포넌트를 하나씩 클라우드에서 제공하는 “서비스”로 옮겨야 하기 때문에 이전이 쉽지 않다. 또한 특정 클라우드 서비스에 종속되게 되는 단점이 있다.