대표적으로 서버를 운영하는 방법에 있어서 두 가지 방법이 있다. 온 프레미스(On-Premise)
방법과 클라우드 컴퓨팅(Cloud Computing)
이 있는데, 그 중에서 최근에 많은 각광을 받고 있는 클라우드 컴퓨팅이란 무엇이고, 어떤 방식으로 동작하는지 알아보자.
온 프레미스는 서버를 운영하는측에서 서버에 필요한 물리적인 공간, 컴퓨터, 제반 시설등을 직접 구축해서 활용하는 방식을 의미한다. 온 프레미스 방식은 직접 물리적인 서버를 구축하고 관리할 수 있는 전문 인력이 하드웨어를 구입해서 서버실을 구성하고 설계하게 된다.
온 프레미스 방식은 서버를 운영하는 가장 기본적인 방식이지만 서버에 필요한 하드웨어를 직접 구매해서 사용하므로 추후 필요한 하드웨어 사양이 변경되었을 경우 그에 맞춰서 하드웨어를 다시 판매 및 구축하기 어렵다는 점, 컴퓨터를 제외하고도 서버에 필요한 물리적인 제반 시설을 모두 갖추고 문제가 생기진 않는지 모니터링을 해야한다는 점 등 급변하는 소프트웨어에 맞춰서 유지보수하기가 어렵다는 단점으로 인해 많은 기업들이 현재는 온 프레미스 방식을 벗어나서 클라우드 컴퓨팅 기반의 환경으로 변경하고 있다. 다만, 서버를 물리적인 부분까지 온전히 통제할 수 있다는 장점으로 인해서 보안이 중요한 환경에서는 여전히 온 프레미스 방식을 활용한다.
클라우드 컴퓨팅은 컴퓨터를 인터넷을 이용한 클라우드 서비스를 통해서 사용하는 것을 의미한다. 직접 물리적인 서버를 구매해서 관리할 필요 없이 클라우드 서비스 프로바이더를 원하는 사양을 원하는 시간만큼 대여해서 사용할 수 있다.
클라우드 서비스 프로바이더는 전세계에 걸쳐 서버를 운영할 수 있는 인프라를 구축해두고 여기서 물리적인 컴퓨터를 관리하고 있으며 이를 가상화 기술을 통해서 원하는 만큼 분리해서 서비스의 사용자에게 제공하고 있다.
클라우드 컴퓨팅의 사용자입장에서는 물리적인 관리에 대한 필요성이 없어지며 개별 기업에서 운영하는 것보다 훨씬 더 안정적인 환경 및 보안적인 안전성을 제공받을 수 있기 때문에 관리상에 이점이 있다.
또한, 클라우드 컴퓨팅을 사용할 경우 내가 필요한 사양을 필요한 시간만큼만 대여해서 사용할 수 있기에 비용측면에서 효율적이며 컴퓨터의 성능 또는 갯수를 늘릴 수 있기 때문에 서비스의 확장 측면에서도 이점을 가지고 있다.
대표적으로 3가지 방식으로 클라우드 컴퓨팅 서비스를 운영하고 있다.
IaaS는 클라우드 컴퓨팅의 가장 기본적인 형태로서, 인프라를 구축하기 위해 필요한 컴퓨터를 대여해주는 것을 의미한다. IaaS는 대여받은 컴퓨터의 대부분의 리소스에 접근해서 서비스를 구성하고 관리할 수 있으므로 가장 많은 제어권을 가지고 있지만 반대로 가장 많은 부분을 사용자가 일일이 구성하고 관리해줘야 한다는 단점이 있다.
AWS EC2, Google Cloud Platform, Azure
PaaS는 IaaS에 더불어 소프트웨어를 개발하고 운영하기 위해 필요한 구성요소들을 플랫폼화해서 제공해주는 서비스이다. PaaS를 사용하면 개발자들은 소프트웨어의 운영에 대한 관리를 PaaS에 위임할 수 있기 때문에 효율적인 개발이 가능하다. 다만, 특정 플랫폼에 종속적이 될 수 있다는 점, 해당 플랫폼에서 개인이 커스텀화해서 확장하는데는 한계가 명확하다는 점, IaaS에 비해 더 높은 비용을 지불해야 할 수도 있다는 점 단점들도 있다.
AWS Elastic BeanStalk, Heroku, Github Pages
SaaS는 클라우드 서비스에 더불어, 고객이 이를 사용할 수 있는 소프트웨어가 함께 제공되는 형태를 의미한다. 클라우드 서비스를 통해서 제공받기에 명시적으로 애플리케이션을 PC에 설치할 필요가 없으며, 서비스를 활용하기 위해 만들어진 소프트웨어가 제공되기에 이를 통해 편리하게 여러 기능등을 제공받고 활용할 수 있는 형태이다.
DropBox, iCloud, Netflix, Slack