Cloud란?
인터넷을 은유적으로 표현하는 말
예전에는 인터넷을 정보의 바다라고 하던 때도 있었다. 그 때 바다라는 말이 인터넷을 은유적으로 표현하던 것처럼 클라우드 역시 인터넷을 은유적으로 표현하는 다른 표현이라 생각하면 된다.
Cloud Service?
Cloud가 인터넷을 의미한다면 Cloud Service는 인터넷으로 제공되는 서비스를 말하는데, 대표적으로 이메일, 드라이브등이 있다. 지금 내가 작성하고 공유하고 있는 이 포스팅도 내 컴퓨터에 저장되는게 아닌 Notion 서비스를 제공하는 회사 서버에 저장되고 있다. 이 과정은 인터넷을 이용해 동작하며 그 덕에 인터넷만 가능하다면 지금 이 포스팅을 작성하는 위치가아닌 다른 어디를 가더라도 클라우드 서비스를 제공받을 수 있다면 이 포스팅을 확인할 수 있다.
이렇게 인터넷을 이용해 서비스를 제공하는 것을 클라우드 서비스 혹은 SaaS(Software As A Service)라 한다.
또한, 이런 어플리케이션 뿐 아니라 인터넷을 통해 제공되는 서비스는 모두 클라우드 서비스라 할 수 있는데, 컴퓨팅 리소스를 제공한다면 PaaS(Platform as a Service), 또는 IaaS(Infrastruture as a Service)라 한다.
그리고 이렇게 인터넷을 통해 컴퓨팅 리소스를 이용하는 것을 클라우드 컴퓨팅(Cloud Computing)이라 한다.
Cloud Computing?
인터넷을 통해 컴퓨팅 리소스를 제공하는 회사를 통해서 서버, 데이터베이스, 네트워킹등을 제공받아 사용하는 것을 말한다. 대표적인 컴퓨팅 리소스 제공 업체는 아마존의 AWS, MS의 Azure, 구글의 구글 클라우드 등이 있다.
이런, 컴퓨팅 작업을 인터넷을 통해 원격으로 다른 컴퓨터에서 하는 것을 클라우드 컴퓨팅이라 한다.
왜 클라우드를 사용하는가?
관심사의 분리
:서비스를 만들어 배포하려 하는데, 만약 컴퓨팅 리소스를 자체적으로 회사내에 두거나 해서 직접 구축하려면 사용되는 비용이 어떨까? 생각나는대로 몇가지만 얘기해도 서버용 컴퓨터, 서버 유지/보수 운영자, 인터넷 전용 회선 구축등 준비해야 할 게 많고 추후 서비스 중 서버가 정전 사태에도 꺼지지 않도록 보조전원, 온도문제, 서버컴퓨터는 보통 소음이 심하니까 소음문제에 정말 많은 고려사항이 든다.
이런데다 신경을 쓰고 관리하는건 심적으로나 물적으로나 비용 소모가 만만치 않은데, 여기에 신경을 쓰면서 서비스자체에도 신경을 쓰고 관리를 해줘야 하니 관심사가 너무 분산되어 더 높은 생산성을 확보할 수 없다.
그런데, 이런 컴퓨팅 리소스를 AWS의 EC2를 대여한 뒤, 서비스를 제공하면, 위에서 말한 정전문제, 서버관리, 소음, 유지 보수같은 거의 대부분의 문제를 아마존 AWS에서 알아서 관리해준다.
그럼 우리는 우리가 제공 할 서비스에만 집중하면 된다.
Cloud를 사용한다는 것은...
단순히 인터넷을 이용히 컴퓨팅 리소스를 사용하고 관리한다는 의미가 아니라 관심사를 분리하여 집중해야 할 대상에 보다 집중하기 위한 선택이다.