Cloud Modernization 09

IaaS, PaaS, SaaS: 누가 무엇을 책임지는가?

IaaS, PaaS, SaaS를 제품 이름처럼 외우면 사용자가 무엇을 관리하고 무엇을 맡기는지가 남지 않는다.

근거 · 교안 p30-p32

IaaS, PaaS, SaaS를 책임 분담 모델로 이해하기 ?? ???

1장: 이름표 너머: 클라우드 책임의 첫 만남

솔라는 스터디 카페의 넓은 책상에 앉아 노트북 화면을 띄워놓고 있었다. 화면 한구석에는 ‘클라우드 서비스 모델: IaaS, PaaS, SaaS’라는 제목의 다이어그램이 떠 있었다. 알록달록한 블록들이 계층을 이루고 있었지만, 솔라의 눈에는 그저 의미 없는 이름표의 나열처럼 보였다.

“아이아스, 파스, 사스…”

솔라는 작게 읊조리며 미간을 찌푸렸다. 분명 클라우드 서비스가 단순한 파일 저장소를 넘어 다양한 형태로 제공된다는 건 알겠다. 하지만 이 약어들은 왜 이렇게 낯설고 딱딱하게 느껴지는 걸까. 마치 시험에 나올 단어를 억지로 외우는 기분이었다. 각각의 정의를 읽어봐도, 그래서 사용자인 내가 뭘 할 수 있고 뭘 기대해야 하는지에 대한 감각은 전혀 생기지 않았다. 그저 ‘세 가지 종류가 있다’는 사실만 머릿속을 맴돌았다.

그때 맞은편에 앉아 있던 언니 루나가 조용히 솔라의 노트북 화면으로 시선을 옮겼다. 루나는 솔라의 혼란스러운 표정을 잠시 살피더니, 자신의 텀블러를 옆으로 살짝 밀어 공간을 만들었다.

“클라우드 서비스 모델 보고 있구나.”

“응. 근데 언니, 이거 그냥 이름표 같아. IaaS, PaaS, SaaS. 외우긴 외웠는데, 그래서 뭐가 어떻게 다르다는 건지 와닿지가 않아. 그냥 기술 이름이 다른 건가?”

솔라의 목소리에는 막연한 답답함이 묻어났다. 루나는 대답 대신, 솔라의 빈 노트 한 페이지를 빌려달라는 손짓을 했다. 그리고는 펜을 들어 세로로 긴 직사각형을 여러 칸으로 나누어 그리기 시작했다.

“이름표라고 생각하면 헷갈리기 쉬워. 질문을 바꿔보는 건 어떨까? ‘누가 무엇을 책임지는가?’ 하는 질문으로.”

루나는 가장 아래 칸부터 차례대로 ‘네트워킹’, ‘스토리지’, ‘서버’, ‘가상화’, 그리고 그 위로 ‘운영체제(OS)’, ‘미들웨어’, ‘런타임’, ‘데이터’, ‘애플리케이션’이라고 적어 넣었다. 하나의 온전한 컴퓨터 시스템을 이루는 부품들이 아래에서부터 위로 차곡차곡 쌓인 탑처럼 보였다.

“만약 우리가 이 모든 걸 우리 집 지하실에 직접 구축한다고 생각해 봐. 이걸 ‘온프레미스(On-Premises)’라고 불러. 이 경우엔 누가 이 모든 걸 관리하고 책임져야 할까?”

“당연히 우리지. 서버 컴퓨터 사 오고, 인터넷선 연결하고, 윈도우나 리눅스 같은 운영체제도 직접 설치해야 하고… 생각만 해도 머리 아프네.”

솔라는 고개를 저으며 말했다. 루나는 솔라의 말에 고개를 끄덕이며 ‘온프레미스’라고 이름 붙인 첫 번째 탑 옆에 ‘You Manage(사용자 관리)’라는 글자와 함께 아래에서 위로 향하는 커다란 화살표를 그렸다. 모든 계층이 사용자 책임 범위에 들어왔다.

“맞아. 그럼 이제 클라우드를 써보자. 첫 번째 모델은 IaaS, Infrastructure as a Service야. ‘인프라를 서비스로 제공한다’는 뜻이지.”

루나는 온프레미스 탑 옆에 똑같은 모양의 탑을 하나 더 그리고 ‘IaaS’라고 이름 붙였다.

