클라우드 컴퓨팅 (Cloud Computing)

"Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user."

— NIST (미국 국립표준기술연구소)의 공식 클라우드 컴퓨팅 정의 가이드 중.

"클라우드 컴퓨터라는 것은 실존하지 않는다. 그것은 단지 인터넷 너머 다른 누군가(AWS나 마이크로소프트)가 가진 거대한 실제 컴퓨터 컴퓨터를 요금제에 맞춰 잠시 세 들어 쓰는 유쾌한 환상에 불과하다." 서버실에 하드웨어가 없으니 에러가 나도 본체 발로 차며 디버깅할 수 없어, 하루 종일 AWS 콘솔 모니터링 화면만 새로고침하는 기묘한 원격 장님 개발자가 되었다.(...)

1. 개요

클라우드 컴퓨팅은 인터넷을 통해 데이터 스토리지, 서버, 데이터베이스, 네트워크, 소프트웨어 등 컴퓨팅 자원을 온디맨드(On-Demand)로 필요할 때마다 즉시 대여하여 사용하고, 사용한 만큼만 비용을 지불하는 기술적 환경이자 서비스 모델이다.

과거에는 서비스를 하려면 회사 건물 지하 구석에 에어컨이 빵빵하게 돌아가는 서버실을 직접 지어야 하고(On-Premises), 고가의 하드웨어 장비를 구매하는 데 수개월의 시간과 예산을 바쳐야 했다. 클라우드는 이 무겁고 거추장스러운 하드웨어 소유 패러다임을 "인터넷 너머 서비스로 구독해서 쓰는 가상 머신" 체계로 완전히 세탁해 버렸으며, 현대의 고성능 가상화 기술을 기반으로 현대 모든 IT 인프라의 핵심 근간으로 부상했다.(...)

2. On-Premises vs Cloud, 그리고 가상화 기술

2.1. 소유의 고통 vs 대여의 달콤함

  • 온프레미스 (On-Premises): 서버 하드웨어를 직접 사서 데이터 센터 랙에 장착하고, 먼지 청소와 정전 사태를 백엔드 개발자 및 인프라 사원들이 물리적으로 수호해야 한다. 초기 인프라 구축 비용이 무지막지하며, 갑자기 사용자가 몰렸을 때 서버 사양을 높이려면 수주일의 결재 라인을 거쳐 하드웨어를 추가 배달받아야 한다.(...)
  • 클라우드 (Cloud): 클릭 한 번으로 CPU와 RAM을 즉각 교체하며, 전 세계 사용자가 몰려들 때 오토스케일링(Auto Scaling) 엔진을 통해 서버 인스턴스를 무한대로 자동 복제해 버린다. 먼지 청소와 정전 방지는 아마존 서버실의 정예 전담 인력들이 대신 해결해 준다.1

2.2. 가상화 (Virtualization): 클라우드의 심장

물리 하드웨어 한 대 위에 어떻게 수십, 수백 개의 독립된 가상 컴퓨터들을 얹을 수 있는가? 이 마법의 정체는 바로 하이퍼바이저(Hypervisor) 가상화 기술이다. 물리 CPU와 RAM 자원을 슬라이스 치듯 잘게 쪼개어 가상 머신(VM)에 나눠주고 격리함으로써, 사용자들은 각각 자신만의 단독 컴퓨터 서버를 배정받은 듯한 기막힌 환상을 누릴 수 있게 된다.2

3. 클라우드 삼형제 스펙트럼: IaaS, PaaS, SaaS

클라우드 서비스는 고객이 제어할 수 있는 자유도의 한계 및 범위에 따라 크게 세 단계의 레이어로 나뉘어 제공된다.

3.1. IaaS (Infrastructure as a Service - 인프라 서비스)

물리적 하드웨어와 가상 네트워크만 제공받고, OS 설치부터 프레임워크 런타임, 웹 서버 세팅은 사용자가 완전히 처음부터 직접 정밀 고생하며 빌드해야 한다. 가장 높은 커스텀 자유도를 갖는다.

  • 대표 예시: AWS EC2, Google Cloud Compute Engine.

