(문과를 위해 설명하는) 클라우드, 클라우드 컴퓨팅?
클라우드(클라우드 컴퓨팅)이 뭘까?
부모님 외 주변 분들이 클라우드가 뭐야?라고 물어보셨는데 막상 설명하기 어려워서 한번 정리해본 포스트.
아마도 IT 업계 외의 분들은 뉴스에서 클라우드, AWS 등의 단어에 대해서 얼핏 많이 들어보긴 했는데, 이게 구체적으로 무엇인지, 어떻게 산업을 바꾸고 있다는 것인지 와닿지 않을 것이다.
나도 실제 써보기 전까지는 클라우드 컴퓨팅이란 개념이 전혀 와닿지 않았다. 예전 대학시절에 그리드컴퓨팅, 클라우드컴퓨팅 등의 특징에 대해서 리포트를 쓴 기억이나는데(해피캠퍼스에서 몇 부 팔아서 더 기억이 잘남..ㅎㅎ), 그때는 클라우드란 것이 활용되기 전이라 실제 예시도 없어 좀 막연한, 실체적으로는 잘 와닿지 않던 개념이었다.
하지만 어느새 클라우드가 없으면 인터넷이 돌아가지 않게 되었고, 나도 클라우드 관련 일을 하게 되었으니, 그 변화와 발전이 꽤 흥미롭다.
보통 클라우드 서비스를 이야기 하면 대표적으로 구글 포토 또는 구글 드라이브 같은 서비스를 떠올린다. 이뿐만 아니라, 사실 지금 우리가 사용하는 대부분의 인터넷 서비스는 프로그램을 내 컴퓨터에 설치하지 않고 온라인에서 필요한 부분만 연결해서 사용한다는 관점에서 클라우드의 개념과 일치한다.
쉽게 네비게이션의 예시를 들어보자.
예전에 자동차에 설치하여 쓰던 네비게이션은 모든 지도 정보를 작은 네비게이션 컴퓨터 안에 넣어두고 사용하는 형태였다. 때문에 도로 정보 업데이트도 업체에 방문해서 USB를 통해 다운로드 받아야만 가능했고 실시간 교통정보는 당연히 반영되지 않았다. 하지만 지금 사용하는 티맵과 같은 네비게이션은, 핸드폰 안에 도로 정보를 저장해두는 것이 아니라 실시간으로 인터넷에 연결해서 정보를 다운받으면서 서비스하게 된다. 때문에 작은 핸드폰에서는 구동할 수 없는 엄청난 양의 빅데이터를 활용하고, 또 머신러닝을 통해 여러가지 교통정보 예측 서비스도 제공할 수 있는 것이다. (교통정보 예측을 위한 빅데이터를 활용한 머신러닝은 서버[1]에서 수행하고, 핸드폰에는 간단한 결과 정보만 전송한다.)
또한 유튜브, 넷플릭스 등 스트리밍 서비스의 경우도, 실제 우리 핸드폰에 동영상을 저장해둔 것이 아니고 인터넷에 연결하여 영상을 조회하는 형태이므로 같은 개념으로 볼 수 있다.
인터넷 서비스 업체들이 사용하는 클라우드
그런데, 일반 유저들이 사용하는 구글맵, 유튜브 같은 인터넷 서비스를 제공하는 업체들도 그 서비스 제공을 위해 뒤에서 또 다른 클라우드 서비스를 사용하고 있다. 이 클라우드가 오늘 이야기하고자 하는 클라우드이다.
이전에 인터넷 서비스를 위해서는 자체 서버 구축이 필수였다.
그러나 최근의 많은 인터넷 서비스 업체들은, 자체 서버 구축 대신 클라우드 서비스 업체[2]의 클라우드를 활용한다.
개인들이 개인 컴퓨터에 파일을 저장하지 않고 구글 포토, 구글 드라이브에 파일을 저장해두고 월 구독 비용을 내고 쓰듯이, 애플리케이션을 서비스하는 업체들도 자신들의 서버를 운용하지 않고 클라우드에 사용 비용을 지불하고 고객들에게 애플리케이션 서비스를 제공하는 것이다.
그러한 업체 중 넷플릭스가 잘 알려져 있는데, 넷플릭스의 서비스를 위한 파일은 클라우드에 저장되어 있으며, 모든 서버 역시 클라우드의 서버를 통해 서비스되는 것으로 알려져 있다. 즉 유저가 넷플릭스에 접속하여 영상을 시청하면, 넷플릭스의 서버가 아닌, 넷플릭스가 AWS에 구독한 AWS의 데이터센터 서버에 접근하여, AWS에 저장된 파일을 통해 영상을 보게 되는 것이다. (이러한 형태를 클라우드 네이티브라고 한다.)
물론 넷플릭스를 사용하는 유저 입장에서는 나에게 영상을 제공하는 서버가 클라우드인지 넷플릭스의 서버인지 알 수도 없고 알 필요도 없다.
만약 클라우드가 없다면, 보통 애플리케이션 서비스 업체들이 서비스를 위해 먼저 해야할 일은
(1) 비싸고 큰 서버를 구매하고,
(2) 서버를 안전하게 관리할 장소(데이터센터[3])를 구축하고,
(3) 이를 관리할 수 있는 높은 수준(=비싼 몸값의)의 인프라/네트워크 엔지니어들을 필요로 할 것이다.
그런데 클라우드를 쓴다면?
1.
AWS, 구글 클라우드 같은 클라우드 서비스 업체에서 위 (1),(2),(3)을 모두 알아서 해주고, 애플리케이션 업체는 그냥 일반 유저들이 구글 드라이브 쓰듯이 ‘클릭’ 몇번만 하면 바로 서버, 데이터베이스, 머신러닝 예측 서비스 등을 사용할 수 있게 되었다.
원래대로라면 위에서 이야기한 것처럼 하드웨어 엔지니어들이 서버를 구매하고, 장소를 임대하고, 서버를 물리적/소프트웨어적으로 구축, 운영해야하는 수많은 전문적인 작업을 전문가에게 위임하고, 내가 필요할 때 ‘클릭’ 몇번에 필요한 만큼만 쓸 수 있는 것이다.
한가지 구체적인 서비스의 예시를 들면, 머신러닝을 통한 예측 서비스를 들 수 있다. 이러한 서비스를 직접 구현하기 위해서는 머신러닝 엔지니어와 데이터 사이언티스트, 데이터 엔지니어 등의 인력과 GPU와 같은 고성능의 컴퓨팅 자원이 필요한데, 모든 IT 서비스 업체들이 이러한 전문가를 모두 채용하고 비싼 인프라를 운용하기는 현실적으로 힘들다. 이때 클라우드의 AI 예측 서비스를 활용하면, 머신러닝에 대해 잘 모르는 엔지니어라도 구글 또는 아마존의 머신러닝 전문가들이 만들어놓은 시스템을 통해 유저에게 머신러닝 예측 서비스를 손쉽게 제공할 수 있는 것이다.
예를 들어 유저가 네비 앱의 예측 서비스를 사용하는 경우, 앱의 뒷단에서는
유저 -> (네비 앱 -> 클라우드 예측 서비스 -> 네비 앱) -> 유저
와 같은 형태로 서비스가 될 수 있는 것이다.
하드웨어, 네트워크 인프라에 대한 고민을 털어내고, 또 내가 전문적이지 않은 부분은 클라우드 서비스에 위임하면서, 엔지니어들은 핵심적인 소프트웨어 개발에만 집중할 수 있는 것이다. 효율성을 크게 올릴 수 있는 부분이다.
2.
위와 같은 이점 덕분에, ‘lean한 방식’의 시작, 작게 서비스를 시작하는 것이 가능하다.
넷플릭스와 같은 대형 서비스 뿐만 아니라, 스타트업과 같은 작은 규모의 IT 서비스 기업에 클라우드가 특히 효율적일 수 있다.
스타트업이 서비스를 시작할 때는, 준비가 모두 완료된 상태에서 서비스 개시! 하고 전면적으로 크게 서비스를 시작하기 보다는, 보통 아주 작은 규모로 테스트를 하면서 시작하게 된다.
클라우드가 없다면 아무리 작은 서비스도 몇 백, 몇 천 이상의 서버부터 구매해야 하고, 소프트웨어에만 집중하기에도 부족한 인적 리소스로 하드웨어, 인프라 개발, 운영까지 해야만 할 것이다. 금전적, 인적 리소스 면에서 높은 장벽이 될 수 있다.
클라우드를 통해 이러한 시도가 쉽게 가능하다. 서버 한대의 리소스가 100%라면 이 중 딱 필요한 만큼, 10%만큼의 서버 리소스만 사용하면서 작게는 몇 만원 정도의 비용으로도 테스트가 가능한 것이다.
따라서 최근의 스타트업 전성시대에는 그 기저에 클라우드의 존재가 큰 역할을 했다고 볼 수 있다.
3.
위 2와 연결되는, 한가지 클라우드 활용의 중요한 이점이 있는데, 리소스 활용의 유연성이다.
블랙프라이데이를 예를 들어보자. 미국의 연말 할인행사인데, 이 시기 며칠 동안의 매출이 연간 매출의 30% 이상을 차지한다고 한다. 이 경우 서버에 들어오는 트래픽은 평소의 5~10배 이상이다.
(트래픽이란 보통 QPS(Query per second)로 쉽게 말하면 사이트에 접속한 사람 수를 생각하면 된다. 이 수가 동시간대 1,000명이었다면, 블랙프라이데이 에는 1만명이 될 수 있는 것이다.)
간혹 ‘인터넷 사이트가 사람이 몰려서 다운되었다’라는 뉴스를 볼 수 있는데, 이렇게 트래픽이 몰릴 때 충분한 리소스가 준비되어 있지 않으면 서버가 너무 많은 트래픽을 처리하지 못해 뻗어버리는 현상이 생길 수 있다. (리소스란 트래픽을 처리할 충분한 컴퓨터, 즉 서버이다. )
‘서버가 뻗는다’는 것은 동시에 너무 많은 처리요청을 컴퓨터에 보냈을 때 컴퓨터 CPU, 메모리의 부족으로 컴퓨터가 아예 멈춰버리는 현상을 말한다. 인기있는 게임에 접속하려고 하면 30분씩 대기 해야하는 경우나, 연말정산 시스템에 들어갈 때 한참 대기해야하는 경우가 있는데, 트래픽이 몰려서 서버가 뻗는 것을 방지하기 위해 동시접속 트래픽을 제한하는 것이다.
평상 시 100대의 서버로 운영되는 쇼핑 사이트라고 해보자. 그런데 블랙프라이데이 며칠간 폭증하는 유저 트래픽을 처리를 위해서는 1000대 정도의 서버가 필요할 것으로 예상된다.
쇼핑 사이트에서는 위의 연말정산 예시처럼 트래픽 제한을 위해 몇십분씩 유저를 기다리게 할 수도 없다. 그럼 바로 다른 사이트로 가버릴 테니까.
그렇다고 1년 중 30% 매출을 차지하는 블랙프라이데이를 100대의 서버로 맞이했다간 틀림없이 서버가 다운되어 유저들이 사이트에 접속할 수 없어 매출을 말아먹을 것이다. (IT팀은 직장을 잃을 위험을 맞을 것이다) 또 그렇다고 그 며칠만을 위해 1000대의 서버를 구축하자니 나머지 360일 동안 수십억짜리 900대의 서버가 유휴장비로 놀게 된다.
어떻게 해야할까?
바로 이 문제를 클라우드가 깔끔하게 풀어줄 수 있다. 앞서 클릭만 하면 서버 등의 서비스를 사용할 수 있다고 했는데, 트래픽이 몰리는 이벤트가 발생되기 전에 서버 리소스를 간단히 몇 배로 늘렸다가, 이벤트가 끝날 때 리소스를 모두 반납할 수 있는 것이다. 서버 사용 비용은 당연히 사용한 기간 동안만 지불하면 된다. 훨씬 효율적이다.
클라우드의 성장
클라우드는 지금 전세계에서 가장 빠르게 성장하는 산업 중 하나이다. 이미 수십조 이상의 산업 규모에서 이렇게 빠르게 성장하는 산업은 드물다.
2021년 가트너에 따르면, 최신 아키텍처에서는 클라우드 네이티브가 대세가 되고 있다. 앞으로도 그 규모가 더 커질 것으로 예상되는 이유다.
지난해 퍼블릭 클라우드 서비스 시장이 2020년 643억달러 규모에서 41.4% 성장한 909억달러 달러 규모에 달했다는 조사 결과가 나왔다.
…
아마존웹서비스(AWS)는 시장 점유율과 매출 성장세에서 1위 사업자로서의 위상을 지켰고 마이크로소프트 애저와 구글 클라우드는 성장률에서 AWS를 앞섰다.가트너의 시드 낵 부사장 겸 애널리스트는 “클라우드 네이티브가 최신 워크로드들에서 주요 아키텍처가 되면서 서비스형 인프라(IaaS) 시장은 계속해서 성장하고 있다”면서 “이같은 성장은 클라우드가 첨단 기술과 애플리케이션들이 요구하는 확장성과 결합성을 지원하고 데이터 통합, 고객 경험 강화, 주권(sovereignty) 같은 새로운 필요를 기업들이 맞출 수 있도록 한다는 것에 부분적으로 기인한다”고 말했다
[1] 서버
서버(server)는 유저에게 네트워크를 통해 서비스하는 컴퓨터. 이름 그대로 번역해서 ‘제공자’라고 하면 와닿을 것이다. 예를 들어 인터넷을 통해 구글에 연결하는 것은, 구글의 서버, 즉 컴퓨터에 연결된 것이다. 일반적으로 서버는 개인용 컴퓨터보다 훨씬 성능이 좋고, 훨씬 비싸다.
[2] 클라우드 프로바이더
구글 클라우드, AWS, Micorosoft Azure, 네이버 클라우드 등이 대표적인 클라우드 서비스 업체다.
[3] 데이터센터
그냥 아무 건물에나 컴퓨터를 쌓아두면 되는 것이 아니다. 건물에 서버를 안전하게 보관하고 운용하기 위해서는 서버에서 나오는 엄청난 열을 냉각시키기 위한 냉각 시스템 (서버들은 생각보다 예민해서 온도가 조금만 높아도 뻗어버리고 오작동하는 경우가 많다), 습도 유지 시스템 (역시 예민하신 서버님들이 습도가 높으면 오작동할 수 있다), 유지보수 시스템 (수만개의 하드웨어를 운용하다보면 하루에도 수십, 수백개의 장비가 고장나고 오작동한다), 충분한 전력 공급 및 안정적인 전압 관리, 안정적이고 빠르고 큰 네트워크, 높은 수준의 보안, 지진, 화재 등의 재난 대응 시스템 (2022년 SK 데이터센터의 아주 작은 화재 하나로 카카오가 전면 장애를 맞았던 걸 생각해보라) 등 높은 수준의 전문적인 기술이 필요하다.
아래 짧은 구글 데이터센터 영상을 보면 데이터센터에 얼마나 높은 수준의 기술 인프라가 필요할지 살짝이나마 감을 잡아볼 수 있다.
더 살펴볼만한 자료
구글 클라우드 — 클라우드 컴퓨팅이란?
“클라우드 컴퓨팅은 컴퓨팅 리소스를 인터넷을 통해 서비스로 사용할 수 있는 주문형 서비스입니다. 기업에서 직접 리소스를 조달하거나 구성, 관리할 필요가 없으며 사용한 만큼만 비용을 지불하면 됩니다.”
티타임즈
마지막으로, IT, 기술 관련 정보를 기초, 입문 위주로 정리해주는 유튜브 채널 티타임스 링크를 첨부한다. 이 채널은 기자분들이 기술 오타쿠처럼 niche 영역만 파고들고 교수님들 모셔와서 진지한 얘기만 하는데 채널이 흥할 수 있을까.. 걱정(그렇지만 어느새 은근히 20만)이 될만큼 여러가지 기술적인 내용의 입문 레벨 정보를 전달해주는 고마운 채널이다.