“자, 여기서 클라우드 제공자가 ‘인프라’를 책임진다면, 그 선은 어디에 그어져야 할까? 그리고 그 선을 기준으로 ‘제공자 책임’과 ‘사용자 책임’은 어떻게 나뉠까? 솔라 네가 직접 선을 그어봐.”

솔라는 펜을 들고 잠시 망설였다. ‘인프라’라는 단어에 집중했다. “음, 인프라니까… 물리적인 기반 시설 같은 거겠지? 서버 컴퓨터나 데이터를 저장하는 스토리지, 네트워크 장비 같은 것들.” 솔라는 ‘서버’와 ‘스토리지’, ‘네트워킹’ 칸을 손가락으로 짚었다. “가상화 기술도… 요즘은 기본 인프라에 포함되지 않나?” 솔라는 잠시 루나를 쳐다봤고, 루나는 그저 조용히 기다릴 뿐이었다.

솔라는 결심한 듯 ‘가상화’ 칸 바로 위에 수평선을 쭉 그었다.

선을 긋고 나니 모든 게 명확해졌다. 선 아래의 네트워킹, 스토리지, 서버, 가상화는 ‘제공자 관리’ 영역이 되었다. 그리고 선 위의 운영체제, 미들웨어, 런타임, 데이터, 애플리케이션은 여전히 ‘사용자 관리’ 영역으로 남았다.

“아…!”

솔라의 입에서 작은 탄성이 터져 나왔다.

“그러니까 IaaS는 이 선 아래는 클라우드 회사가 알아서 다 해주고, 나는 그 위에 텅 빈 가상 컴퓨터만 받은 다음부터 책임을 진다는 거구나. 운영체제를 뭘로 설치할지, 어떤 프로그램을 돌릴지 전부 내가 결정하고 관리해야 하는 거고.”

솔라는 자신이 그은 선을 가만히 내려다보았다. 단순한 이름표에 불과했던 ‘IaaS’가 갑자기 구체적인 책임의 경계선으로 보이기 시작했다.

“그럼 PaaS나 SaaS도 결국 이 ‘책임 경계선’이 어디에 그어지느냐의 차이겠네! 그냥 서비스 종류가 다른 게 아니라, 내가 어디까지 신경을 꺼도 되는지, 어디부터 내 책임인지를 정하는 모델이었던 거야.”

이름을 외우는 것과 책임의 선을 긋는 것은 전혀 다른 차원의 이해였다. 솔라는 이제 막 클라우드 서비스의 본질을 꿰뚫는 작은 렌즈 하나를 손에 넣은 기분이었다. 하지만 동시에 새로운 궁금증이 고개를 들었다.

“좋아, IaaS의 책임선이 어디인지는 알겠어. 그런데 운영체제부터 내가 관리해야 한다는 건 구체적으로 어떤 느낌일까? 그리고 PaaS는 이 책임선을 얼마나 더 위로 올려서 내 부담을 줄여주는 걸까?”

솔라의 시선은 IaaS 탑 옆의 빈 공간으로 향했다. 그곳에는 곧 그려질 PaaS와 SaaS의 책임선이 기다리고 있었다.

2장: IaaS: 내가 직접 쌓아 올리는 클라우드 인프라

솔라는 자신이 직접 그은 책임 경계선을 가만히 내려다보았다. 분명 온프레미스와 IaaS를 구분 짓는 선이었지만, 보면 볼수록 그 선의 의미가 희미해졌다. ‘가상화’ 칸 바로 위에 그어진 검은 펜 선. 그 선 위쪽, ‘사용자 관리’ 영역에 남겨진 ‘운영체제’, ‘미들웨어’, ‘런타임’ 같은 단어들이 낯설게 둥둥 떠다니는 것 같았다.

‘운영체제부터 내가 관리한다는 건… 구체적으로 어떤 느낌일까?’

마치 남의 집 부엌을 빌렸는데, 가스레인지 불을 켜는 것부터 내가 알아서 해야 하는 건지, 아니면 그냥 냄비만 들고 와서 요리를 시작하면 되는 건지 감이 잡히지 않는 기분이었다.

솔라는 주황색과 파란색 형광펜을 집어 들었다. 루나는 아무 말 없이 솔라의 행동을 지켜보고 있었다. 솔라는 먼저 IaaS 탑의 책임선 아래쪽, ‘네트워킹’부터 ‘가상화’까지의 네 칸을 파란색으로 꼼꼼하게 칠했다. 클라우드 제공자가 책임지는 영역이었다.

