개발 역량 높이고 비용 최적화하는 ‘서버리스 컴퓨팅’
상태바
개발 역량 높이고 비용 최적화하는 ‘서버리스 컴퓨팅’
  • 데이터넷
  • 승인 2019.02.05 08:59
  • 댓글 0
이 기사를 공유합니다

서버 관리 필요 없이 간편한 애플리케이션 개발·실행 지원…컨테이너 환경 이점 높여

가상머신 및 컨테이너 기반의 데브옵스가 확산되면서 기업 IT환경의 복잡성이 더욱 높아지고 있다. 이러한 환경에서 서버리스 컴퓨팅은 개발자들이 서버 가용성 모니터링 및 성능 관리 등에 시간을 쏟지 않고 오직 창의적인 애플리케이션을 만드는 데만 더욱 많은 시간을 투자할 수 있도록 함으로써 기업의 혁신을 적극 지원한다. 

▲ 권필주 효성인포메이션시스템 SA팀 수석컨설턴트(his-pjkwon@hyosung.com)

서버리스(Severless) 컴퓨팅은 클라우드 서비스 제공업체가 애플리케이션을 제외한 모든 요소들을 서비스 형태로 제공하는 클라우드 컴퓨팅 모델로, ‘서비스형 함수(FaaS: Function-as-a-Service)’라고도 불린다. 클라우드 서비스업체가 서버 관리, 인프라 확장 등 전체적인 하드웨어 운용을 책임지기 때문에 개발자들은 인프라 운영 관리가 아닌 애플리케이션 개발에만 집중하고, 애플리케이션 실행을 위해 코드를 업로드하기만 하면 된다.

이러한 서버리스 컴퓨팅은 혁신적인 애플리케이션 개발을 가속화하고자 하는 신생 기업들과 인프라 비용효율성을 높이고 민첩성을 극대화하고자 하는 기존 엔터프라이즈 기업들에게 모두 주목받고 있다.

간편한 애플리케이션 개발·실행 지원

서버리스 컴퓨팅 환경에서는 코드만 작성하면 서버 자원이 자동으로 프로비저닝되며, 서비스를 자동으로 확장시킬 수 있다. 클라우드 서비스업체가 애플리케이션의 안정적인 구동을 위해 서버 확장 및 유지보수를 담당하기 때문에 기업이 별도로 용량을 예측하고 몇 년 단위로 서버 계약을 맺지 않아도 된다.

즉, 개발자들은 기존의 인프라에서의 용량 계획, 배포, 확장, 설치, 패치, 서버 관리 필요 없이 코드 준비, 개발, 빌드, 테스트, 릴리즈 및 모니터링에만 관여하면 된다.

클라우드 환경에서 서버리스 컴퓨팅 서비스를 제공하는 ‘AWS 람다(AWS Lamda)’, ‘애저 펑션(Azure Functions)’ 및 ‘구글 클라우드 펑션(Google Cloud Functions)’은 함수를 트리거(trigger)하는 이벤트 소스를 제공하며, 이벤트 발생 시 API 또는 HTTP를 통해 함수를 호출하도록 한다.

또한 함수를 실행한 시간을 기준으로 과금하기 때문에 월 단위 과금 대비 비용을 최적화할 수 있다. 서비스형 인프라(IaaS) 환경과 달리 애플리케이션의 수명 주기가 종료된 후에는 기능을 내려 별도의 하드웨어 비용을 지불하지 않아도 된다.

대표적인 사례로 코카콜라는 전 세계 자동판매기의 결제 처리를 위해 AWS의 IaaS에서 서버리스 컴퓨팅 서비스인 AWS 람다로 전환한 뒤 월 약 3000만 건의 호출을 빠르게 처리하고, 비용을 기존의 3분의 1 수준으로 크게 절감할 수 있었다.

민첩한 애플리케이션 생성·배포 핵심 ‘컨테이너’

경량의 가상화 기술인 컨테이너는 기능 구축 및 실행이 편리한 서버리스 컴퓨팅 환경의 핵심이다. 컨테이너는 애플리케이션 실행을 위한 모든 요소인 라이브러리 및 구성 파일 등을 하나의 패키지로 구동하는 기술이다. 호환에 중요한 라이브러리가 같이 구성돼 있기 때문에, 코드를 변경하지 않고도 애플리케이션을 서로 다른 컴퓨팅 환경으로 손쉽게 이동 및 실행시킬 수 있다.

또한 컨테이너는 가상머신에 비해 용량이 적기 때문에 개발자들이 컨테이너를 생성 및 배포하는 시간을 크게 단축시키고 빠르게 재기동이 가능하다. 이 때문에 컨테이너를 사용하지 않을 시에는 인스턴스를 종료해 서버 사용을 최적화할 수 있다.

