불과 10년 전만 하더라도 클라우드라는 단어가 그리 흔하게 사용되는 용어는 아니었습니다. 하지만 요즘은 뉴스나 기사에서 클라우드라는 단어가 많이 나오기 때문에, 이 글을 읽는 독자 분들도 클라우드라는 단어가 그리 생소하게 느껴지지는 않을 것입니다.
IT 업계에 종사하는 분들이 아니라면, 클라우드라는 단어를 들을 때 특정 맥주 브랜드를 떠올리는 분들도 많을 것 같습니다. 우리가 ‘클라우드’라고 부르는 영어 단어 ‘Cloud’ 는 우리말로 ‘구름’이라는 뜻을 갖고 있습니다. 그래서 클라우드 관련 서비스의 로고를 보면 아래 그림처럼 구름 모양의 아이콘이 자주 등장하는 것을 볼 수 있습니다.
여기서 클라우드 Cloud 라는 단어는 사실 클라우드 컴퓨팅 Cloud Computing 을 짧게 줄여서 부르는 말입니다. 클라우드 컴퓨팅은 클라우드라는 단어의 뜻인 구름처럼 하늘을 둥둥 떠다니며 전 세계 어디서든지 컴퓨팅 자원을 사용할 수 있다는 의미라고 보면 됩니다.
클라우드 컴퓨팅은 다양한 정의를 갖고 있습니다. 먼저 Data 저장과 접근을 인터넷으로 언제 어디서든 접근 가능한 기술이라는 의미가 있습니다. 바로 사용 가능하고 사용한 만큼만 과금되는 전산 기반 시설이라고도 정의할 수 있습니다. 참고로 여기서 시설은 우리가 흔히 인프라스트럭처 infrastructure 라고 부르는 것입니다. 줄여서 인프라 infra 라고 합니다.
그리고 마지막으로 클라우드의 또 다른 정의는 전산 하드웨어 장비들의 가상화 기술입니다. 여기서 우리는 가상화 virtualization 라는 부분에 주목할 필요가 있습니다. 가상화라는 기술이 클라우드 컴퓨팅의 등장에 큰 역할을 했기 때문입니다.
결론적으로 클라우드라고 하면 전산 자원들을 공유하는 기술과 도구의 집합이라고 할 수 있습니다. 여기서 전산 자원이란 서버 server , 스토리지 storage , 네트워크 network 같은 물리 하드웨어 hardware 장비뿐만 아니라 플랫폼 platform 과 애플리케이션 application 이라는 소프트웨어 software 까지 포함하는 개념입니다.
그래서 위키피디아에서는 클라우드 컴퓨팅을 위와 같은 그림으로 나타내고 있습니다. 이처럼 서버, 스토리지 같은 물리 하드웨어 장비와 애플리케이션 같은 소프트웨어까지 포함하는 전산 자원을 인터넷을 통해 공유해서 사용할 수 있게 해주는 것이 바로 클라우드 컴퓨팅입니다.
클라우드 컴퓨팅은 어떻게 탄생하게 되었을까요?
클라우드 컴퓨팅이 탄생한 배경에는 바로 컴퓨터의 발전이 있습니다.
지금은 컴퓨터의 사양이 굉장히 좋아졌기 때문에 쿼드코어나 옥타코어가 기본이지만 예전에는 코어가 하나인 싱글코어가 대부분이었습니다. 여기서 코어라고 하면 우리가 흔히 CPU라고 부르는 것입니다. 사람으로 치면 두뇌에 해당하고 코어가 많을수록 연산 능력이 뛰어나다고 할 수 있습니다. 컴퓨터의 발전에 따라 싱글코어에서 코어가 2개인 듀얼코어가 나오게 됩니다.
그 후 인터넷의 등장으로 컴퓨터 간 데이터 교환이 가능해졌습니다. 초기에는 속도가 다소 느렸지만, 인터넷 기술이 발전하며 데이터 전송 속도가 급격히 빨라졌습니다. 이와 더불어 규모도 커져서 전 세계의 컴퓨터들이 서로 연결되고 정보를 공유할 수 있게 되었습니다. 클라우드 컴퓨팅은 인터넷을 기반으로 하는 기술이므로, 인터넷의 발전은 클라우드 컴퓨팅의 성장과 혁신에 핵심적인 역할을 했다고 볼 수 있죠.
그런데 이러한 멀티코어를 가진 컴퓨터들이 기하급수적으로 늘어나게 되면서 남는 컴퓨팅 자원이 많이 발생하게 됩니다.
이상적인 경우라면 위 그림처럼 모든 프로세서가 항상 100% 일을 하도록 만드는 것이 좋습니다.
컴퓨터 공학에는 Operating System이라고 부르는 운영체제 과목이 있습니다. 운영체제를 배운 분들은 알겠지만 운영체제에는 스케줄링 알고리즘이라는 개념이 등장하는데 이 스케줄링 알고리즘의 목적은 CPU가 최대한 쉬지 않고 계속해서 일을 하도록 만드는 것입니다.
하지만 CPU의 연산 능력에 비해서 사람이 컴퓨터에 일을 주는 속도가 느리기 때문에 현실적인 CPU 점유율은 위 그림과 같은 형태가 될 것입니다. 일을 열심히 하는 컴퓨터도 있고 아예 놀고 있는 컴퓨터도 있는 상황입니다.
이렇게 남는 컴퓨팅 자원을 그냥 두는 것은 자원 낭비입니다.
비싼 돈을 주고 산 컴퓨터인데 아무것도 안 하고 있으면 아깝다는 생각이 듭니다. 그래서 사람들이 이러한 생각을 하게 됩니다.
‘지금 당장 사용하지 않는 컴퓨팅 자원을 빌려주고 돈을 받을 수 있을까?’
만약 그럴 수 있다면 굉장한 이득입니다.
내가 나중에 쓰긴 할 것이지만, 잠시 사용하지 않는 동안에만 빌려주고 돈을 받는 수익 모델을 생각하게 된 것이죠.
내가 가진 것 중에 지금은 사용하지 않는 것을 빌려주고 돈을 받는 비즈니스 모델을 가진 대표적인 것이 바로 에어비앤비 Airbnb 입니다. 에어비앤비는 내가 가진 집이나 방을 빌려주고 숙박비를 받는 모델입니다. 내가 쓰고 싶을 때는 내가 쓰고, 아무도 쓰지 않을 때는 다른 사람에게 빌려줌으로써 돈을 벌 수 있습니다.
그런데 에어비앤비는 집이나 방을 빌려주면 되지만, 컴퓨터는 빌려줄 방법이 마땅치 않습니다.
컴퓨터를 잠깐 빌려주겠다고 고객에게 직접 갖다 줄 수도 없고, 반대로 고객을 집으로 오게 해서 컴퓨터를 사용하게 할 수도 없기 때문입니다.
그런 시점에 가상화 기술Virtualization이 부상하게 됩니다. 가상화는 쉽게 말해서 서버, 스토리지, 네트워크 같은 하드웨어를 소프트웨어 형태로 추상화시킨 것이라고 보면 됩니다. 그리고 이 가상화 기술을 사용해서 하드웨어로 이뤄진 컴퓨팅 자원을 소프트웨어로 구현한 것을 가상 머신 (Virtual Machine, VM)이라고 합니다. 가상화 기술 덕분에 macOS에서 윈도우를 실행하고, 윈도우에서 리눅스를 실행할 수 있게 되었죠. 그리고 이러한 VM을 인터넷을 통해서 원격으로도 제공할 수 있게 되었습니다.
그래서 사람들은 컴퓨터 하드웨어를 직접 빌려주는 것은 굉장히 비효율적이기 때문에 아래와 같은 생각을 하게 됩니다.
컴퓨터의 발전, 가상화 기술의 등장, 그리고 인터넷의 발전에 힘입어 클라우드 컴퓨팅이라는 것이 탄생하게 되었습니다.
우리는 클라우드 컴퓨팅의 탄생 이유에서 인터넷을 통해서 컴퓨팅 자원을 빌려줄 수 있게 되었다는 걸 알았습니다. 근데, 어디까지 빌려줘야 할까요? 지금부터는 피자를 먹는 네 가지 방법을 예로 들어서 설명해보겠습니다.
위 그림은 피자를 먹는 방법을 네 가지로 나누고 각 방식을 그림으로 나타낸 것입니다.
가장 왼쪽에는 집에서 피자를 직접 만들어 먹는 홈 피자 방식이 있고, 다음에는 냉동피자를 사서 집에서 구워 먹는 냉동 피자 방식, 그리고 다 구워진 피자를 배달시켜 먹는 배달 피자 방식, 마지막으로 매장에 가서 먹는 매장 피자 방식이 있습니다.
이제 이 방식의 특징에 대해서 하나씩 살펴보도록 하겠습니다.
먼저 홈 피자는 식탁부터 오븐, 피자 재료까지 모두 피자를 먹는 사람 본인이 준비하고 관리해야 합니다. 이 경우에는 재료부터 장비까지 사려면 돈도 많이 들고 시간도 많이 듭니다.
냉동 피자의 경우 피자 재료는 살 필요가 없습니다. 냉동된 피자를 사다가 오븐에 데워서 먹으면 됩니다. 그렇기 때문에 피자를 데울 수 있는 오븐과 피자를 먹을 식탁, 그리고 피자를 구입할 돈만 있으면 됩니다.
다음은 배달 피자인데 배달 피자는 이미 피자가 구워져서 오기 때문에 그냥 돈을 내고 받아서 식탁에서 먹으면 됩니다.
마지막으로 매장 피자는 그냥 돈만 내고 먹으면 됩니다. 모든 것이 제공되는 것이죠.
이제 피자가 아닌 클라우드에 적용해서 설명하겠습니다.
먼저 홈 피자는 전통적인 온프레미스로, 집에서 컴퓨터를 직접 사서 설치하고 사용하는 경우입니다. 이 경우에는 클라우드를 사용하지 않고 그냥 자신의 집에 있는 컴퓨터를 쓰면 됩니다. 냉동 피자는 인프라스트럭처 infrastructure 만 대여하는 경우인데 돈을 내고 인프라스트럭처를 대여해서 사용합니다. 배달 피자는 플랫폼까지 대여하는 경우입니다. 마지막으로 매장 피자는 소프트웨어까지 모든 것을 다 빌리는 경우입니다.
클라우드를 피자에 관련된 그림으로 설명하다 보니 이해가 잘 안 될 수 있습니다. 지금까지 이야기했던 피자를 먹는 방법과 같은 형태의 클라우드 컴퓨팅 그림을 보면서 다시 한번 살펴보겠습니다.
온프레미스는 서버, 네트워크, OS, 소프트웨어까지 모두 다 직접 관리해야 합니다. 그리고 인프라스트럭처는 업체에 돈을 지불하고 서버, 스토리지, 네트워크 등의 장비를 대여해 사용하게 됩니다. 이 경우 운영체제와 미들웨어 등의 설치를 직접해야 합니다. 마치 냉동 피자를 데우는 것과 같은 일입니다.
다음으로 플랫폼까지 빌리는 것인데, 이 경우에는 운영체제가 설치된 상태로 빌리는 것이기 때문에 바로 소프트웨어를 설치해서 사용하면 됩니다. 마지막 소프트웨어는 그냥 바로 사용하기만 하면 됩니다.
그렇다면 우리가 오늘 살펴본 클라우드 컴퓨팅 서비스는 이 네 가지 방법 중에서 몇 번째에 해당할까요?
보통 인프라스트럭처, 플랫폼, 소프트웨어의 세 가지를 포함합니다. 인프라스트럭처만 빌릴 수도 있고, 플랫폼을 통째로 빌릴 수도 있으며, 소프트웨어까지 완제품 으로 빌릴 수도 있습니다. 이렇게 어디까지 빌려주는지에 따라서 IaaS, PaaS, SaaS 등 다양한 이름으로 불립니다. 그리고 클라우드 컴퓨팅 서비스 중 하나인 AWS는 이런 다양한 형태로 모두 사용할 수 있습니다.
위 콘텐츠는 『소문난 명강의 : 소플의 처음 만난 AWS』에서 내용을 발췌하여 작성하였습니다.
최신 콘텐츠