은유적으로 알아보는 클라우드와 클라우드-네이티브의 차이

Ralf Yang
NexClipper.io
Published in
5 min readJul 17, 2020
https://www.flickr.com/photos/donmillertogo/29292199456/in/photolist-LCsbnE-Gd5Utj-8pFvC1-QoFNJm-Lwq9xS-4YqToQ-7eWD9E-9V3bCG-

클라우드라는 단어는 이미 IT 분야에서 흔히 쓰이는 단어가 되었다.

많은 사람들이 잘 알고 있는, 그 클라우드-컴퓨팅(Cloud computing, 이하 클라우드) 이라는 기술은, 가상화 된 컴퓨터(IT Infrastructure, 이하 IT인프라) 자원을 필요에 따라 즉시 사용하고 쉽게 폐기할 수 있도록 구성한 형태이며, IT인프라 자원 관리 부분에 있어서, 서버가 위치적으로 어디에 있는지 알 필요가 없고, 사용자 유입에 따른 대응 설계 등을 상대적으로 미리 심각하게 고려하지 않아도 되는 편리성/확장성을 제공한다.

하지만 이런 클라우드 부분에는 IT인프라 라는 단어 자체가 갖는 한계적 틀(Frame)이 존재한다.

모두 다 잘 알다시피, IT인프라 라고 하는 것은, 비즈니스 또는 공공의 이익을 위한 IT 서비스 또는 제품 제작을 위한 기반으로써 안정적으로 비즈니스가 동작하도록 도와주는 중요한 역할을 담당하고 있다.

클라우드는 이러한 IT인프라의 운영 효율 및 규모, 편리성을 극대화한 구성으로써 비즈니스의 확장에 따른 발 빠른 대응이 가능한 체제로 변화 할 수 있게 만들어 주었다.

클라우드는 이렇게 IT인프라를 효용성 높은 자원으로써 체질을 변화 시키며 발전하고 있으나, 정작 이를 활용하는 사람은 기존 관습적인 방식안에서만 클라우드를 활용 하려고 하고 있다는 부분이 바로 앞에서 말한 그 한계적인 틀이 되는 샘이다.

IT인프라는 자원/자산의 개념을 가지고 있으며, 자원과 자산은 현실, 또는 가상에서 규모와 위치를 가지게 된다.

그러다 보니, 비즈니스를 위해 동작하는 어플리케이션 하나 하나의 위치를 알아야 했으며, 그것을 잘 관리하기 위해 서로간의 관계를 중요시 생각해 왔었다.

하지만 생각해 보면, ‘구름’이라는 것이 변화하지 않고 측정 할 수 있는 직경 등을 유지하고 있으며, 어느 자리에 가면 그 구름을 볼 수 있다. 라고 말하지 않는다.

마찬가지로, 클라우드 인프라 라는 것 또한 구름의 개념으로써 접근해서 생각하고, 그에 맞는 구성으로 어플리케이션을 설계해야 하는데, 기존의 업무 방식을 기반으로 클라우드에 접근하려고 하니, 단순히 남의 회사 서버를 비싼 돈 주고 빌려쓰는 정도로 밖에 활용을 못하고 있다는 것이다.

그리고, IT인프라는 이미 효용성이 높고 즉시성을 가지며 비즈니스 변화에 따른 발빠른 대응을 준비하고 있으나, 정작 어플리케이션은 바로 배포하지 못하고, 확장 할 수 없는 구조로서 클라우드를 잘 활용하지 못하는 경우를 자주 보게 된다.

한가지 은유를 들어보면,

갑자기 페이스북이 나를 스카웃(?) 해서 바로 다음달 부터 본사로 출근을 하라고 하는데, 현지에 거주 할 집을 짓지 못해서? 좀 더 나가서, 집이 안정적으로 잘 버텨 줄 암반을 찾지 못해서 집을 지을 수 없기 때문에 나는 페이스북에 출근 할 수 없다. 라고 하는 것과 비슷하지 않을까 라는 생각을 해 본다.

비즈니스가 원하는 것은 지금 당장에 일어나는 현상에 대해 대응 할 수 있는 정도의 기반인데, 전통적인 인프라는 100년 동안 무너지지 않을 안정적인 기반을 구축 하기를 원한다.

만약 내가 페이스북 본사에 출근하게 된다면, 출근을 위해 필요한 것은 단지, 접근성, 교통수단, 식사와 잠을 해결 할 수 있는 장소만 해결되면 된다.

그런 관점에서인지 실리콘 벨리의 주차장에는 캠핑카가 그리도 많이 주차되어 있었다고 한다.

공유 경제도 같은 관점에서 볼 수 있다.

자동차나 사무실에 관련해서도, 어디에 항상 고정되어 있고 내가 소유하고 있는 개념에서의 자산적 가치를 추구하기 보다는, 내가 하는 행동에 관련해서 그 행위를 실현 시켜주기 위한 이용의 도구 개념으로 보고 접근 할 수 있도록 만들어 주는 사상이 바로 ‘공유경제’이기 때문이다.

다시 돌아와 클라우드에 관련해서 정리를 하자면,

클라우드를 인프라 개념으로써 기존의 어플리케이션을 그대로 사용하여 서비스 하기 보다는, 인프라를 유기적인 개념으로 생각하여 어플리케이션을 설계하고 서비스에 투입 할 수 있어야 한다.

클라우드-네이티브 어플리케이션 설계를 위한 방안으로 12 factor(https://12factor.net)에 대한 개념을 반드시 이해하고 있어야 한다.

전기차를 타면서 기존 내연기관차를 타던 방식의 패턴으로 이용해서는 안된다. 시동 버튼을 찾아 헤매고, 브레이크를 사용해서 속도를 줄이고, 정기적으로 주유하듯 충전 인프라를 찾아다니며, 비상시를 대비해 점프 스타터를 구매하고, 항상 열쇠를 지니고 다니지 않아도 된다.

사람의 편의를 위해 시스템은 발전하고 있는데,
사람이 그 변화를 두려워 하거나 적응하지 못하는것 만큼 무의미하고 소모적인 것이 따로 없다.

다음 글에서는 12factor의 내용을 하나씩 다뤄 볼 예정이다.

이 글의 원본은 NexClipper Blog 입니다.

--

--