서버리스 사용 사례: 기업이 개발자의 혁신을 지원하기 위해 이 기술을 사용하는 방법

컴퓨터를 사용해 학습 중인 신입 직원

서버리스 또는 서버리스 컴퓨팅dms 개발자가 소프트웨어 업데이트 설치, 보안, 모니터링 등의 유지 관리 작업을 걱정하지 않으면서 애플리케이션 코드를 개발하고 실행할 수 있도록 하는 소프트웨어 개발 방식입니다. 클라우드 컴퓨팅이 부상하면서, 서버리스는 개발자가 코드를 작성하고 배포하는 데 더 많은 시간을 할애하게 하려는 조직에서 인기 있는 도구가 되었습니다.

이름과 달리 서버리스 프레임워크는 서버 없이 컴퓨팅한다는 것을 의미하지 않습니다. 서버리스 아키텍처에서 클라우드 서비스 공급자(CSP)는 서버 관리, 백엔드 인프라, 서버 프로비저닝, 백업 생성 같은 작업을 처리합니다. 서버리스 기술의 또 다른 장점은 클라우드 공급자가 주문형 모델로 리소스를 프로비저닝할 수 있다는 것입니다. 서버리스에서는 코드 실행이 시작되어야만 청구가 시작되고 코드 실행이 종료될 때 청구가 끝납니다.

기업이 서버리스를 통해 얻는 이점

클라우드 컴퓨팅의 성장으로 인해 개인과 기업은 과거와는 다른 방식으로 데이터를 사용하고 저장해야 하게 되었습니다. 그래서 기업들은 클라우드 기능에 대한 의존도를 점점 높이고 온프레미스 인프라에 대한 의존도를 줄이고 있습니다. 현재 Amazon Web Services(AWS Lambda), Microsoft Azure(Azure Functions), IBM(IBM Cloud Code Engine)을 비롯한 모든 주요 CSP가 서버리스 플랫폼을 제공합니다.

서버리스는 서비스형 인프라(IaaS), 서비스형 플랫폼(PaaS)와 서비스형 기능(FaaS)과 같은 다른 중요한 인프라 기술과 함께 여러 중요한 방식으로 조직에 도움이 됩니다.

  • 비즈니스 로직에 대한 집중력 강화: 서버리스 기능을 사용하면 개발자가 기본 인프라 관리보다 코드 작성에 더 집중할 수 있습니다.
  • 스택 구현 감소: 서버리스 환경에서는 코드를 작성하고 배포할 때 백그라운드에서 진행되는 작업인 스택 구현을 타사에 아웃소싱합니다.
  • 지연 시간 단축: 서버리스 환경에서는 코드가 최종 사용자에게 더 가깝게 실행되어 지연 시간(데이터가 네트워크의 한 지점에서 다른 지점으로 이동하는 데 걸리는 시간)이 줄어듭니다.
  • DevOps 주기 단축: 서버리스는 개발자가 코드를 배포하는 데 필요한 인프라를 정의하는 데 소요되는 시간을 단축하여 DevOps를 간소화합니다.

서버리스는 어떻게 작동하나요?

서버리스는 프로그래머가 가장 잘하는 일, 즉 코드 작성과 배포에 더 집중할 수 있도록 발전해 온 코딩 환경 아키텍처들 중 최신 버전입니다. 서버리스 개발과 관련된 다른 세 가지 아키텍처는 베어 메탈 서버, 가상 머신(VM), 컨테이너입니다. 각각을 자세히 살펴보겠습니다.

  • 베어 메탈 서버: 베어 메탈 서버 아키텍처에서는 개발자가 각 베어 메탈 서버를 수동으로 구성하고 관리해야 합니다(코드를 배포하는 환경도 마찬가지). 베어 메탈 환경에서는 개발자가 운영 체제(OS)를 설치하고 패치를 관리하는 등 일상적이고 시간이 많이 드는 작업을 수행합니다.
  • 가상 머신: 가상 머신(VM)은 베어 메탈 서버보다 리소스 최적화에 더 효과적이며 유휴 시간 처리에도 더 뛰어납니다. 하지만 VM을 사용하는 경우에도 개발자는 환경 설정, OS 설치, 패치 적용을 직접 해야 합니다.
  • 컨테이너: Docker가 대중화시킨 컨테이너를 사용하면 배포 및 애플리케이션 코드를 모든 기본 인프라에서 실행할 수 있는 방식으로 패키징할 수 있습니다. 배포 측면에서 컨테이너는 베어 메탈이나 VM보다 훨씬 간단한 아키텍처이지만 웹 앱의 확장에 있어서는 적합하지 않습니다.

서버리스 및 서비스형 기능(FaaS)

