모놀리식(Monolithic)에서 잘게 쪼개지는 형태인 마이크로서비스 아키텍처(MSA)로 간다

모놀리식(Monolithic)에서 잘게 쪼개지는 형태인 마이크로서비스 아키텍처(MSA)로 간다

cloudhwang 0 1472

2014년 AWS에서 처음으로 선보인 서버리스(ServerLess) 솔루션이 IT 업계 개발자들에 의해 한 달에 수십 조 번이 실행되는 등 큰 호응을 얻고 있다. 서버리스는 서버의 운영·관리를 개발자를 대신해 CSP(Cloud Service Provider)가 도맡아 실행하기 때문에, 실제로 서버는 존재하지만 개발자의 업무에서 사라지는 것처럼 보여 ‘서버리스’ 혹은 ‘서버리스 컴퓨팅’, ‘서버리스 아키텍처’라고 불린다.

서버리스 컴퓨팅은 개발자가 서버를 운영·관리할 필요가 없어 비즈니스와 개발 본연의 업무에 집중하고, 애플리케이션이 구동되는 환경과 컴퓨팅 리소스는 클라우드 서비스가 자동화를 기반으로 대신해준다는 장점이 있다. 이러한 장점을 가진 서버리스 환경은 최근 쿠버네티스, IoT 등 신기술과 결합돼 서비스가 제공돼 향후 시장에서의 고성장이 기대되고 있다.


비용효율성 제고 및 민첩한 개발 가능

클라우드에서 출발한 아키텍처이자 클라우드 컴퓨팅 모델인 ‘서버리스’는 운영상의 책임을 CSP에게 전환해 애플리케이션의 빠른 개발을 가능하게 해준다. 서버리스를 사용하면 개발자들은 서버의 운영과 관리를 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있다. 이러한 특징을 가진 서버리스를 사용하는 이유는 비용 효율성이 높고 보다 빠르게 최신 애플리케이션을 빌드할 수 있다는 점이다.

개발자들이 기존에 애플리케이션을 개발하던 방식은 개발에 필요한 서버 자원과 애플리케이션을 구동할 때 필요한 서버 자원을 미리 요청한 후 할당받아 애플리케이션을 개발, 운영하는 것이었다.

그러나 최근 들어 많은 개발자들은 클라우드를 개발에 사용하고 있다. 클라우드 사용의 주된 목적 가운데 하나는 ‘비용효율성’이다. 하지만 관련 IT 업계 관계자들은 클라우드 컴퓨팅이 개발자들의 기대만큼 비용상의 장점을 주고 있지는 못하다고 주장한다.

최영락 마이크로소프트 애저 사업부 차장은 “일반적인 클라우드의 과금 체계는 가상머신(VM)을 사용한 만큼, 개발을 위한 프레임워크를 사용한 만큼 과금이 이뤄진다”며 “게임사의 경우 새벽에 비교적 트래픽이 적을 때에도 항상 VM이 할당, 실행되기 때문에 요금을 새벽에도 지속적으로 지불해야 한다. 그렇기에 비용효율성이 그리 높지만은 않다”고 예를 들어 설명했다.

애플리케이션 구동뿐만 아니라 PaaS(서비스형 플랫폼)를 이용하는 고객의 경우에도 비용효율성을 기대하기 어렵기는 마찬가지다. IaaS(서비스형 인프라)보다는 상대적으로 PaaS가 비용이 저렴한데, 개발 라이브러리(프레임워크)가 클라우드에 올라가게 되면 사용하지 않더라도 항상 개발 라이브러리가 VM에 올라가 개발이 마무리되는 시점까지 구동되기 때문에 비용이 꾸준히 발생하게 된다.

서버리스는 이 같은 비용효율성을 고객이 직접 체감할 수 있도록 VM 구동이 아닌, 즉 서버 단위가 아닌 실제로 서버나 코드, 함수(어떤 특정한 기능을 하는 명령어들을 묶어놓은 것) 등을 호출(Call)하는 횟수에 따라 비용을 지불하는 방식이다. 실제로 서버리스는 PaaS와 IaaS보다 상대적으로 사용되는 자원이 적다. 횟수로 혹은 호출된 함수가 실행된 시간에 따라 과금되기 때문에 사용자 입장에서는 사용한 만큼만 지불한다는 클라우드 컴퓨팅의 장점을 보다 확실하게 누릴 수 있다.

 49816_34351_3857.png 
▲ 클라우드 컴퓨팅의 진화(출처: 클라우드 구루)

김일호 AWS 솔루션즈 아키텍트 매니저는 “클라우드 컴퓨팅의 발전은 IaaS에서 PaaS로 그리고 서버리스로 흘러간다. 또한 애플리케이션 발전 패러다임은 하나의 거대한 덩어리, 모놀리식(Monolithic)에서 잘게 쪼개지는 형태인 마이크로서비스 아키텍처(MSA)로 간다”면서, “클라우드 서비스를 더욱 잘게 나눈 것이 바로 서버리스다. 더 이상 VM 단위가 아닌 함수와 같은 개발 코드를 클라우드로 올리기 때문이다. 이는 곧 비용의 효율성 증가와도 이어진다”고 설명했다.

서버리스가 각광받게 된 또 다른 이유로는 민첩하고 빠르게 애플리케이션을 개발하고, 배포해야 하기 때문이다. 최근 비즈니스는 4차 산업혁명의 물결에 올라타 클라우드 기반의 AI, 머신러닝, 빅데이터 등의 신기술을 활용해 창출되고 있다. 이에 경쟁에서 뒤처지지 않기 위해 보다 뛰어난 기능을 가진 솔루션을 빠르게 배포해야 한다.

이처럼 민첩한 애플리케이션 개발에 대한 수요가 늘어나는 것과 함께 서버리스도 각광받고 있다. 서버리스는 개발자가 직접 서버를 준비하거나 유지, 관리할 필요가 없다. 설치, 유지 또는 관리할 소프트웨어나 런타임이 없기 때문에 개발자는 온전히 코드 개발에만 몰입할 수 있어, 민첩한 애플리케이션 개발이 가능하다는 것이다.

또한 서버리스는 애플리케이션을 구동할 때 기본적으로 클라우드 위에서 구동되므로 유연하게 규모를 조정할 수 있다. 클라우드 컴퓨팅의 일종인 서버리스는 애플리케이션을 자동으로 확장할 수도 있고, 개별 서버 단위가 아닌 사용 단위(처리량, 메모리)를 설정/해제해 용량을 조정할 수 있다.

이 외에도 서버리스는 가용성 또한 자동화를 기반으로 애플리케이션을 실행하는 서비스에서 기본적으로 제공된다. 그렇기에 개발자들은 더더욱 애플리케이션 개발과 운영에만 몰두할 수 있다.

0 Comments