“좋아, 여기까지는 클라우드 회사가 알아서 해주는 부분. 물리적인 서버가 고장 나거나, 네트워크가 끊기거나, 가상 머신이 제대로 생성되지 않는 문제는 내 책임이 아니야.”

이제 남은 것은 선 위쪽의 다섯 칸이었다. 솔라는 주황색 펜을 들고 ‘애플리케이션’ 칸부터 칠하기 시작했다.

“그리고 이건 당연히 내가 만들고 책임져야 하는 내 프로그램.”

솔라는 이어서 ‘데이터’ 칸도 주황색으로 칠했다. 하지만 ‘런타임’, ‘미들웨어’, ‘운영체제’ 칸 앞에서 펜을 든 채 잠시 멈칫했다.

“그러니까… 제공자가 주는 건 딱 여기까지, 파란색 영역까지고… 이 주황색 영역은 전부 내 책임이라는 뜻이지? 그냥 ‘남의 컴퓨터’ 한 대 빌려서 쓰는 거랑 비슷한 느낌인가?”

솔라가 중얼거렸다. ‘남의 컴퓨터를 쓰는 것’이라는 표현. 그것이 솔라가 이해한 IaaS의 전부였다. 그때, 루나가 조용히 질문을 던졌다.

“그 ‘남의 컴퓨터’를 처음 켰다고 생각해 봐. 텅 빈 검은 화면만 보인다면, 가장 먼저 뭘 해야 할까?”

“텅 빈 화면?”

솔라는 잠시 당황했다. 보통 컴퓨터를 켜면 바로 윈도우나 맥OS 로고가 뜨는 모습만 상상했기 때문이다. “음… 전원 버튼을 다시 눌러보나? 아니면 A/S 센터에 전화해야지.”

루나는 대답 대신, 솔라가 멈춰 있는 주황색 펜 끝을 가리켰다. 펜촉은 ‘운영체제(OS)’ 칸 바로 위에 머물러 있었다.

그 순간, 솔라의 머릿속에 퍼즐 조각이 맞춰지는 느낌이 들었다.

“아…! 운영체제가 안 깔려 있구나!”

솔라의 입에서 탄성이 터져 나왔다. IaaS는 그냥 완성된 컴퓨터를 빌려주는 게 아니었다. 하드웨어와 가상화 기술만 준비된, 말 그대로 텅 빈 ‘가상 하드웨어’를 제공하는 것이었다. 운영체제를 설치하는 것부터가 온전히 사용자의 몫이자 책임의 시작이었다.

“그러니까 내가 직접 우분투 리눅스를 설치할지, 윈도우 서버를 설치할지 결정하고 설치해야 하는 거구나. 그럼 당연히 그 운영체제의 보안 업데이트나 패치도 내가 직접 챙겨야 하고…”

솔라는 ‘운영체제’ 칸을 주황색으로 칠했다. 이어서 ‘미들웨어’와 ‘런타임’ 칸도 망설임 없이 칠해나갔다. 이제 이 단어들은 더 이상 낯설지 않았다. 머릿속에 구체적인 작업들이 그려지기 시작했다.

“운영체제를 깔았으면, 내가 만든 웹 애플리케이션을 실행하기 위한 환경도 만들어야 해. 파이썬으로 만들었으면 파이썬 ‘런타임’을 설치하고, 웹 서버 같은 ‘미들웨어’도 직접 설치하고 설정해야 하는구나. 이게 전부 다 주황색, 내 책임 영역이었어.”

마침내 모든 칸이 채워졌다. 파란색으로 칠해진 탑의 아랫부분과, 그보다 더 넓은 면적을 차지한 주황색 윗부분이 선명하게 대비되었다. 솔라는 자신이 완성한 ‘IaaS 책임 분담 그림’을 보며 고개를 끄덕였다. IaaS는 단순히 인프라를 빌려 쓰는 것이 아니었다. 인프라만 서비스로 제공받고, 그 위에서 OS부터 애플리케이션까지 직접 한 층 한 층 쌓아 올리는 모델이었던 것이다. 관리의 자유도가 높은 만큼, 책임져야 할 것도 그만큼 많았다.

“이제야 확실히 알겠어. IaaS는 클라우드 제공자가 땅과 기반 공사(인프라)까지만 해준 집터 같은 거네. 그 위에 어떤 디자인의 집(운영체제)을 짓고, 어떤 가구(런타임, 미들웨어)를 들여놓고, 어떻게 살지(애플리케이션, 데이터)는 전부 내가 결정하고 책임지는 거고.”

