본문 바로가기

IT_Information Technology

[펌]서버리스 컴퓨팅, 어디에 어떻게 쓸까?

서버리스에 대비하고 있는가? 분명 서버리스 컴퓨팅은 하나의 트렌드로 자리잡고 있다. 그렇다고 해서 모든 시나리오나 조직에서 이상적으로 작동하는 것은 아니다.

서버리스 컴퓨팅이란 클라우드 서비스 제공자가 서버를 운영하고 컴퓨팅 자원 할당을 동적으로 관리하는 소프트웨어 아키텍처 모델이다. 그 과정에서 여전히 서버가 이용되기 때문에 ‘서버리스’라는 용어는 적절하지 못할 수 있다.

이런 유형의 서비스를 이용하는 가격은 미리 구매한 용량보다는 애플리케이션이 소모하는 실제 자원의 양에 기초한다.

서버리스 아키텍처 시장 규모는 2018년에 총 42.5억 달러를 기록했으며 2023년까지 연간 29%의 연 평균 성장률(CAGR)을 기록해 149.3억 달러에 달할 것이라고 리서치 기업 M&M(Markets and Markets)이 2018년 보고서를 통해 밝혔다. 해당 기간 중 가장 큰 시장 점유율을 기록할 지역은 북미로 예상됐다.

시장의 성장을 유도할 요인으로는 인프라 비용을 낮추고 배치, 관리, 실행을 용이하게 하는 서버 관리의 필요성 부재 등이 있다. 또한 마이크로서비스 아키텍처의 확산이 시장 성장에 기여할 전망이다.

M&M는 자동화와 통합 서비스가 서버리스 아키텍처 배치에 있어서 중요한 역할을 담당할 것이라고 밝혔다. 자동화 서비스는 하이브리드 IT 플랫폼에 배치된 마이크로서비스를 효율적으로 관리하여 최적의 컴퓨팅 자원 활용과 함께 더욱 신속하게 응답하는데 도움이 된다.

가트너도 서버리스 컴퓨팅에 대해 낙관적이다. 이 리서치 기업은 서버리스 컴퓨팅을 2019년 인프라와 운영에 영향을 끼치는 상위 10개 트렌드에 포함시켰고 이 새로운 소프트웨어 아키텍처 모델을 통해 인프라 프로비저닝 및 관리의 필요성이 없어질 것이라고 밝혔다.

 

ⓒComputerworld UK



IT 관리자에게 있어서 서버리스 컴퓨팅의 매력
서버리스는 애플리케이션 개발자뿐 아니라 시스템 운영 직원에게도 매우 매력적이라고 딜로이트 컨설팅의 클라우드 운영 수석 켄 코어리스가 진단했다. 그에 따르면 대형 클라우드 제공자가 제공하든, 시중의 솔루션을 통해 구내에서 실행하든 서버리스 컴퓨팅의 목표는 같다. "소프트웨어 개발 라이프사이클의 속도를 높이기 위해 가차없이 추진되는 자동화 및 셀프 서비스"라고 코어리스가 말했다.

IT 관리자의 경우 서버리스는 티켓 기반 작업 부하의 ‘요청-응답’ 사이클을 낮추며 관리자는 인프라 설계나 추가적인 자동화 등 더 높은 수준의 작업에 집중할 수 있게 된다고 그는 설명했다.

코어리스에 따르면 서버리스의 주된 사용례는 크게 2가지다. 하나는 현대적이고 느슨하게 연계된 서비스 기반 애플리케이션을 개발하기 위한 애플리케이션 개발이다. 서버리스 컴퓨팅을 달성하는 클라우드 지원 서비스인 FaaS(Function-as-a-Service)와 BaaS(Backend-as-a-Service)는 소프트웨어 제공팀을 소규모로 유지하여 생산성을 극적으로 개선할 수 있다.

또 다른 주요 사용례는 시스템 관리자에 의한 것이다. "서버리스 기술을 통해 그들이 추구하는 자동화를 쉽고 빠르며 점진적으로 이행할 수 있다"라고 코어리스가 말했다. 예를 들어, 딜로이트의 CMS(Cloud Managed Services) 사업부에서는 제공물 운영을 자동화하기 위해 서버리스를 광범위하게 사용하고 있다.

하지만 클라우드 서비스와 마찬가지로 서버리스를 이용할 때 비용이 단순한 가상머신을 쓸 때보다 높은 경우가 있다. 코어리스는 현재 가상머신에서 지속적인 80% 사용량으로 운영되는 애플리케이션이라면 서버리스 환경에서 비용이 더 높을 것이라고 말했다.

