클라우드 컴퓨팅은 현대 IT 환경에서 필수적인 기술로 자리 잡았다. 이번 블로그에서는 클라우드가 무엇이고 왜 필요한지에 대해 다뤄볼것이다. 먼저 웹사이트가 어떻게 작동하는지 기본적인 원리부터 살펴본 후 , 클라우드의 등장 배경과 장점까지 알아보겠다.
웹사이트가 동작하는 기본원리는 매우 간단하다. 클라이언트가 서버에 요청을 보내면, 서버는 그 요청에 대한 응답을 돌려주고 클라이언트는 그 응답을 바탕으로 웹페이지를 렌더링한다.
위 사진을 보면 클라이언트는 네트워크를 통해 서버로 요청을 보낸다. 서버는 그 요청에 맞는 응답을 다시 클라이언트에게 전송하고 , 이를 통해 웹사이트가 브라우저에 보이게 된다.
클라이언트가 서버에 요청을 보내기 위해서는 IP주소가 필요하다. IP주소는 인터넷상에서 서로를 인식하는 주소와 같으며 , 클라이언트에도 IP 주소가 있고, 서버에도 IP 주소가 있다. 이를 통해서 클라이언트는 서버를 찾을 수 있고, 서버는 클라이언트에게 응답을 보낼 수 있다.
서버는 웹사이트나 애플리케이션을 운영하는데 필요한 하드웨어와 소프트웨어를 포함한다. 서버가 어떻게 구성되어 있는지 알아보자.
서버는 이 외에도 네트워킹 장비를 사용해 클라이언트와의 통신을 원할하게 처리한다.
서버와 네트워크 간의 연결 및 통신을 이해하기 위해서는 몇가지 IT 용어를 알아두는 것이 좋다.
위 사진에서 네트워크,라우터,스위치 간의 관계를 볼 수 있다. 클라이언트가 데이터를 라우터에 보내면, 라우터는 그 데이터를 스위치를 통해 목적지로 보낸다.
예전에는 웹사이트를 운영하려면 직접 서버를 사서 집이나 사무실에 설치해야했다. 구글이나 많은 스타트업이 차고에서 서버를 돌리며 시작했다고 한다. 하지만 서비스가 성장 할 수록 더 많은 서버가 필요해지면서 여러 문제에 직면하게 된다.
1) 비용 문제
서버를 유지하려면 전력, 쿨링시스템, 그리고 물리적인 공간이 필요하다. 이는 모두 비용을 발생시키며 , 특히 서버가 많아지면 그 비용도 크게 증가하게 된다.
2) 확장성 문제
서비스가 커지면 더 많은 서버가 필요하다. 하지만 서버를 추가하는 과정은 시간도 오래 걸리고, 물리적인 공간에도 한계가 있다. 이를 극복하기 위해서는 훨씬 더 유연한 확장성이 필요하다.
3) 유지보수 문제
서버는 때때로 고장이 날 수 있으며, 이를 유지보수하기 위한 인력이 필요하다. 서버를 관리하기 위해선 24시간 모니터링을 해야하고 정전이나 화재같은 비상 상황에 대비해야한다.
이러한 문제를 해결하기 위해 등장한 것이 바로 클라우드 컴퓨팅이다. 클라우드는 더 이상 물리적인 서버를 직접 소유할 필요없이, 필요할 때만 서버 자원을 빌려 사용하는 개념이다.
클라우드를 사용하면 다음과 같은 장점이 있다.
위 이미지는 클라우드의 작동 원리를 시각적으로 설명한다. 클라우드를 통해 다양한 리소스를 손쉽게 관리할 수 있음을 보여준다.
이미 많은 사람들이 클라우드 기술을 다양한 방식으로 사용하고 있다. 예를 들어, Gmail을 사용할 때 우리는 이메일 서버를 직접 관리하지 않고 클라우드를 통해 이메일을 저장하고 관리한다. 또 다른 예로는 Dropbox와 같은 클라우드 스토리지 서비스를 들 수 있다. Dropbox에 파일을 업로드하면 AWS와 같은 클라우드 인프라에 데이터를 저장하는 것이다.
클라우드에는 크게 세가지 유형이 있다.
1. 사설 클라우드 : 특정 조직에서만 사용하는 클라우드로 , 외부에 노출되지 않고 강화된 보안을 제공하여 민감한 데이터를 처리하는데 사용된다.
2. 공용 클라우드 : AWS,Google Cloud,Microsoft Azure과 같은 클라우드 서비스 제공업체가 소유하고 운영하며, 인터넷을 통해 다양한 기업과 개인에게 리소스를 제공한다.
3. 하이브리드 클라우드 : 사설 클라우드와 공용 클라우드를 결합한 형태로 민감한 데이터는 사설 클라우드에서 관리하고 확장성은 공용 클라우드를 통해 활용하는 방식이다.
클라우드 컴퓨팅은 기존 IT 인프라와 비교했을 때 다음과 같은 중요한 장점을 가지고 있다.
1. 온디맨드 셀프서비스 : 사용자는 클라우드 제공자의 개입 없이 스스로 리소스를 설정할 수 있다.
2. 광역 네트워크 액세스 : 인터넷을 통해 언제 어디서나 다양한 장치에서 클라우드 리소스에 접근할 수 있다.
3. 리소스 풀링 : 여러 사용자가 동일한 물리적 리소스를 공유하면서도, 각자의 데이터는 철저히 분리되어 보안과 프라이버시가 유지된다.
4. 빠른 확장성과 탄력성 : 클라우드는 사용자의 요구에 맞춰 리소스를 자동으로 확장하거나 축소할 수 있으며 ,매우 유연하게 대응할 수 있다.
5. 측정 가능한 서비스 : 사용한 만큼 비용을 지불하는 모델로 , 매우 경제적이다.
6. 비용 절감 : 물리적인 하드웨어를 소유하지 않아 초기 자본 지출을 줄일 수 있다.