솔라는 자신의 비유가 마음에 드는 듯했다. 하지만 이내 주황색으로 칠해진 넓은 영역을 보며 새로운 질문이 떠올랐다.

“그런데 언니, 집 짓고 가구 고르는 것도 꽤 일이 많잖아. 개발자는 애플리케이션 만드는 데만 집중하고 싶은데. 이 주황색 책임 영역을 좀 더 줄일 수는 없을까? PaaS는 이 책임선을 어디까지 더 올려주는 거야?“

3장: PaaS: 개발에만 집중하는 클라우드 플랫폼

솔라는 자신이 완성한 ‘IaaS 책임 분담 그림’ 옆에, 똑같은 모양이지만 아직 색이 칠해지지 않은 빈 탑을 하나 더 그려 넣었다. 탑 꼭대기에는 ‘PaaS’라고 적었다. 주황색과 파란색 형광펜이 뚜껑이 열린 채 나란히 놓여 있었다. IaaS 그림에서 ‘사용자 책임’을 의미하는 주황색 영역은 탑의 절반 이상을 차지하며 꽤 넓어 보였다.

‘집 짓고 가구 고르는 것도 꽤 일이 많잖아. 개발자는 애플리케이션 만드는 데만 집중하고 싶은데.’

스스로 던졌던 질문이 귓가에 맴돌았다. PaaS, Platform as a Service. ‘플랫폼을 서비스로 제공한다’는 이름의 뜻은 알겠다. 하지만 그게 IaaS와 비교해서 정확히 무엇을, 얼마나 더 책임져준다는 건지 감이 오지 않았다. ‘개발 도구를 좀 더 편하게 쓸 수 있게 해주는 건가?’ 솔라는 PaaS가 그저 개발에 필요한 몇 가지 프로그램을 미리 설치해주는 정도일 거라고 막연히 짐작했다. 그렇다면 책임의 경계선이 크게 달라지지는 않을 터였다.

“언니, PaaS라는 게 결국 개발에 필요한 도구를 미리 설치해주는 거 아닐까? 예를 들면 코딩 에디터나 컴파일러 같은 거. 그러면 편하긴 하겠지만, 운영체제나 런타임 관리 같은 귀찮은 일이 완전히 사라지는 건 아닐 것 같은데.”

솔라는 펜을 들고 PaaS 탑의 ‘런타임’ 칸 바로 아래에 선을 그으려다 멈칫했다. 자신의 생각이 맞는지 확신이 서지 않았다.

루나는 IaaS 그림을 잠시 들여다보더니, 솔라의 비유를 이어받아 질문을 던졌다.

“솔라, 네가 IaaS를 ‘기반 공사가 끝난 집터’라고 했지? 그럼 PaaS는 ‘모델하우스’를 생각해보면 어떨까?”

“모델하우스?”

“응. 모델하우스는 이미 인테리어까지 완벽하게 끝나 있잖아. 전기, 수도, 가스 다 연결되어 있고, 심지어 멋진 가구랑 소품까지 배치되어 있지. 우리는 그냥 몸만 들어가서 ‘아, 이런 식으로 살면 되겠구나’ 하고 구상만 하면 돼. 직접 벽지를 바르거나 전등을 갈아 끼울 필요 없이.”

루나의 말에 솔라는 고개를 갸웃거렸다. 집터에서 모델하우스로. 분명 엄청난 차이였다. 솔라의 시선이 다시 노트 위의 두 탑으로 향했다.

루나는 IaaS 그림의 주황색 영역, 즉 ‘운영체제’, ‘미들웨어’, ‘런타임’ 칸을 차례로 가리켰다.

“개발자에게 필요한 ‘플랫폼’이라는 게 바로 이 부분들이야. 운영체제 위에서, 웹 서버 같은 미들웨어가 돌아가고, 파이썬이나 자바 같은 런타임 환경이 있어야 비로소 애플리케이션 코드를 실행할 수 있으니까. IaaS에서는 이 모든 플랫폼을 네가 직접 만들고 책임져야 했지.”

“맞아. 집터에 내가 직접 집(OS)을 짓고, 배관(미들웨어)을 연결하고, 가구(런타임)를 들여놓는 것처럼.”

“바로 그거야. PaaS는 클라우드 제공자가 바로 그 ‘플랫폼’ 자체를 만들어서 관리하고 책임지겠다는 뜻이야. 모델하우스처럼 말이지.”