서버리스 환경에서는 고객이 이벤트에 대응하여 코드를 실행할 수 있도록 하는 서비스형 기능(FaaS)은 개발자가 기본 인프라를 관리할 필요가 없도록 하는 데 매우 중요합니다. FaaS와 서버리스 컴퓨팅을 사용하면 개발자는 애플리케이션 개발에만 집중할 수 있습니다.

베어 메탈, VM, 컨테이너에서 보았듯이, 앱을 호스팅하려면 일반적으로 OS를 설치하고 관리하는 것과 더불어 서버를 프로비저닝하고 관리해야 합니다. FaaS를 사용하면 물리적 하드웨어, VM OS 및 웹 서버 소프트웨어 관리가 모두 CSP에서 처리됩니다. FaaS를 통해 개발자는 서버리스 애플리케이션과 워크플로를 원활하게 배포할 수 있으며, FaaS와 서버리스라는 용어가 혼용되는 경우도 많습니다.

서버리스 및 서비스형 플랫폼(PaaS)

서비스형 플랫폼(PaaS)은 온프레미스에서 플랫폼을 구축하고 유지 관리하는 것보다 비용 효율적이고 덜 복잡한 완전한 클라우드 플랫폼을 고객에게 제공하는 클라우드 컴퓨팅 모델입니다. 서버리스와 PaaS 아키텍처는 개발자에게 백엔드를 보이지 않게 하지만 비슷한 부분은 여기까지입니다. PaaS 환경은 배포 환경에 대한 통제권이 더 크지만 더 많은 관리가 필요합니다. PaaS에서는 애플리케이션을 확장하려면 환경을 수동으로 구성해야 하며 서버리스보다 스핀업에 시간이 오래 걸릴 수 있습니다

서버리스 및 서비스형 인프라(IaaS)

서비스형 인프라(IaaS)는 인터넷을 통해 컴퓨팅, 서버, 가상 머신과 같은 리소스를 종량제 방식으로 제공하는 클라우드 서비스입니다. IaaS를 사용하면 사용자가 빠르게 확장할 수 있어서 온프레미스 인프라를 구매, 설정 및 유지 관리하는 데 드는 초기 자본 지출이 크게 절약됩니다. IaaS 모델에서는 사용자가 용량을 선불로 구매합니다. 서버리스 모델에서는 이벤트가 앱 코드를 실행하도록 트리거합니다. 기본적으로 IaaS는 사용자에게 리소스에 대한 비용을 선불로 청구하는 반면, 서버리스는 코드가 실제로 실행되는 시간에 대해서만 비용을 청구합니다.

기업의 서버리스 사용 사례

클라우드 컴퓨팅이 계속 확장되고, 기업들이 이 기술을 활용해 새로운 비즈니스 가치를 창출할 수 있는 새로운 방법을 모색함에 따라 서버리스 사용 사례가 빠르게 증가하고 있습니다.

인공 지능(AI) 및 머신 러닝(ML)

지난 몇 년 동안 인공지능(AI) 및  머신러닝(ML) 애플리케이션, 특히 생성형 AI의 비즈니스 사용 사례가 크게 늘었습니다. 특히 서버리스는 지속적인 인텔리전스 흐름이 실시간 의사 결정 기능에 정보를 제공하는 이벤트 기반 AI를 구현하는 데 도움이 됩니다. 또한 서버리스는 개발자가 기본 인프라가 아닌 학습에 집중할 수 있도록 하여 새로운 AI 및 ML 솔루션을 구축할 때 확장성 문제를 해결하는 데 도움이 될 수 있습니다.

마이크로서비스

마이크로서비스 아키텍처는 가장 보편적인 서버리스 사용 사례 중 하나입니다. 마이크로서비스 모델은 하나의 애플리케이션이 느슨하게 결합되고 독립적으로 배포 가능한 여러 개의 작은 구성 요소 또는 서비스로 구성된 클라우드 네이티브 아키텍처 방식입니다. 서버리스 컴퓨팅은 작은 코드, 자동 확장, 신속한 프로비저닝, 온디맨드 가격 책정 모델 지원 기능이 있어 마이크로서비스 아키텍처에 이상적입니다.

하이브리드 클라우드

하이브리드 클라우드는 퍼블릭 클라우드프라이빗 클라우드, 온프레미스 인프라를 결합하고 통합하여 유연하고 비용 최적화된 단일 IT 인프라를 구축합니다. 서버리스는 퍼블릭, 프라이빗, 엣지 등 다양한 클라우드 환경에서 변동하는 워크로드를 수용하는 데 필요한 민첩성, 유연성, 확장성을 제공하여 하이브리드 클라우드 전략을 채택하는 기업을 지원합니다.

빅 데이터 분석