그는 "그러나 서버리스의 진정한 잠재력은 더 적은 수의 사람들이 (소프트웨어 패치와 백업 등의) 일상적인 IT 과업 중 일부를 수행하는 것이다"라며 이를 통해 2가지 이점을 얻을 수 있다고 설명했다. 우선, 이런 일상적인 과업을 수행하는 사람들이 IT 또는 기업 내의 다른 곳에서 가치를 창출하는데 집중할 수 있다.

"그 누구도 DNS[Domain Name System]를 변경하는 일에 흥미를 느끼지 못한다. 이런 사람들을 새로운 기능 개발에 활용할 수 있다. 추가적인 자동화가 가장 중요한 것으로 보이는 이유다"라고 그는 말했다.

두 번째 이점은 소규모 팀이 자기 결정을 할 수 있는 능력이다. 인프라 관리에 대한 전문 지식과 지침이 자동화되면서 팀들이 안전하게 셀프 서비스를 이용할 수 있게 되는 것이다. 코어리스는 "하지만 일반적으로 이를 위해서는 표준과 지침을 자동화하기 위한 투자가 필요하다. 서버리스 제공물이 일종의 지침/제한 없이 사용하기에는 충분히 '안전하지' 못한 경우가 많기 때문이다"라고 말했다.

IDC의 서비스형 플랫폼 연구 책임자 래리 카발로는 애플리케이션이 분리된 서비스를 통해 이벤트 중심적인 컴퓨팅을 활용할 수 있는 경우가 서버리스 플랫폼에 이상적이라고 평했다.

그에 따르면 가장 보편적인 사용례는 IoT와 모바일 백엔드이며 이를 위해서는 이벤트 중심적인 처리가 필요하다. 기타 사용례로는 실시간 이벤트 대응을 위한 일괄 처리 또는 스트림 처리가 있다고 그는 덧붙였다.

서버리스 컴퓨팅 우수 사례
그렇다면 조직은 어떻게 서버리스의 성공을 도울 수 있을까? 전문가들은 다음을 권고한다.

“서버리스 제품의 제한 사항을 설계 프로세스에 적용하라.”
서버리스로 전향할 때 시장의 가장 유연한 제품조차도 엄격한 제한이 있다는 사실을 잊는 경우가 많다고 마케팅 기술 서비스 기업 코디얼(Cordial Inc.)의 IoT 플랫폼 설계자 다니엘 스미스가 지적했다.

 

그는 "서버리스가 실은 다른 누군가의 서버나 컨테이너이며 자체적인 설계상 제약이 있다는 사실을 기억하면 서버리스를 통해 성공할 수 있을 것이다. 서버리스의 경우 스택에서 책임을 정의하는 선이 훨씬 높기 때문에 설계 및 이행 중 총 작동 시간, 소비한 CPU 시간, 사용된 총 메모리 등을 고려해야 한다"라고 말했다.

코디얼은 2015년부터 자원 사용량을 예측할 수 없는 시기에 예측 가능한 비용 모델을 확보하기 위해 서버리스 기술을 연구하기 시작했다. 예측 가능한 수요 기반 비용 구조를 확보할 필요가 있었기 때문이다.

2018년 5월, 해당 기업은 자체 시스템 중 일부를 대신하여 클라우드플레어의 워커스 기술을 사용하기 시작했다. 고객들을 대신하여 소비자에게 서비스를 제공하는 B2B기업으로써 코디얼은 가능한 신속하게 고객과 상호작용 해야 한다.

스미스는 "이 때문에 워크로드를 가능한 소비자에 지리적으로 가깝게 이동해야 하는 경우가 많다"라며 서버리스가 이것을 제공한다고 말했다.

“한정된 워크로드를 설계하라.”
조직은 서버리스 아키텍처를 단일 기법 또는 단일 기능을 위한 실행 엔진으로 생각해야 한다고 스미스가 말했다.

그는 "이 목표를 추가적으로 다듬어야 한다. 서버리스 기능을 사용해 데이터 파일을 처리하는 것이어선 안 된다. 각 데이터 줄이 분리 실행되도록 해야 한다”라고 말했다.

그에 따르면 각 작업 단위의 규모를 줄임으로써 서비스들 사이에서 네트워크가 데이터를 얼마나 신속하게 이동할 수 있는지가 중요해졌다. 스미스는 "운용 중인 데이터의 경우 네트워크를 1초에 네트워크 인터페이스당 10(기가바이트)의 저장 용량을 제공할 수 있는 일종의 휘발성 저장소로 생각할 수 있게 되었다. 따라서 최종 출력을 영구적으로 저장하기 전까지는 가장 느린 시스템 구성요소인 디스크를 피하게 됐다"라고 말했다.