그 순간, 솔라의 머릿속이 환해졌다. PaaS는 단순히 ‘도구 몇 개’를 더 주는 수준이 아니었다. 개발자가 신경 써야 할 ‘환경’ 전체를 통째로 제공하고 관리해주는 모델이었던 것이다.

솔라의 손이 빠르게 움직였다. PaaS 탑을 집어 든 솔라는 망설임 없이 파란색 형광펜을 열었다. 네트워킹, 스토리지, 서버, 가상화. IaaS와 마찬가지로 여기까지는 당연히 제공자의 책임 영역이었다. 하지만 솔라의 파란색 펜은 멈추지 않았다.

‘운영체제’, ‘미들웨어’, ‘런타임’.

IaaS에서는 온통 주황색이었던 그 칸들이 이제는 시원하게 파란색으로 채워졌다. 파란색 영역이 탑의 대부분을 차지하자, 사용자 책임 영역인 주황색은 자연스럽게 위로 밀려나 꼭대기의 두 칸, ‘애플리케이션’과 ‘데이터’에만 남게 되었다.

IaaS 그림과 나란히 놓인 PaaS 그림은 극적인 대비를 보여주었다. 사용자의 책임 영역이 눈에 띄게 줄어든 것이 한눈에 보였다.

“와… 진짜네. 운영체제 보안 패치, 미들웨어 업데이트, 런타임 버전 관리… 내가 신경 쓸 필요가 전혀 없는 거였어. 나는 그냥 내 애플리케이션 코드랑 거기서 사용할 데이터만 들고 모델하우스에 입주하면 되는 거네. ‘플랫폼을 서비스로’ 제공한다는 게 이런 뜻이었구나.”

솔라는 자신이 완성한 ‘PaaS 책임 분담 그림’을 보며 중얼거렸다. 이제야 PaaS는 플랫폼 관리 부담을 줄여 애플리케이션 개발에 집중하게 한다는 문장의 의미를 온전히 체감할 수 있었다. 개발자는 정말 개발에만 집중할 수 있었다.

성가신 관리 부담이 사라진 홀가분함. 솔라는 뿌듯한 미소를 지으며 완성된 그림을 내려다보았다. 그런데 꼭대기에 외롭게 남은 두 개의 주황색 칸을 보자 새로운 의문이 고개를 들었다.

“내 책임은 이제 정말 딱 두 칸만 남았네. 애플리케이션이랑 데이터. 여기서 더 줄어들 게 있을까? SaaS는 대체 뭘 더 해주는 거지?“

4장: SaaS: 소프트웨어만 쓰는 클라우드 최전선

솔라는 방금 완성한 PaaS 책임 분담 그림을 가만히 들여다보았다. IaaS 그림과 나란히 놓인 두 개의 탑은 책임의 경계가 어떻게 이동하는지를 명확하게 보여주었다. 하지만 솔라의 시선은 PaaS 탑 꼭대기에 외롭게 남은 두 개의 주황색 칸, ‘애플리케이션’과 ‘데이터’에 머물러 있었다. 사용자의 책임 영역이었다.

솔라는 비어있는 노트 공간에 세 번째 탑을 그렸다. 그리고 그 위에 ‘SaaS’라고 썼다. Software as a Service. 이름의 뜻은 ‘소프트웨어를 서비스로 제공한다’는 것. 솔라는 펜을 든 채 망설였다. 소프트웨어까지 서비스로 제공된다면, 개발자인 내가 책임져야 할 ‘애플리케이션’ 칸마저 사라진다는 뜻인가? 그럼 내 역할은 뭐가 되는 거지? 그냥 소프트웨어를 쓰는 ‘사용자’일 뿐인가? 그건 개발 모델과는 전혀 다른 이야기처럼 느껴졌다. 마치 요리법을 배우다가 갑자기 완성된 요리를 사 먹는 법에 대한 이야기로 넘어간 듯한 이질감이었다.

“언니, SaaS는… 그럼 내가 만든 애플리케이션을 올리는 게 아니라는 거네? 그럼 이 그림에서 내 책임 영역은 아예 없는 거야? 애플리케이션 개발자 입장에서 이건 좀 이상하게 들려.”

솔라는 자신이 그린 세 번째 빈 탑을 톡톡 건드리며 말했다. IaaS와 PaaS가 책임의 정도를 조절하는 문제였다면, SaaS는 아예 판을 바꾸는 규칙처럼 보였다.