서버리스는 빅데이터 애플리케이션을 위한 코드를 작성하고 배포하는 데 드는 비용과 복잡성을 획기적으로 줄여줍니다. 서버리스 환경에서는 개발자가 일상적인 인프라 관리 업무 대신 코드와 비즈니스 로직에 집중할 수 있습니다. 또한 서버리스가 상시 가동될 수 있다는 것은, 데이터 파이프라인을 데이터의 실시간 변동에 반응하고 그에 따라 애플리케이션 로직을 변경하는 방식으로 설계할 수 있다는 의미합니다. 오늘날 서버리스는 개발자가 기본 인프라를 관리하지 않고도 확장가능한 빅데이터 파이프라인을 구축하는 데 도움이 됩니다.

사물인터넷(IoT)

서버리스는 이벤트 중심 능력, 자동화, 확장이 가능해 사물인터넷(IoT) 애플리케이션에 필요한 데이터 처리에 이상적입니다. 자동화된 서버리스 기능은 상태 비저장 기능이며 개별 이벤트를 처리하도록 설계되었습니다. 또한 서버리스의 유연한 컴퓨팅 성능 덕분에 IoT 애플리케이션을 구축하는 개발자는 넓게 분산된 노드에서 작업할 때 광범위한 연결 및 데이터 처리 요구 사항에 적응할 수 있습니다. IoT 기기의 수가 증가함에 따라, 서버리스는 IoT 애플리케이션에 중요한 이벤트 기반 데이터 분석을 위한 강력한 기반을 제공하면서 개발자를 지원하는 독보적인 위치를 차지하고 있습니다.

API Gateway

API 게이트웨이는 애플리케이션 사용자의 요청을 받아 하나 이상의 백엔드 서비스로 라우팅하고 적절한 데이터를 수집하여 하나의 통합된 패키지로 사용자에게 전달하는 소프트웨어입니다. 서버리스 모델은 웹 애플리케이션 작업의 프록시 역할을 하며 HTTP 메서드 라우팅, 클라이언트 ID 및 비밀, 속도 제한, CORS, API 사용량 보기, 응답 로그 보기, API 공유 정책 보기 등을 제공합니다.

서버리스 모델에서는 API 게이트웨이를 사용하여 REST API 서비스를 빌드하고 각 이벤트와 관련된 코드를 트리거할 수 있습니다. 서버리스 환경의 이벤트와 기능은 HTTP 엔드포인트로 변환될 수 있습니다. 이를 '웹 작업'이라고 하며, 보안 계층과 맞춤 지원을 추가하는 API 게이트웨이를 통해 모든 기능을 갖춘 API로 수집될 수 있습니다. 또한 API 게이트웨이는 개발자에게 다양한 맞춤 인증이 가능한 통합 기능을 제공하여 출시 시간을 단축하고 개발자의 생산성을 높이는 데 도움이 됩니다.

챗봇

챗봇과 같은 IBM watsonx Assistant와 Microsoft의 ChatGPT는 사용자가 사용하지 않는 리소스에 대한 비용을 지불할 필요가 없는 서버리스의 사용량 기반 가격 책정 모델 덕분에 서버리스 환경에 적합합니다. 서버리스는 모든 규모의 조직에서 챗봇을 사용하여 고객 참여를 높이고, 예전에는 인간이 입력해야 했던 서비스를 자동화하는 등 다양한 업무를 지원합니다.

병렬도가 높은 작업

서버리스 런타임은 더 작은 작업들로 쉽게 분할해서 병렬로 수행할 수 있는 병렬 작업에 매우 적합합니다. 서버리스 아키텍처에서는 병렬화 가능한 작업 각각이 작업을 호출할 수 있기 때문입니다. 서버리스 환경에서는 병렬성이 매우 강한 작업 부하를 여러 개의 하위 작업으로 분할하여 각각을 개별적으로 실행할 수 있습니다. 

서버리스 런타임에서 병렬 작업을 수행하는 예로는 몬테카를로 시뮬레이션, 일괄 처리, 비디오 트랜스코딩, 객체 스토리지의 객체 처리, 모델 점수 산정, 웹 스크래핑, 비즈니스 데이터 스트림이 있습니다.

자세히 알아보기

모든 규모, 다양한 업계의 조직이 클라우드 컴퓨팅을 활용하여 디지털 혁신 목표를 달성하고자 하는 가운데 서버리스 컴퓨팅이 중추적인 역할을 하고 있습니다. 서버리스 환경은 개발자가 OS 설치 및 업데이트, 서버 프로비저닝, 인프라 확장과 같은 지루한 작업에서 해방되어 비즈니스 로직과 코드 작성 및 배포에 집중할 수 있도록 도와줍니다.

 

작성자

Mesh Flinders

Staff Writer

IBM Think

벤치에 앉아 스마트폰을 사용하는 남자를 위에서 본 모습

놓칠 수 없는 인사이트, 뉴스레터를 구독하세요.

AI, 양자 컴퓨팅, 클라우드, 보안 등에 관한 전문가 뉴스를 통해 자세한 최신 정보를 얻으세요.

지금 구독하기