1. 가상 머신
1) 전통적 배포방식
물리적인 컴퓨터 한 대에 하나의 OS를 설치하고, 여러가지 프로그램을 설치합니다.
계정을 나눠 여러명의 사용자가 이용가능합니다. 하지만!! 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미칩니다
하나의 OS를 유저들이 공유하기 때문입니다! 그래서 서로 독립적이지 못하죠! CPU, RAM도 유저별로 사용량을 지정할 수 없습니다!
2) 가상화 배포방식
가상머신을 기반으로 배포하는 것을 말합니다. 가상머신이란? 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것입니다.
전통적 배포방식과의 차이점은!! 계정을 나누는 것이 아니라 한 대의 컴퓨터로 여러 OS가 구동 가능하며, CPU,RAM을 설정하여 이를 수행할 수 있습니다.
여기에서 중간에 있는 Hyperviser가 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 줍니다!
그래서 이 Hyperviser위에 여러 개의 가상머신을 구축할 수 있고 가상머신 위에서 OS 그 위에 app이 올라가서 가상머신을 독립적으로 수행할 수 있습니다!
이렇게 가상화라는 기술로 한 대의 하드웨어로 여러명의 사용자들에게 독립적으로 클라우드 서비스를 할 수 있습니다.
2. 오프프레미스, 온프레미스
1) 클라우드, 오프프레미스(off-premise)
클라우드 서비스는 내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또느 소프트웨어를 말합니다
클라우드를 이용하면 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스를 쉽고 싸게 이용이 가능합니다!
즉, 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중할 수 있게 되는거죠!
이를 오프프레미스(off-premise)방식이라고 합니다.
저희가 배포했던 네이버 클라우드, AWS 같은 것들이라고 보면 됩니다!
2) 온프레미스(on-premise)방식
단어에서도 알 수 있듯이 오프프레미스의 반대입니다.
기업이나 개인이 자체 시설에서 보유하고 직접 유지하는 프라이빗 데이터 센터(IDC)를 의미합니다!
이 예로 네이버 데이터 센터가 있는데 여기는 냉각시설의 효율화를 위해 강원도에 있다고 합니다,,,
3. IaaS, PasS, SaaS
1) IaaS(Infrastructure-as-a-Service)
클라우드가 인프라만 제공합니다.
ec2생각하면 저희가 mysql, mongodb이런것들 다 설치해서 사용했었는데 이런 서비스들이 IaaS라고 볼 수 있습니다.
하나하나 다 설치해야해서 초기 설정이 힘들긴 하지만, 특정 서비스에 종속적이지는 않습니다.
2)PaaS(Platform-as-a-Service)
플랫폼형 클라우드 서비스입니다. 클라우드가 플랫폼을 제공해줍니다!
NodeJs, MongoDB 등이 설치되어있으며, 클릭으로 해당 서비스를 이용할 수 있습니다.
모니터링, CI/CD도 제공됩니다.
heroku가 그 예시라고 볼 수 있습니다!
3) SaaS(Software-as-a-Service)
서비스형 클라우드 서비스입니다.
완전한 서비스를 클라우드서비스로부터 제공바다아서 사용합니다.
구글DOCs가 그 예입니다!
4) PaaS vs IaaS
IaaS는 유연하며 플랫폼에 종속적이지 않죠(하나하나 다 설치했으니까요,,) 그런데 PaaS의 경우는 플랫폼에 종속적이라 이식성이 낮습니다. 대신에 클릭으로 설치가 가능하니 운영비 효율이 뛰어납니다!(로깅, CICD, 모니터링에 대한 비용이 낮으니까요,,)
그런데 이런 PaaS와 IaaS의 장점을 모두 가져가는게 있으니...!
바로 3차프로젝트에서 배포도구로 사용했던 Docker입니다!
다음 블로깅때는 컨테이너와 도커에 대해서 알아보겠습니다 ㅎㅎ