루나는 솔라의 질문에 바로 답하는 대신, 시선을 솔라의 노트북 화면으로 옮겼다. 솔라가 방금 전까지 필기 내용을 정리하던 클라우드 기반의 문서 편집기가 화면에 열려 있었다.

“솔라, 우리가 방금까지 썼던 그 문서 편집기를 한번 생각해볼까?”

“이거? 이건 그냥 인터넷 서비스잖아.”

“맞아. 그럼 우리가 배운 ‘누가 무엇을 책임지는가’라는 규칙을 이 서비스에 한번 적용해보자.”

루나의 말에 솔라는 잠시 고개를 갸웃했지만, 이내 흥미로운 표정으로 노트북 화면과 노트를 번갈아 보기 시작했다.

루나는 빈 SaaS 탑의 맨 아래 칸부터 차례로 짚으며 물었다. “이 문서 편집기를 쓰기 위해서, 네가 직접 서버 컴퓨터를 사고 네트워크를 연결했어?”

“아니.”

“그럼 이 서비스가 돌아가는 운영체제를 설치하거나 보안 업데이트를 한 적은?”

“전혀.”

“혹시 이 문서 편집기의 소스 코드를 네가 직접 짰거나, 버그를 수정하거나, 새로운 기능을 추가한 적은 있어?”

루나의 마지막 질문. 그 순간 솔라의 손이 멈칫했다. ‘애플리케이션’ 칸이었다. 당연히 아니었다. 솔라는 그저 구글이나 마이크로소프트 같은 회사가 만들어 놓은 완성된 소프트웨어를 인터넷 브라우저를 통해 사용하고 있을 뿐이었다.

“아…!”

솔라의 입에서 작은 탄성이 터져 나왔다. 머릿속을 맴돌던 이질감의 정체가 선명해졌다. SaaS는 개발 모델이 아니라 사용자 모델이라고 생각했던 것이 착각이었다. 이것 역시 책임 분담 모델의 연장선상에 있었던 것이다.

솔라는 파란색 형광펜을 집어 들었다. 그리고 망설임 없이 SaaS 탑의 맨 아래, ‘네트워킹’ 칸부터 칠하기 시작했다. 파란색은 멈추지 않고 위로 올라갔다. 서버, 가상화, 운영체제, 미들웨어, 런타임을 지나 마침내 ‘애플리케이션’ 칸까지 모두 파랗게 물들였다.

탑 전체가 파란색으로 변했다. 사용자의 책임 영역을 나타내는 주황색은 어디에도 없었다. 솔라는 잠시 생각에 잠기더니, 맨 위 ‘데이터’ 칸 옆에 작은 글씨로 썼다. ‘사용자 데이터 입력 및 관리’. 소프트웨어 자체는 제공자가 책임지지만, 그 안에서 내가 만들고 저장하는 내용(문서, 이메일, 일정 등)은 여전히 나의 영역이라는 의미였다. 하지만 그 외의 모든 기술적인 책임은 완벽하게 클라우드 제공자에게 넘어가 있었다.

솔라는 나란히 놓인 세 개의 그림을 바라보았다. IaaS, PaaS, SaaS. 주황색 사용자 책임 영역이 점점 줄어들고, 파란색 제공자 책임 영역이 점점 넓어지는 모습이 파노라마처럼 펼쳐졌다.

  • IaaS: 인프라만 제공받고, 그 위에 OS부터 직접 집을 짓는 모델.
  • PaaS: 플랫폼까지 제공받아, 개발에만 집중하는 모델.
  • SaaS: 완성된 소프트웨어까지 제공받아, 그냥 사용하기만 하면 되는 모델.

“이제 알겠어. SaaS는 그냥 인터넷 서비스가 아니라, 책임 분담 모델의 가장 끝에 있는 형태였구나. 제공자가 거의 모든 걸 책임지는. 내가 개발자인지 사용자인지 정체성이 바뀌는 게 아니라, 내 목표에 따라 가장 적절한 책임 모델을 선택하는 거였어.”

SaaS는 완성된 소프트웨어를 사용한다는 문장은 더 이상 단순한 설명이 아니었다. 사용자의 관리 책임을 최소화하는, 책임 분담의 최종 단계를 정의하는 핵심 원리였다.

