IT에서 말하는 클라우드란 무엇일까?
안녕하세요.
제가 만드는 플랫폼에 기고했던 글을 정리해서 올리는 중에 클라우드에 대해 기고한 글을 올려보고자 합니다. (2부작으로)
먼저 오늘은 클라우드가 무엇인지에 대해 한 번 설명해 보고자 합니다.
클라우드는 물리적 PC나 서버를 관리할 필요 없이, 가상으로 컴퓨터를 생성해 서비스를 할 수 있도록 구현한 컴퓨팅 환경을 뜻합니다. 단어에 정확한 규격을 정하지 않았기 때문에 정확한 의미를 부여하기는 어렵지만 가상화를 이용하는 IT 인프라를 칭하는 단어라고 이해하면 좀 더 나을 것 같습니다.
아니, PC나 노트북처럼 전원을 연결하고 전원을 켜야 컴퓨터가 실행되는 것 아닌가?
제가 가상화라는 것을 처음 접했을 때 이런 느낌이었습니다. 눈에 보이지 않는 PC가 가상으로 생성될 수 있다는 것이 신기했죠.
클라우드는 내 앞에 컴퓨터가 없어도 원격으로 접근 가능한 기술로 인해 가능케 되었습니다. VM이라는 하나의 CPU 내에 마치 서로 다른 여러 대의 컴퓨터를 가진 것처럼 가상으로 자원을 분할하여 사용할 수 있게 된 기술로 인해 현실화되었다고 볼 수 있습니다.
컴퓨터는 CPU와 메인보드, 램과 전원, 그리고 SSD나 하드로 이루어진 하나의 물체입니다.
컴퓨터에 전기를 넣으면 임시 저장공간에서 하드웨어의 정보를 읽고, 하드나 SSD에 저장되어 있는 운영체제(윈도우나 리눅스 등의)를 읽어와 사용자들이 사용할 수 있게 기본적인 프로그램들을 띄워 줍니다. 이것을 부팅(booting)이라고 하죠.
부팅이 완료되면 사용자들은 자기가 사용하고 싶은 애플리케이션(브라우저, 워드, 게임 등과 같은 프로그램)을 실행해 원하는 정보를 얻습니다. 이런 애플리케이션들 중에 “가상화 프로그램”이라고 불리는 프로그램이 있는데요, 가상 컴퓨터를 생성할 때 '난 지금 새로운 컴퓨터야.'라고 속여서(?) 새로운 컴퓨터를 만드는 것처럼 운영체제를 띄우고 부팅을 하게 됩니다. 물리적 컴퓨터 안에 있는 운영체제에서 말이죠.
이것이 바로 “가상 머신(Virtual Machine)”입니다. 물리적으로는 존재하지 않지만, 물리적 컴퓨터의 운영체제 안에서 가짜로 컴퓨터를 생성하는 것입니다.
가상화 컴퓨터도 물리적 컴퓨터와 마찬가지로 CPU, RAM, 하드(또는 SSD), GPU(그래픽카드), 랜카드(네트워크), USB 포트 등으로 이루어져 있고, 이는 물리적인 컴퓨터의 리소스에서 가져옵니다.
가상화 애플리케이션 전문 업체인 VMWARE 같은 회사는 우리가 아는 리눅스나 윈도우를 쓰지 않고 자체 가상화 전용 운영체제를 사용하기도 합니다. 이런 전용 애플리케이션은 윈도우 같이 인터넷이나 게임, 웹서버 생성 같은 기능을 하지 않고, 오로지 가상머신을 생성하고 안정성을 높이기 위해서 만들어진 운영체제입니다. 이 가상화 전용 운영체제 안에서 윈도우나 리눅스, 유닉스 같은 가상 컴퓨터를 띄워서 서비스를 구성하고 사용할 수 있는 것이죠!
그렇다면 가상화의 장점에는 무엇이 있을까요?
이렇게 물리적 컴퓨터를 가상화 머신으로 구현하게 되면, 컴퓨터는 하나인데 여러 독립된 컴퓨터와 운영체제를 생성할 수 있게 됩니다. 만약에 물리적 서버의 리소스가 남아돌면, 그만큼 여러 대의 컴퓨터를 운영할 수 있는 효과를 가지게 되는 것이죠.
이런 방식을 통해 가상화는 가성비 면에서 산업에 큰 이득을 줄 수 있었고, 아마존은 이런 가상화 방식을 통해 각각의 독립적인 가상 컴퓨터를 고객에게 제공해 주고 사용한 만큼 돈을 받는 퍼블릭 클라우드 서비스 (Public Cloud)를 운영할 수 있게 됩니다.
아마존이 대중에게 공개한 최초의 서비스가 바로 AWS EC2였고, 이후 Azure와 google이 클라우드 산업에 발을 디디게 되었습니다. 국내는 현재 네이버클라우드, NHN클라우드가 있고, 카카오도 본격적으로 클라우드 산업에 발을 들였습니다.
최근 ~ as a Service라는 용어가 자주 보이는데요, 이는 IT산업의 최신 비즈니스에 대해 잘 표현해 주는 단어들이라고 생각됩니다.
Infrastructure as a Service(IaaS) : 위에서 말한 아마존 웹 서비스(AWS)와 같이 컴퓨팅이나 메모리 등의 가상 인프라를 제공해 주고 사용한 만큼 돈을 받는 서비스
Software as a Service(SaaS) : 노션, 슬랙과 같이 소프트웨어를 중앙 관리형 인프라 안에서 고객에게 동일한 서비스를 제공하고 사용한 만큼 돈을 받는 서비스
Platform as a Service(PaaS) : SaaS 등의 애플리케이션과 IaaS 등의 인프라들을 편리하게 사용하고 개발할 수 있게 플랫폼 형태로 제공해 주는 서비스. 개발에 특화된 기능들이 PaaS로 제공
이와 같이 IT 산업에서 구독형 서비스를 칭할 때 -aaS를 붙이는 단어가 많이 사용되고 있습니다.