서버리스 컴퓨팅 개념과 장단점
목차
오늘은 서버리스 컴퓨팅 개념과 장단점에 대해서 알아보고 자세히 살펴보겠습니다.
서버리스 컴퓨팅이라고 하면 많은 사람들이 이 모델에 코드 실행 및 기타 개발 작업을 용이하게 하기 위한 서버가 없다고 생각합니다. 이는 명백한 오해입니다.
따라서 이 오해에 대한 설명이 끝나면 “서버리스”라는 이름 뒤에 숨은 논리가 무엇인지 궁금하실 것입니다.
힌트를 드리자면, “서버가 없다”가 아니라 서버를 관리하고 구현하는 방식이 “서버리스”의 핵심입니다.
그럼, 서버리스 컴퓨팅 개념과 장단점에 대해서 자세히 살펴보겠습니다.
참고로 서버리스와 관련된 최신 IT 컴퓨팅 관련 글은 아래 참조 바랍니다.

서버리스 컴퓨팅 개념과 장단점
서버리스 컴퓨팅 개념
서버리스 또는 서버리스 컴퓨팅은 클라우드 서비스 제공자가 고객이나 개발자 대신 온디맨드 머신 리소스를 프로비저닝하고 서버를 직접 관리하는 클라우드 기반 실행 모델입니다.
개발자가 서버 관리가 아닌 코드에만 집중할 수 있도록 서비스, 전략, 사례를 결합하여 클라우드 기반 앱을 빌드할 수 있도록 지원하는 방식입니다.
리소스 할당, 용량 계획, 관리, 구성, 확장부터 패치, 업데이트, 예약, 유지 관리에 이르기까지 일반적인 인프라 작업의 모든 책임은 클라우드 서비스 제공자(예: AWS 또는 Google Cloud Platform)가 집니다.
따라서 개발자는 프로세스와 애플리케이션을 위한 비즈니스 로직에 노력과 시간을 집중할 수 있습니다.
이 서버리스 컴퓨팅 아키텍처는 휘발성 메모리에 컴퓨팅 리소스를 보유하지 않고, 대신 컴퓨팅이 짧은 부분으로 이루어집니다.
애플리케이션을 사용하지 않는다고 가정하면 애플리케이션에 리소스가 할당되지 않습니다. 따라서 앱에서 실제로 소비하는 리소스에 대한 비용을 지불하게 됩니다.
서버리스 모델을 만드는 주된 목적은 프로덕션 환경으로의 코드 배포 프로세스를 간소화하는 것입니다.
많은 경우 마이크로서비스와 같은 기존 스타일에서도 작동합니다.
서버리스가 배포되면 서버리스가 구동하는 애플리케이션은 수요에 신속하게 대응하고 필요에 따라 자동으로 확장 또는 축소됩니다.
서버리스 컴퓨팅은 이벤트 중심 모델을 사용하여 확장 요구 사항을 결정합니다.
따라서 개발자는 더 이상 애플리케이션의 사용량을 예측하여 필요한 서버나 대역폭의 수를 결정할 필요가 없습니다.
사전 예약 없이 증가하는 요구 사항에 따라 더 많은 서버와 대역폭을 요청하거나 언제든지 번거로움 없이 규모를 축소할 수 있습니다.
서버리스 컴퓨팅 사례
서버리스 모델의 대표적인 사용자로는 Slack, Coca-Cola, NetFlix 등이 있습니다.
서버리스 모델은 고유한 특성으로 인해 다음과 같은 많은 사용 사례에 적합합니다.
- 웹 애플리케이션
이 모델을 사용하면 사용자 요구에 빠르게 응답하는 빠르고 확장 가능한 웹 애플리케이션을 구축할 수 있습니다.
즉시 시작할 수 있는 상태 비저장 앱과 예측할 수 없고 드물게 급증하는 사용자 수요에 대응할 수 있는 앱을 구축하는 데 이상적입니다. - API 백엔드
서버리스 플랫폼에서는 모든 함수를 클라이언트에서 바로 사용할 수 있는 HTTP 엔드포인트로 쉽게 전환할 수 있습니다.
이러한 함수 또는 액션을 웹에서 활성화하면 웹 액션이라고 합니다. 이러한 기능이 활성화되면 함수를 완전한 API로 조립하는 것이 쉬워집니다. - 마이크로 서비스
서버리스는 단일 기능을 수행하고 API를 사용하여 서로 통신할 수 있는 소규모 서비스를 구축하는 데 중점을 두는 마이크로서비스 모델에서 널리 사용됩니다.
서버리스는 한 가지 기능을 수행하는 더 작은 코드 줄을 용이하게 하며, 신속한 프로비저닝, 자동 확장, 리소스를 사용하지 않을 때 고객에게 요금을 청구하지 않는 유연한 요금제를 제공합니다. - 데이터 처리
서버리스는 비디오, 오디오, 이미지, 구조화된 텍스트가 포함된 데이터 작업에 적합합니다. 또한 데이터 유효성 검사, 변환, 강화, 정리, 오디오 정규화, PDF 처리와 같은 다양한 작업에도 유리합니다. - 스트림/배치 처리
서비스형 애플리케이션(FaaS)과 데이터베이스를 사용하여 강력한 스트리밍 앱과 데이터 파이프라인을 만들 수 있으며, Apache Kafka를 통해 데이터베이스를 구축할 수 있습니다.
서버리스 모델은 앱 로그, IoT 센서, 비즈니스 로직, 금융 시장용 데이터 등 다양한 스트림 수집에 적합합니다. - 병렬 계산
서버리스는 각 작업이 병렬로 실행되어 특정 작업을 실행하는 병렬 계산과 관련된 작업에 탁월합니다.
여기에는 데이터 검색, 처리, 지도 작업, 웹 스크래핑, 게놈 처리, 하이퍼파라미터 튜닝 등이 포함될 수 있습니다. - 기타 용도
서버리스는 고객 관계 관리(CRM), 금융, 챗봇, 비즈니스 인텔리전스 및 분석 등 다양한 애플리케이션에도 사용됩니다.
참고로 서버리스는 일부 경우에 적합하지 않을 수 있습니다. 예를 들어 워크로드가 예측 가능하고 거의 일정한 대규모 앱의 경우 기존 시스템 아키텍처가 더 유리할 수 있습니다.
서버리스 컴퓨팅 장단점
모든 동전에는 양면성이 있듯이 서버리스 아키텍처도 마찬가지입니다.
또한 다양한 매개변수에 따라 몇 가지 장단점이 있습니다. 따라서 진행하기 전에 양쪽을 모두 파악하여 조직에 더 나은지 아닌지를 결정하는 것이 중요합니다.
서버리스 장점
다음은 서버리스 아키텍처의 주요 장점입니다.
- 비용 효율성
서버리스는 사용한 리소스에 대해서만 비용을 지불하는 종량제 모델을 사용합니다.
서버리스 공급자는 할당된 메모리와 코드 실행 시간에 대해서만 요금을 청구하므로 유휴 시간에 대한 비용이 발생하지 않습니다. - 확장성
서버리스 시스템은 필요에 따라 언제든지 확장하거나 축소할 수 있으므로 높은 수준의 확장성을 제공합니다. - 지연 시간 단축
앱이 단일 오리진 서버에서 호스팅되지 않으므로 어디서나 코드를 실행할 수 있습니다. 따라서 사용자 요청과 서버 사이의 거리가 짧아져 지연 시간이 줄어듭니다. - 생산성
서버리스 모델은 서버 관리를 처리할 필요가 없으므로 개발자의 생산성 향상에 도움이 됩니다. 또한 코드에서 직접 HTTP 요청 관리나 멀티스레딩에 대해 고민할 필요가 없습니다.
결과적으로 노출된 코드가 이벤트 중심 함수인 FaaS 덕분에 백엔드 개발이 간소화됩니다. 이 모든 것이 코드와 애플리케이션 개선에 투자할 수 있는 시간을 절약해 줍니다. - 빠른 앱 배포
서버리스에서는 개발자가 앱 버전을 배포하기 위해 백엔드 구성을 수행하거나 서버에 코드를 업로드하지 않아도 됩니다.
또한 코드를 비트 단위로 빠르게 업로드하여 새로운 제품을 출시할 수 있습니다.
서버리스 단점
- 성능
사용 빈도가 낮은 서버리스 코드는 전용 서버, 소프트웨어 컨테이너 또는 가상 머신(VM)에서 지속적으로 실행되는 코드보다 응답 지연 시간이 더 길어질 수 있습니다.
다시 시작하는 데 더 많은 시간이 필요하고 지연 시간이 추가로 발생할 수 있기 때문입니다. - 디버깅 및 테스트의 어려움
코드를 배포한 후에는 코드가 어떻게 작동하는지 알아야 합니다. 이를 위해서는 테스트가 필요한데, 서버리스 환경에서는 테스트가 어렵습니다.
또한 개발자가 각 백엔드 프로세스에 대한 가시성이 부족하고 앱이 더 작은 기능으로 나뉘어져 있기 때문에 디버깅이 복잡해집니다. - 보안 문제
새롭고 진보된 사이버 보안 문제가 점점 더 커지고 있습니다. 하지만 클라우드 제공업체의 보안을 완벽하게 파악하거나 측정하는 것은 불가능합니다.
따라서 애플리케이션에 저장된 민감한 데이터로 전체 백엔드를 처리하는 경우 위험할 수 있습니다. - 장기간 실행되는 애플리케이션 프로세스에 적합하지 않음
서버리스는 비용 효율적이지만 모든 유형의 애플리케이션에 적합한 것은 아닙니다.
장기간 실행되는 프로세스가 있는 애플리케이션의 경우, 시간과 할당된 리소스에 따라 실행 비용이 매우 높을 수 있습니다.
이때는 전용 서버 호스팅을 사용하는 것이 좋습니다. - 기타 서버리스의 다른 단점으로는 공급업체 간 전환이 어렵다는 점과 개인정보 보호 문제가 있습니다.
맺음말 서버리스 컴퓨팅 개념과 장단점
지금까지 서버리스 컴퓨팅 개념과 장단점에 대해서 자세히 살펴보았습니다.
서버리스 컴퓨팅은 확장성이 뛰어난 애플리케이션에 대한 수요가 증가함에 따라 발전하고 있습니다. 또한 편의성, 비용 효율성, 생산성 향상 등 클라우드 컴퓨팅이 제공하는 많은 이점을 제공합니다.
O’Reilly 의 설문조사에 따르면 응답자의 40%가 서버리스 아키텍처를 도입한 기업에서 근무하고 있다고 합니다.
서버리스에는 콜드 스타트, 테스트, 디버깅 등으로 인한 지연 시간 등 여전히 몇 가지 우려 사항이 있지만 클라우드 제공업체는 이를 해결하기 위해 노력하고 있습니다.
조만간 더 많은 이점을 제공하고 문제를 해결한 보다 정교한 형태의 서버리스가 등장할 수 있습니다.
따라서 서버리스 모델의 인기와 사용은 앞으로 더욱 늘어날 것으로 예상됩니다.