솔라는 세 개의 완성된 그림을 보며 뿌듯함을 느꼈다. 하지만 이내 새로운 의문이 고개를 들었다. 온프레미스에서 시작해 IaaS, PaaS, SaaS로 이어지는 이 흐름. 마치 거대한 강물처럼 책임의 경계선이 한 방향으로 꾸준히 이동해왔다.

“그런데 언니, 왜 이렇게 된 걸까? 왜 사용자의 책임은 계속 줄어들고, 제공자의 책임은 계속 늘어나는 방향으로 발전한 거지? 이 변화를 이끈 힘은 대체 뭐였을까?“

5장: 책임의 진화: 클라우드가 가져온 관리의 변화

솔라의 노트 위에는 이제 네 개의 탑 그림이 나란히 놓여 있었다. ‘온프레미스’, ‘IaaS’, ‘PaaS’, ‘SaaS’. 오른쪽으로 갈수록 사용자 책임 영역을 나타내는 주황색은 줄어들고, 제공자 책임 영역인 파란색은 탑 전체를 집어삼킬 듯이 넓어졌다. 책임의 경계선이 마치 거대한 파도처럼 한 방향으로 밀려온 흔적이 선명했다.

솔라는 그 흐름을 가만히 들여다보다가, 문득 떠오른 질문을 확인하려 노트북으로 ‘컴퓨팅 기술의 역사’ 같은 키워드를 검색했다. 화면에는 ‘2006년: 가상화 기술 기반 Amazon EC2 출시’, ‘2013년: 컨테이너 기술 Docker 등장’, ‘2014년: 서버리스 컴퓨팅 AWS Lambda 출시’ 같은 연표가 길게 늘어섰다. 하지만 이 기술의 나열은 솔라의 궁금증을 풀어주기는커녕 더 큰 벽처럼 느껴졌다. 가상화, 컨테이너, 서버리스… 각각의 기술 이름은 들어봤지만, 이 기술들이 어째서 책임의 경계선을 위로 밀어 올리는 힘이 되었는지 전혀 연결되지 않았다.

“언니, 왜 이렇게 된 걸까?”

솔라는 화면 속 연표와 노트 위의 그림들을 번갈아 보며 말했다.

“사용자의 책임이 계속 줄어드는 방향으로 발전한 건 알겠어. 그리고 그 시기마다 새로운 기술들이 나온 것도. 그런데… 이 기술들이랑 책임이 줄어드는 거랑 무슨 상관인지 모르겠어. 그냥 기술이 발전하니까 서비스 종류도 많아진 거 아닐까?”

솔라에게 컴퓨팅 기술의 진화는 그저 또 다른 이름표들의 나열일 뿐, 책임 분담 모델의 변화를 이끈 동력으로는 보이지 않았다.

루나는 솔라의 질문에 대답하는 대신, 솔라가 펼쳐놓은 네 개의 탑 그림을 손가락으로 가리켰다. 그리고는 노트북 화면에 떠 있는 기술 연표를 턱짓으로 가리켰다.

“솔라, 네가 직접 그 기술들이 어디에 속하는지 화살표로 연결해 볼래? 예를 들어, 클라우드 시대의 문을 연 ‘가상화’ 기술은 저 네 개의 탑 그림 중 어디와 가장 관련이 깊을까?”

솔라는 루나의 말에 잠시 생각에 잠겼다. 그리고는 펜을 들고 ‘온프레미스’와 ‘IaaS’ 탑 사이의 공간을 가리켰다.

“가상화… 물리적인 하드웨어를 논리적으로 나누는 기술이니까, 클라우드 제공자가 서버, 스토리지 같은 인프라를 관리하면서 우리에게 독립된 가상 컴퓨터를 제공할 수 있게 만든 핵심이겠네.”

솔라는 ‘가상화 기술’이라는 글자를 작게 쓰고, 온프레미스에서 IaaS로 넘어가는 지점에 화살표를 그렸다. 화살표는 정확히 IaaS의 책임 경계선, 즉 사용자가 ‘운영체제’부터 관리하기 시작하는 바로 그 지점을 찔렀다. 가상화 기술이 있었기에 제공자가 인프라 계층의 책임을 온전히 떠맡을 수 있게 된 것이다.

“아…! 기술의 등장이 책임 분담 모델을 가능하게 한 거구나.”

솔라는 다음 기술인 ‘컨테이너’로 시선을 옮겼다. 컨테이너 기술은 애플리케이션과 그 실행에 필요한 모든 것(런타임, 라이브러리 등)을 하나로 묶어 어디서든 동일하게 실행되도록 만드는 기술이었다.