“기능들을 가능한 한 ‘스테이트리스’(Stateless) 상태로 만들라.”
단일 애플리케이션들 사이에서 공통적인 글로벌 변수가 서버리스와 호환되지 않을 수 있다. 호출들 사이에서 글로벌 스테이트가 일정하지 않을 수도 있기 때문이다.

애플리케이션 성능 소프트웨어 제공 기업 다이나트레이스(Dynatrace)의 소프트웨어 엔지니어 다니엘 다일라는 "이에 대응하기 위해 서버리스 기능은 가능한 스테이트리스 상태여야 한다"라고 말했다.

그는 이어 "스테이트가 필요한 경우 외부 (데이터베이스)에서 상태를 수집하고 실제 데이터를 처리하는 다른 스테이트리스 기능을 호출하는 기능을 확보하는 것이 낫다. 이를 통해 관리가 더 쉬운 지정된 곳에 스테이트풀 상호작용을 격리할 수 있다"라고 말했다.

다일라에 따르면 다이나트레이스는 낮은 비용, 확장 기능, 이벤트 중심적인 호출 때문에 지난 수 년 동안 서버리스 기술을 사용해왔다. 해당 기업은 일괄 처리를 위해 지속적으로 작동해야 하는 투표 시스템을 위해 서버리스 컴퓨팅을 사용하고 있다.

그는 "낮은 비용이 주된 이점이라고 생각한다. 우리의 서버리스 기능은 부하가 0부터 빠르게 확장될 수 있는 작은 코드 조각인 경향이 있다"라고 말했다.

“배치 및 시험을 자동화하라.”
서버리스 컴퓨팅을 수동으로 쉽게 배치할 수 있는 툴이 있지만 배치를 자동화하면 인간 오류 없이 일관된 이행을 확보할 수 있다고 e디스커버리 소프트웨어 제공 기업 렐러티비티(Relativity)의 수석 소프트웨어 엔지니어 흐리스토 파라조프가 말했다.

"또 자동화를 통해 조직 내의 다른 팀들이 이런 기술을 쉽게 도입할 수 있다"라고 파파조프가 덧붙였다.

렐러티비티는 자체 e디스커버리 플랫폼을 통해 고객 경험을 개선하기 위한 노력의 일환으로 마이크로소프트의 애저 클라우드 서비스의 서버리스 기술을 이용하고 있다. 해당 기업은 내부 모니터링 툴과 관련해 서버리스를 활용하여 사용자들이 대량의 원격 측정 데이터를 처리함으로써 신속하게 문제를 찾아 해결하고 있다.

서버리스 애플리케이션의 복잡성이 증가하는 상황에서 단위 시험이 개발 사이클의 필수적인 부분이 되었으며 자동화도 도움이 된다고 파파조프가 말했다. 그는 "마이크로소프트가 애저 펑션을 출시할 당시 단위 시험은 매우 어려운 일이었다. 그 이후로 발전해 이제는 프로젝트에 단위 시험을 매우 쉽게 추가할 수 있게 됐다"라고 말했다.

“현대적인 애플리케이션 아키텍처를 이해하라.”
관리자는 애플리케이션을 짧게 운용하며 독립적이고 분리된 서비스로 분리하는 것을 목표로 삼아야 한다는 조언이 있다. 카팔로는 "스테이트리스 애플리케이션을 설계하고 통신을 위한 API 관리와 사용자 신원을 위한 보안 기능 등의 뒷받침 서비스를 활용하라"라고 말했다.

예를 들어, 유입되는 트랜잭션을 처리하기 위해 연속적으로 작동하는 웹 애플리케이션 서버는 비즈니스 로직을 추출하여 분리하고 서버리스 프레임워크에서 마이크로서비스로 운용할 수 있다. 카발로는 "이를 통해 지속적인 서버 운용 비용이 사라지고 시스템 대체 작동 문제를 클라우드 제공자에게 맡길 수 있다"라고 전했다.

“사이버 보안의 우선순위를 높여라.”
서버리스를 통해 기업들은 서버 패치 또는 안티바이러스 소프트웨어 운영에 대해 걱정할 필요가 없을 수도 있다. 그러나 API에 기초한 서버리스 제공물은 솔루션의 엔드포인트를 급격하게 증가시킬 수 있다. 코어리스 "고객 또는 파트너가 API를 사용하는 경우 더 복잡해진다"라고 지적했다.

그 결과, 빠르게 처리할 수 없는 문제가 발생할 수 있기 때문에 기업들은 방화벽 규칙에 대한 접근방식을 바꾸어야 할 수도 있다고 코어리스는 덧붙였다. ciokr@idg.co.kr

원문보기:
http://www.ciokorea.com/news/121599?page=0,1#csidx53a0e8e8601f267b21c2dce501423c0