클라우드의 반댓말은 온프레미스다. 기존에는 기업들이 온프레미스 서버를 구축해 독자적으로 서버를 운영했다. 당연하게도 서버 구축, 유지 관리 비용이 더 들어갈 수밖에 없었다. AWS와 같은 클라우드 업체는 이미 구축된 서버를 빌려준다. 예를 들어 스타트업이나 본인의 사이트를 운영하는 개인 들은 온프레미스 서버를 구축하고 운영하기가 어렵기 때문에 이런 클라우드 업체를 통해 서버를 대여하고 그 시간만큼의 비용만 지불한다. 이를 온디맨드라고 한다.
그럼 클라우드 업체로부터 서버 장비를 대여 하냐? 당연히 그렇지 않다. AWS, Google, Naver 같은 업체들은 이미 본인들의 데이터센터를 가지고 있다. 하나도 아니고 전세계 여러 나라에 지어놓고 있다. 바로 데이터센터에 올라가있는 가상화 컴퓨터를 대여하는 것이다.
가상화 컴퓨터, 즉 가상 머신(Virtual Machine)은 컴퓨터 위에 또 다른 컴퓨터가 올라가 있는 구조, 다시 말해 OS 위에 OS가 올라가 있는 구조다. 이게 한두개 정도는 거뜬하겠지만 클라우드 업체 입장에서는 고객이 한두명도 아니고 수천, 수만의 고객들에게, 그리고 하나의 고객이 당연히 수십, 수백개의 인스턴스를 사용할 수 있다. 그러면 Virtual Machine의 OS 위에 OS가 올라간 구조는 무겁고 부담스럽다.
여기서 컨테이너가 등장한다. 컨테이너는 Docker라고 하는 기술이 등장하면서 본격적으로 사용되기 시작했다. Docker 이전에도 Jail, LXC(Linux Container)라는 기술이 있긴 했지만 Docker의 간편한 CLI, 사전 구축된 이미지 라이브러리 등 새로운 개념을 통해 컨테이너를 신속하게 구축하고 간편하게 공유할 수 있게 되었기 때문이다. 아무튼 컨테이너라는 기술을 통해 더 가볍게 인스턴스를 가상화 할 수 있게 되면서 클라우드는 컨테이너를 적극적으로 도입하게 된다. Google의 Gmail이나 Youtube등 모든 서비스는 컨테이너에서 실행되고 있다. 그리고 이 엄청나게 많은 컨테이너를 관리하는데 사용되는 도구가 바로 Kubernetes이다.
🔸 클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말합니다.
클라이언트 간 통신 구조인 mesh 구조에서는 클라이언트가 늘어날수록 통신이 매우 복잡해진다. 반면 클라이언트-서버 구조에서는 서버를 통해 훨씬 간단하게 통신이 이루어질 수 있다.
이러한 서버를 모아 놓은 데이터 센터가 만들어지게 되었다.
그러나 데이터 센터는 건물 유지 비용, 서버 구매 비용, 유지 보수 등의 비용 문제가 있고, 구축 및 업그레이드에 시간이 많이 필요하기 때문에, 유저의 수요에 빠르게 대처하기 힘들다는 문제도 있다.
반면 클라우드 컴퓨팅은,
의 장점이 있다.
Cloud Computing Types
Build Types