“그럼 컨테이너는… PaaS랑 관련이 깊겠네. PaaS는 내가 만든 애플리케이션만 올리면 알아서 실행 환경을 제공해 주잖아. 컨테이너 기술이 있으니까, 제공자가 운영체제랑 미들웨어까지 다 관리하면서도 내 애플리케이션을 안정적으로 격리하고 실행시켜줄 수 있는 거고.”

솔라는 IaaS와 PaaS 그림 사이에 ‘컨테이너 기술’이라 쓰고 화살표를 그었다. 화살표는 PaaS의 책임 경계선, 즉 사용자의 책임이 ‘애플리케이션’과 ‘데이터’로 확 줄어드는 지점을 가리켰다. 주황색 책임 영역이었던 운영체제, 미들웨어, 런타임이 파란색으로 바뀌는 극적인 변화를 바로 이 기술이 뒷받침하고 있었다.

마지막으로 솔라는 ‘서버리스’를 보았다. 서버를 관리할 필요 없이 코드만 실행시키는 기술.

“서버리스는… 거의 SaaS에 가깝네. 나는 그냥 코드 조각(함수)만 작성해서 올리면, 언제 얼마나 실행될지 신경 쓸 필요가 전혀 없으니까. 애플리케이션 실행에 대한 책임마저 제공자에게 상당 부분 넘어간 거잖아.”

솔라는 PaaS와 SaaS 그림 사이에 ‘서버리스’라고 적고 화살표를 그었다. 기술의 발전이 어떻게 사용자의 관리 부담을 덜어내고 책임의 경계선을 위로 밀어 올렸는지, 그 역사가 한눈에 들어오는 지도가 완성되었다. 기술의 진화는 단순히 더 빠르고 새로운 것을 만드는 과정이 아니었다. 그것은 사용자가 신경 써야 할 복잡한 계층을 하나씩 포장하고 감춰서, 더 중요한 것에 집중할 수 있도록 만드는 ‘추상화’의 과정이었다.

솔라는 자신이 완성한 지도를 보며 고개를 끄덕였다. 이제 클라우드 서비스 모델은 IaaS, PaaS, SaaS로 나뉘며 컴퓨팅 진화와 함께 관리 책임의 위치가 달라진다는 문장은 더 이상 분리된 사실의 나열이 아니었다. 서로 맞물려 돌아가는 거대한 톱니바퀴의 움직임처럼, 필연적인 인과관계로 이해되었다.

“결국 클라우드의 역사는 ‘사용자가 무엇을 신경 쓰지 않아도 되게 할 것인가’에 대한 고민의 역사였구나. 기술은 그 고민을 현실로 만들어주는 도구였고.”

그때 루나가 마지막 질문을 던졌다.

“이제 이 렌즈로 진짜 문제를 한번 볼까? 네 친구가 작은 동네 빵집을 하는데, 개발팀은 따로 없고, 그냥 간단한 온라인 주문 페이지만 하나 만들고 싶어 해. 어떤 클라우드 모델을 추천해 줄 거야?”

솔라는 더 이상 망설이지 않았다. 머릿속으로 IaaS, PaaS, SaaS의 책임 분담 그림을 떠올렸다.

“빵집 사장님은 서버가 뭔지, 운영체제가 뭔지 전혀 신경 쓰고 싶지 않을 거야. 그냥 완성된 주문 페이지를 ‘사용’하고 싶을 뿐이지. 개발자를 고용해서 직접 애플리케이션을 만들고 관리할 상황도 아니니까… 이건 고민할 필요도 없이 SaaS야. 이미 만들어진 상점 솔루션을 구독해서 쓰는 게 맞아. 만약 내가 그 친구를 위해 간단한 앱을 만들어주기로 했다면 PaaS를 고려해볼 수 있겠지만, IaaS는 절대 아니지. 빵 굽는 사람이 서버 운영체제 패치까지 걱정하게 할 순 없잖아.”

솔라는 자신 있게 대답했다. ‘IaaS, PaaS, SaaS’는 이제 외워야 할 이름표가 아니었다. ‘누가 무엇을 책임질 것인가’를 결정하는, 아주 현실적이고 유용한 의사결정의 틀이 되어 있었다. 솔라는 자신의 노트를 뿌듯하게 바라보았다. 알록달록한 책임의 탑들은 이제 클라우드라는 복잡한 세계를 탐험하는 든든한 나침반이 되어줄 터였다.