3.2. PaaS (Platform as a Service - 플랫폼 서비스)

네트워크나 가상 운영체제(OS), 심지어 Node.js파이썬 같은 언어 컴파일러 런타임 환경까지도 이미 세팅된 상태로 제공된다. 개발자는 오직 자신이 작성한 '비즈니스 소스 코드'만 깃허브를 통해 슝 던져 배포하면 끝이다.

  • 대표 예시: Heroku, Vercel, AWS Elastic Beanstalk. 과금 요금제는 IaaS보다 훨씬 무자비하다.

3.3. SaaS (Software as a Service - 소프트웨어 서비스)

인프라고 코드고 뭐고 다 필요 없고, 그냥 인터넷 브라우저로 접속해 완성된 완제품 소프트웨어 기능을 매달 구독 형태로 사용하기만 하면 되는 최종 단계다.

  • 대표 예시: Google Drive, Notion, Slack, Microsoft 365.3

4. 클라우드 자조 밈

4.1. 클라우드는 그냥 남의 컴퓨터다

클라우드가 선사하는 화려한 단어들이 주는 지적인 환상을 완전히 부숴 버리는 문장이다. "서버실 없는 시대", "가상 컴퓨터" 등 화려하게 겉포장을 하지만, 본질은 그저 '돈을 내면 인터넷 저편에 있는 AWS의 고성능 실제 가상 서버를 가상 원격으로 대여해 주는 남의 컴퓨터 대여업'에 불과함을 풍자한다. 그래서 아마존 본사 서버실 어딘가에 물리 서버가 화재로 터지거나, 불장난으로 정전이 나면 당신의 가상 클라우드 서비스 역시 얄짤없이 동시에 폭사해 버린다.(...)

5. 여담

  • 서버리스(Serverless)의 환각: 서버리스라고 하니 진짜 인프라에 서버가 한 대도 없는 SF적인 세계관을 생각하는 주니어가 가끔 있다. 하지만 실제로는 서버가 없는 것이 아니라, 서버 관리를 네가 안 하고 클라우드 공급업체가 대신해 줄 뿐이다. 백그라운드에서는 여전히 거대한 리눅스 컨테이너가 쉴 새 없이 돌며 전기 요금을 안전하게 사냥하고 있다.
  • 클라우드 회귀(Cloud Repatriation): 2010년대 후반에는 무조건 모든 것을 클라우드로 넘겨야 혁신 리더 취급을 받았으나, 최근에는 클라우드의 미친 누적 과금에 지쳐 다시 직접 IDC에 서버를 사서 꽂는 '클라우드 탈출(Cloud Repatriation)' 및 하이브리드 인프라 공법이 실리콘밸리에서 유행하기 시작했다.
  • 멀티 클라우드(Multi-Cloud) 안전빵 전략: AWS 한 곳에만 올인했다가 AWS 서울 리전 사태처럼 인프라 전체가 묶여 뻗는 대형 사고를 방어하기 위해, 요즘 대형 금융사나 테크 기업들은 시스템을 AWS, Azure, GCP에 동시에 분산 배치해 상호 백업시키는 최고급 테크닉을 동원하곤 한다.

6. 관련 문서

각주

  1. 실제로 온프레미스 서버실에서 에어컨 누수나 전압기 과열 등으로 밤샘 긴급 복구를 시전해 본 틀딱 개발자 선배들은 클라우드를 '돈으로 산 천국'이라 찬양한다.

  2. 최근에는 이 무거운 가상 머신(VM)보다 훨씬 가볍고 운영체제 격리 수준이 경량화된 컨테이너 기반 가상화(도커)가 하이퍼바이저 시장을 상당 부분 잠식해 들어가고 있다.

  3. SaaS 서비스들은 한 번 구독하기 시작하면 업무 프로세스에 박혀서 절대 헤어 나올 수 없는 노예 계약 성격을 띠기 때문에, IT 기업들의 가장 매력적인 캐시카우 비즈니스로 추앙받는다.