초 단위로 서비스가 생성 및 소멸되는 서버리스 컴퓨팅 서비스 및 컨테이너 환경에서는 수십에서 많게는 만 개 이상에 이르는 동적 볼륨 생성 및 삭제를 지원할 수 있도록 동적 볼륨 할당을 지원하는 스토리지 환경이 필요하다.

컨테이너 기반 애플리케이션은 CPU 및 메모리 이외에도 로그 기록 및 데이터를 필요로 하기 때문에, 기존에는 특정 서버에 물리적으로 스토리지 공간을 미리 할당하는 정적(static) 방식을 사용했다. 이러한 방법은 서버의 자원이 대부분 상시 가동될 때는 큰 문제가 되지 않으나, 서비스가 초 단위로 변화하는 컨테이너 환경에는 적합하지 않기 때문에 동적 볼륨 할당이 요구된다.

최근 컨테이너가 웹 서버 또는 임시 저장 데이터를 필요로 하는 스테이트리스(stateless) 워크로드에서 DB 서버와 같은 스테이트풀(Stateful) 워크로드까지 확장되면서, 서비스의 지속성을 보장하는 영구 볼륨(Persistent Volume)의 중요성이 높아지고 있다. 영구 볼륨은 컨테이너의 종료 후에도 컨테이너의 최신 상태 정보 및 DB를 보존해 컨테이너 재가동 시 이러한 데이터를 다시 사용할 수 있도록 한다.

기존의 영구 볼륨은 네트워크 기반의 파일 시스템상에 보관됐으나, 이러한 방식은 고성능 IO를 요구하는 DB 서버 등의 워크로드에는 적합하지 않다. 대신 FC/iSCSI 기반의 고성능 외장 스토리지 볼륨을 동적으로 할당함으로써 컨테이너 구동을 지원해 고성능 워크로드 요구사항을 충족시킬 수 있다.

▲ 서비스형 인프라(IaaS) vs. 서버리스 컴퓨팅 서비스 영역 비교

영구 스토리지 솔루션 통한 컨테이너 환경 확장성 보장

히타치 밴타라의 HSPC(Hitachi Storage Plug-in for Containers)는 플래시 클라우드 솔루션인 히타치 VSP(Hitachi Virtual Storage Platform) F/G 시리즈에 탑재돼 컨테이너 환경에 영구 스토리지(persistent storage)를 제공하고, 동적 볼륨 할당뿐 아니라 고급 스토리지 관리를 지원하는 플러그인 소프트웨어다.

도커 스웜(Docker Swarm) 및 쿠버네티스(Kubernetes) 기반의 컨테이너 오케스트레이션 자동화 플랫폼에 연동돼 컨테이너용 볼륨을 동적으로 최소 1만6000개에서 최대 6만4000개까지 생성할 수 있어 서버리스 컴퓨팅의 기반이 되는 컨테이너의 확장성을 보장한다.

또한 HSPC는 컨테이너를 최대 6만 개 이상 17PB까지 생성하고, 100만 개 스냅샷을 지원하는 VSP 기반 클라우드 환경에서 성능 모니터링, 원격 장애 처리 지원 등 검증된 고급 스토리지 관리 기능을 제공한다. 이에 컨테이너 환경의 100% 데이터 가용성을 보장하고, 클라우드 및 서버리스 컴퓨팅 환경을 구현하는데 있어 리스크를 최소화하도록 돕는다.

기업 개발 역량 극대화

현재 가상머신(VM) 및 컨테이너 기반의 데브옵스(DevOps)가 확산되면서 기업들의 IT 환경의 복잡성이 더욱 높아지고 있다. 이러한 환경에서 서버리스 컴퓨팅은 개발자들이 서버 가용성 모니터링 및 성능 관리 등에 시간을 쏟지 않고 오직 창의적인 애플리케이션을 만드는 데만 더욱 많은 시간을 투자함으로써 기업의 혁신을 적극 지원할 수 있다.

또한 서버리스 컴퓨팅 환경의 안정성 향상에 따라 고성능 저지연 서비스 등 보다 핵심적인 영역에 적용할 수 있을 것으로 기대된다. 이에 비교적 복잡한 관리 때문에 전문적인 인력을 필요로 하는 컨테이너 인프라보다 진화한 기술로 여겨진다.

그뿐만 아니라 애플리케이션 실행 시간을 기준으로 서비스 사용 비용을 지불하기 때문에 비용을 최적화하는 효과도 제공한다.

향후 자사 소프트웨어 또는 개발자 팀의 애플리케이션 개발 주기를 단축하고, 보다 적은 비용으로 애플리케이션을 운영하고자 하는 기업들은 서버리스 컴퓨팅 도입을 적극 검토해야 한다. 효성인포메이션시스템은 이러한 서버리스 환경을 보다 안정적으로 뒷받침하는 영구 스토리지 솔루션을 통해 기업들의 인프라 및 애플리케이션 혁신을 돕고 있다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.