Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

서버리스 컴퓨팅 모델 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:25

서버리스 컴퓨팅 모델

정의

클라우드 제공자가 서버 인프라를 동적으로 관리하고, 애플리케이션 실행을 위해 필요한 컴퓨팅 리소스를 자동으로 할당하는 클라우드 컴퓨팅 실행 모델

핵심 개념

이벤트 기반 실행, 자동 확장, 사용한 만큼만 과금(Pay-per-use)

주요 서비스

AWS Lambda, Azure Functions, Google Cloud Functions

실행 단위

함수(Function) (또는 마이크로서비스)

주요 이점

인프라 관리 부담 감소, 높은 확장성, 비용 효율성

주요 도전 과제

콜드 스타트(Cold Start), 벤더 종속성, 복잡한 디버깅

기술 상세

동작 방식

이벤트(예: HTTP 요청, 파일 업로드, 메시지 큐) 발생 시 함수를 실행하는 컨테이너를 프로비저닝하고 실행

과금 모델

실행 횟수와 실행 시간(일반적으로 100ms 단위)을 기준으로 과금

적합한 워크로드

마이크로서비스 아키텍처(MSA), 데이터 처리 파이프라인, 실시간 파일 처리, API Gateway 백엔드, 예약 작업

부적합한 워크로드

장시간 실행 프로세스, 상태 유지가 필요한 애플리케이션, 예측 가능한 고정 부하

관련 아키텍처 패턴

이벤트 주도 아키텍처(EDA), 백엔드 포 브론트엔드(BFF)

주요 구성 요소

함수 코드, 트리거(이벤트 소스), 런타임 환경, 로깅 및 모니터링 도구

배포 방식

함수 코드 패키지(예: ZIP 파일, 컨테이너 이미지)를 업로드하여 배포

보안

함수별 실행 역할(IAM), 네트워크 격리(VPC, 프라이빗 엔드포인트), 시크릿 관리

모니터링

분산 추적, 함수 지표(실행, 지연 시간, 오류), 구조화된 로깅

서버리스 데이터베이스

서버리스 모델과 연동되는 데이터 저장소(예: Amazon DynamoDB, Azure Cosmos DB 서버리스 용량 모드)

1. 개요

서버리스 컴퓨팅 모델은 개발자가 서버 인프라의 프로비저닝, 관리, 확장에 대한 부담 없이 애플리케이션 코드를 실행할 수 있게 하는 클라우드 실행 모델이다. 이 모델의 핵심은 인프라 관리 책임이 클라우드 공급자에게 완전히 위임된다는 점에 있다. 개발자는 함수(Function) 단위의 코드를 작성하여 배포하면, 공급자 플랫폼이 이 코드의 실행, 스케일링, 가용성 보장, 모니터링을 모두 처리한다.

이 모델은 특히 데이터 처리 작업과 잘 맞는다. 데이터의 생성, 이동, 변환, 분석과 관련된 작업은 종종 예측 불가능한 부하 패턴이나 주기적인 배치 작업을 수반하는데, 서버리스 컴퓨팅의 사용량 기반 과금 및 자동 확장 특성은 이러한 변동성에 효율적으로 대응할 수 있게 해준다. 데이터가 이벤트로 발생하면, 이를 트리거로 하여 특정 함수가 실행되어 데이터를 처리하는 구조가 일반적이다.

주요 구성 요소로는 FaaS(Function as a Service)와 BaaS(Backend as a Service)가 있다. FaaS는 서버리스 컴퓨팅의 핵심 실행 환경으로, AWS Lambda, Azure Functions, Google Cloud Functions 등이 대표적이다. BaaS는 데이터베이스, 인증, 스토리지 등 서버 측 기능을 완전 관리형 서비스로 제공하여, 개발자가 백엔드 로직을 직접 구현할 필요를 줄여준다.

서버리스 컴퓨팅의 도입은 애플리케이션 개발과 운영의 패러다임을 바꾸었다. 이는 마이크로서비스 아키텍처의 구현을 단순화하고, 운영 오버헤드를 줄이며, 비용을 실행 시간과 사용한 리소스에 따라 정확하게 지불하는 세분화된 모델을 가능하게 한다. 결과적으로 조직은 인프라 관리보다 비즈니스 로직과 데이터 가치 창출에 더 집중할 수 있게 되었다.

2. 서버리스 컴퓨팅의 핵심 개념

서버리스 컴퓨팅의 핵심은 개발자가 서버 인프라의 프로비저닝, 관리, 확장에 대한 부담 없이 코드를 실행할 수 있게 하는 데 있다. 이 모델은 클라우드 컴퓨팅의 진화된 형태로, 서버 관리 책임이 클라우드 제공자에게 완전히 위임된다. 사용자는 애플리케이션 로직과 데이터 처리 코드에만 집중하며, 인프라는 필요에 따라 자동으로 할당되고 관리된다.

주요 구성 요소는 이벤트 기반 실행 모델과 FaaS이다. FaaS는 함수 단위의 코드를 실행하는 서비스로, API 게이트웨이, 메시지 큐, 객체 스토리지의 파일 업로드 등 다양한 이벤트 소스에 의해 트리거된다. 함수는 상태를 저장하지 않는(Stateless) 방식으로 설계되며, 각 실행은 독립적이다. 이는 전통적인 모놀리식 아키텍처나 항상 실행 중인 서버와는 대조적이다.

서버리스의 또 다른 핵심 특징은 완전 자동화된 확장성과 내결함성이다. 트래픽이 급증하면 플랫폼이 자동으로 더 많은 함수 인스턴스를 생성하여 요청을 병렬 처리한다. 반대로 트래픽이 없을 때는 인스턴스가 0으로 축소되어 유휴 비용이 발생하지 않는다. 인프라의 장애 조치는 플랫폼 차원에서 관리되며, 함수는 일반적으로 여러 가용 영역에 걸쳐 배포되어 고가용성을 보장한다.

과금 모델은 사용량 기반으로, 실행 횟수, 실행 시간, 할당된 메모리 크기에 따라 비용이 청구된다. 이는 전통적인 시간 단위로 서버를 임대하는 방식과 근본적으로 다르다. 사용자는 코드가 실제로 실행된 시간에 대해서만 비용을 지불하며, 유휴 상태의 인프라에 대한 비용은 전혀 발생하지 않는다. 이는 예측 불가능하거나 간헐적인 워크로드에 특히 경제적이다.

2.1. 이벤트 기반 실행과 FaaS

서버리스 컴퓨팅의 실행 모델은 전통적인 상시 실행 서버와 근본적으로 다릅니다. 이 모델의 핵심은 이벤트 기반 실행과 FaaS입니다. 애플리케이션 코드는 특정 이벤트에 의해 트리거될 때만 실행되는 함수 단위로 패키징되고 배포됩니다. 이러한 이벤트는 HTTP 요청, 파일 업로드, 데이터베이스 변경, 메시지 큐의 메시지 도착, 예약된 시간 등 다양합니다. 개발자는 서버 프로비저닝, 운영 체제 관리, 런타임 패치와 같은 인프라 관리 부담 없이 비즈니스 로직에만 집중할 수 있습니다.

FaaS는 이 개념을 구현한 핵심 서비스입니다. AWS Lambda, Azure Functions, Google Cloud Functions 등이 대표적입니다. 개발자는 코드를 함수 형태로 업로드하고, 실행할 런타임(예: Node.js, Python, Java)과 트리거할 이벤트 소스를 지정합니다. 이후 플랫폼은 함수 코드를 컨테이너에 패키징하고, 이벤트가 발생할 때마다 해당 컨테이너 인스턴스를 실행하여 요청을 처리합니다. 함수 실행이 완료되면 인스턴스는 일반적으로 종료되며, 지속적인 상태를 유지하지 않습니다.

이벤트 기반 실행의 주요 특징은 다음과 같습니다.

특징

설명

이벤트 소스

함수를 실행시키는 외부 신호. API Gateway, 객체 스토리지, 스트리밍 데이터 서비스 등이 될 수 있다.

짧은 실행 시간

함수는 일반적으로 밀리초에서 최대 수 분 내에 실행을 완료하도록 설계된다.

무상태성

각 함수 실행은 독립적이며, 로컬 디스크나 메모리에 지속적인 상태를 저장하지 않는다. 필요한 상태는 외부 데이터 저장소에 보관한다.

높은 병렬성

수많은 이벤트가 동시에 발생하면 플랫폼은 필요한 만큼의 함수 인스턴스를 병렬로 생성하여 처리한다.

이 모델은 데이터 처리 시나리오에 특히 적합합니다. 예를 들어, 객체 스토리지에 새 파일이 업로드되면 이를 트리거로 함수가 실행되어 파일 내용을 처리하거나, 데이터베이스 테이블에 변경이 생기면 그 변경 사항을 다른 시스템에 전파하는 함수가 실행될 수 있습니다. 이는 마이크로서비스 아키텍처를 구성하거나 ETL 작업을 구현하는 데 효과적인 기반을 제공합니다.

2.2. 자동 확장과 내결함성

서버리스 컴퓨팅의 자동 확장은 개발자의 명시적 개입 없이 워크로드의 변화에 따라 컴퓨팅 리소스가 동적으로 조정되는 기능이다. FaaS 플랫폼은 들어오는 요청이나 이벤트의 수에 비례하여 함수 인스턴스를 자동으로 생성하거나 제거한다. 이는 트래픽이 급증하는 시간대에 수평적으로 확장하여 성능을 유지하고, 트래픽이 감소하면 인스턴스를 줄여 리소스를 효율적으로 관리한다. 확장 정책은 일반적으로 사전 정의된 한도 내에서 완전히 관리되며, 사용자는 용량 계획이나 서버 프로비저닝에 대해 고민할 필요가 없다.

내결함성은 시스템의 일부 구성 요소에 장애가 발생하더라도 전체 서비스가 중단되지 않고 계속 작동할 수 있는 능력을 의미한다. 서버리스 플랫폼은 이를 위해 여러 가용 영역에 함수 인스턴스와 트리거를 자동으로 분산 배포한다. 단일 인스턴스나 물리적 서버에 장애가 발생하면, 플랫폼은 자동으로 요청을 다른 정상 인스턴스로 라우팅하여 장애를 격리하고 처리 지속성을 보장한다. 또한 플랫폼은 기본적인 재시도 메커니즘과 데드 레터 큐와 같은 기능을 제공하여 일시적인 오류를 처리한다.

자동 확장과 내결함성은 밀접하게 연관되어 작동한다. 확장 메커니즘은 트래픽 부하를 분산시켜 단일 지점의 과부하를 방지함으로써 장애 가능성을 줄인다. 반대로, 내결함성 아키텍처는 확장 과정에서 발생할 수 있는 개별 인스턴스의 장애를 흡수하여 서비스의 전반적인 안정성을 높인다. 이 두 특성의 결합은 예측 불가능한 트래픽 패턴을 가진 데이터 처리 애플리케이션, 예를 들어 실시간 스트리밍 데이터 분석이나 변동성이 큰 API 백엔드에 특히 유용하다.

2.3. 사용량 기반 과금 모델

서버리스 컴퓨팅의 과금 모델은 사용한 컴퓨팅 리소스의 양과 실행 시간에 기반하여 비용이 청구되는 사용량 기반 과금 방식을 채택한다. 이는 전통적인 클라우드 컴퓨팅 모델에서 서버 인스턴스를 프로비저닝하고 유지 관리하는 시간에 따라 비용이 발생하는 방식과 근본적으로 다르다. 사용자는 코드가 실제로 실행된 시간(일반적으로 100밀리초 단위)과 실행 횟수에 대해서만 비용을 지불하며, 코드가 유휴 상태일 때는 비용이 전혀 발생하지 않는다.

주요 클라우드 제공업체의 과금 구조는 일반적으로 다음 두 가지 요소로 구성된다.

과금 요소

설명

예시 (AWS Lambda 기준)

실행 요청 수

함수가 트리거되어 실행된 횟수에 따라 과금

매월 처음 100만 회의 요청은 무료, 이후 100만 회당 요금 부과

실행 시간(GB-초)

할당된 메모리 크기(GB)와 코드 실행 시간(초)을 곱한 값

매월 400,000 GB-초까지 무료, 이후 사용량에 따라 과금

이 모델은 특히 간헐적이거나 예측 불가능한 워크로드를 처리하는 데이터 처리 애플리케이션에 큰 비용 이점을 제공한다. 예를 들어, 이벤트 기반 아키텍처에서 객체 스토리지에 새 파일이 업로드될 때만 트리거되어 데이터를 변환하거나, 스트리밍 데이터의 일괄 처리를 위해 주기적으로 실행되는 함수의 경우, 서버를 24시간 가동할 필요가 없다. 사용자는 실제 처리 작업이 발생한 순간에만 비용을 지불하므로, 리소스의 유휴 시간에 대한 비용을 절감할 수 있다.

그러나 이 모델은 장시간 실행되는 연속적인 워크로드에는 덜 효율적일 수 있다. 높은 빈도로 지속적으로 실행되는 함수의 경우, 전용 서버 인스턴스를 사용하는 것이 경제적으로 더 유리할 수 있다. 또한, 콜드 스타트로 인한 지연 시간이 비용에는 직접 영향을 미치지 않지만, 전체 시스템 성능과 사용자 경험에 간접적인 영향을 줄 수 있다는 점을 고려해야 한다. 따라서 애플리케이션의 트래픽 패턴과 실행 프로필을 분석하여 서버리스 과금 모델의 경제성을 평가하는 것이 중요하다.

3. 데이터 처리 패턴

서버리스 컴퓨팅에서 데이터 처리 패턴은 주로 이벤트 소스에서 데이터를 수신하고, 함수(FaaS)를 트리거하여 변환 또는 분석 작업을 수행한 후, 결과를 다른 대상으로 전달하는 흐름을 중심으로 구성된다. 이러한 패턴은 처리 지연 시간과 데이터의 특성에 따라 크게 스트리밍 데이터 처리와 배치 데이터 처리로 구분된다. 또한, 데이터를 저장소 간에 이동하고 변환하는 ETL 또는 ELT 파이프라인 구축에도 널리 활용된다.

스트리밍 데이터 처리는 데이터가 생성되는 대로 실시간 또는 준실시간으로 처리하는 패턴이다. 카프카, Kinesis, Pub/Sub 같은 메시지 큐 또는 이벤트 스트림 서비스에 도착하는 각 레코드나 메시지가 AWS Lambda나 Azure Functions 같은 서버리스 함수를 트리거한다. 함수는 데이터를 필터링, 집계, 강화하거나 이상을 탐지하여 실시간 대시보드, 알림 시스템, 또는 실시간 분석 저장소에 결과를 출력한다. 이 패턴은 낮은 지연 시간이 요구되는 사용 사례에 적합하다.

배치 데이터 처리는 대량의 데이터를 주기적 또는 일괄적으로 처리하는 패턴이다. 일반적으로 Amazon S3나 Google Cloud Storage 같은 객체 스토리지에 새 파일이 업로드되는 이벤트(예: PUT 이벤트)가 함수 실행을 시작한다. 함수는 파일을 읽어 변환, 정제, 집계 작업을 수행하고, 처리 결과를 다른 저장소나 데이터 웨어하우스에 기록한다. 이 패턴은 일일 리포트 생성, 대규모 데이터 세트 변환, 오프라인 분석 작업에 효율적이다.

ETL/ELT 파이프라인 구축은 서버리스 아키텍처의 대표적 적용 사례이다. 전통적인 ETL(추출, 변환, 적재) 또는 현대적인 ELT(추출, 적재, 변환) 흐름의 각 단계가 개별 함수로 구현될 수 있다. 예를 들어, 소스 시스템의 변경 데이터 캡처(CDC) 이벤트가 함수를 트리거하여 데이터를 추출하고, 변환 함수를 체이닝하거나 AWS Step Functions 같은 오케스트레이션 서비스로 조정하여 변환 로직을 실행한 후, 최종적으로 Amazon Redshift나 BigQuery 같은 분석 저장소에 적재한다. 이 접근 방식은 관리 오버헤드를 줄이고 확장성을 제공한다.

처리 패턴

주요 트리거 이벤트

일반적인 출력 대상

적합한 사용 사례

스트리밍 처리

메시지 스트림(카프카, Kinesis) 도착

실시간 대시보드, 다른 스트림, 알림

실시간 모니터링, 사기 탐지, 실시간 추천

배치 처리

객체 스토리지 파일 업로드 완료

데이터 웨어하우스, 다른 저장소, 리포트

일일 집계, 로그 분석, 대규모 데이터 변환

ETL/ELT 파이프라인

데이터베이스 변경 이벤트, 스케줄러

분석 데이터베이스, 데이터 마트

데이터 통합, 비즈니스 인텔리전스, 데이터 마이그레이션

3.1. 스트리밍 데이터 처리

스트리밍 데이터 처리는 서버리스 컴퓨팅 모델에서 지속적으로 생성되는 실시간 데이터 흐름을 분석하고 변환하는 패턴을 의미한다. 이 패턴은 이벤트 기반 실행과 FaaS의 특성과 매우 잘 부합하며, AWS Lambda, Azure Functions, Google Cloud Functions 같은 서비스를 통해 Kinesis Data Streams, Event Hubs, Pub/Sub 같은 스트리밍 데이터 소스에 연결하여 구현된다. 데이터 스트림의 각 레코드나 일정 시간 단위의 배치는 별도의 함수 인스턴스를 트리거하여 처리된다.

주요 처리 작업에는 실시간 집계(예: 분당 거래 금액 합계), 필터링, 강화(다른 데이터 소스와 조인), 이상 탐지, 그리고 데이터 변환이 포함된다. 서버리스 함수는 이러한 작업을 수행한 후 결과를 다른 스트리밍 처리 단계, 실시간 대시보드, 저비용 저장소나 데이터 웨어하우스로 전달한다. 이 아키텍처는 전통적인 장기 실행 스트리밍 클러스터를 관리할 필요 없이 실시간 인사이트를 제공할 수 있다.

서버리스 스트리밍 처리의 주요 이점은 탄력적인 확장성과 세분화된 비용 모델이다. 데이터 유입 속도에 따라 처리 능력이 자동으로 확장되며, 실제 처리된 데이터 볼륨과 함수 실행 시간에 대해서만 비용이 발생한다. 그러나 짧은 실행 제한 시간, 콜드 스타트로 인한 지연, 그리고 상태 비저장(stateless) 특성으로 인한 처리 상태 관리의 복잡성은 고려해야 할 도전 과제이다. 이러한 한계를 극복하기 위해 외부 상태 저장소를 활용하거나, Step Functions 같은 오케스트레이션 서비스를 조합하여 복잡한 스트리밍 워크플로를 구성하기도 한다[1].

처리 단계

설명

대표 서비스/패턴 예시

데이터 수집

소스 시스템에서 실시간 데이터 스트림을 생성하고 전달

Kinesis Data Streams, Kafka, MQTT

실시간 처리

스트림 데이터를 변환, 필터링, 집계

AWS Lambda, Azure Functions

결과 저장/전송

처리 결과를 저장소나 다음 시스템으로 출력

S3, DynamoDB, BigQuery, 또 다른 스트림

3.2. 배치 데이터 처리

배치 데이터 처리는 대량의 데이터를 일정한 간격으로 모아 한꺼번에 처리하는 방식을 말한다. 이 방식은 실시간 처리가 필요하지 않은 대규모 데이터 분석, 보고서 생성, 데이터 변환 작업에 적합하다. 서버리스 컴퓨팅 환경에서는 AWS Lambda, Azure Functions, Google Cloud Functions 같은 FaaS 플랫폼을 활용하여 이러한 배치 작업을 스케줄링하고 실행한다.

서버리스 배치 처리의 일반적인 패턴은 객체 스토리지에 축적된 데이터 파일(예: CSV, JSON, Parquet 형식)을 트리거로 사용하는 것이다. 예를 들어, 매일 자정에 새로운 데이터 파일이 Amazon S3 버킷에 업로드되면, 이 이벤트가 AWS Lambda 함수를 자동으로 실행시켜 데이터를 처리하도록 구성할 수 있다. 또는 CloudWatch Events나 Azure Scheduler 같은 서비스를 이용해 정해진 시간에 함수를 직접 호출하는 스케줄 기반 패턴도 널리 사용된다.

서버리스 배치 처리의 주요 이점은 인프라 관리 부담 없이 대용량 작업을 처리할 수 있는 탄력적인 확장성과 정밀한 사용량 기반 과금이다. 단일 함수 실행 시간 제한(일반적으로 15분)은 큰 도전 과제이나, 이를 해결하기 위해 작업을 작은 청크로 분할하거나 AWS Step Functions, Azure Durable Functions 같은 오케스트레이션 서비스를 이용해 장시간 실행 흐름을 조정하는 패턴이 사용된다. 다음은 전통적 방식과의 간략한 비교이다.

특성

전통적 배치 처리 (예: 온프레미스 서버)

서버리스 배치 처리 (예: FaaS 활용)

인프라 관리

서버 프로비저닝, 패치, 모니터링 필요

완전 관리형, 인프라 관리 불필요

확장성

수동 또는 제한적 자동 확장

이벤트 발생 시 완전 자동 확장

비용 모델

사용 여부와 관계없이 서버 유지 비용 발생

실제 리소스 소비 시간(GB-초/ms)에 따라 과금

작업 지속 시간

장시간 실행(수 시간~수 일) 가능

일반적으로 함수별 실행 시간 제한 존재 (예: 15분)

일반적인 사용 사례로는 일일 판매 리포트 생성, 대규모 이미지 또는 문서의 일괄 변환(예: 썸네일 생성, 포맷 변환), 데이터 웨어하우스의 정기적 갱신(ETL), 그리고 로그 파일 분석 등이 있다.

3.3. ETL/ELT 파이프라인

ETL은 데이터를 소스 시스템에서 추출(Extract)하여 변환(Transform)한 후 목표 데이터 웨어하우스나 데이터 레이크에 적재(Load)하는 전통적인 프로세스이다. 반면 ELT는 추출 후 먼저 데이터를 대상 저장소에 적재하고, 그 안에서 변환을 수행하는 패턴이다. 서버리스 컴퓨팅은 FaaS를 활용해 이 두 패턴을 구현하는 데 적합한 플랫폼을 제공한다. 함수는 데이터가 도착하는 즉시 트리거되어 작업을 수행하고, 완료 후 자동으로 종료된다.

서버리스 ETL/ELT 파이프라인은 일반적으로 이벤트 기반 아키텍처로 구성된다. 예를 들어, AWS Lambda 함수는 Amazon S3 버킷에 새 파일이 업로드되거나, Amazon DynamoDB 스트림에 변경 사항이 기록되거나, Amazon Kinesis 스트림에 데이터가 도착할 때 자동으로 실행될 수 있다. 이 함수는 데이터를 읽어 필요한 필터링, 정제, 집계 또는 형식 변환을 수행한 후, 변환된 데이터를 Amazon Redshift, Snowflake, Google BigQuery 같은 분석 저장소나 또 다른 데이터 레이크로 전달한다. 주요 서버리스 오케스트레이션 서비스(예: AWS Step Functions, Azure Durable Functions)를 사용하면 복잡한 변환 워크플로우의 순서와 상태를 관리할 수 있다.

서버리스 접근 방식의 주요 이점은 탄력적인 확장성과 정밀한 비용 관리이다. 데이터 볼륨이 갑자기 증가하거나 배치 작업이 실행될 때 플랫폼이 자동으로 필요한 컴퓨팅 리소스를 확장하여 처리한다. 작업이 없을 때는 리소스가 프로비저닝되지 않아 인프라 비용이 발생하지 않는다. 이는 변환 작업이 불규칙하거나 예측하기 어려운 데이터 흐름에 특히 유용하다. 또한, 관리형 서비스들은 내장된 내결함성과 재시도 메커니즘을 제공하여 파이프라인의 신뢰성을 높인다.

패턴

실행 트리거 예시

변환 수행 위치

적합한 사용 사례

ETL (서버리스)

S3 파일 업로드, 스케줄된 이벤트

함수 내부 또는 전용 변환 서비스[2]

소스 데이터 정제가 필수적일 때, 규제 준수를 위한 데이터 마스킹

ELT (서버리스)

데이터 레이크 적재 완료 이벤트

목표 분석 데이터베이스 내부[3]

원본 데이터 보존이 중요할 때, 분석가의 ad-hoc 변환 요구에 대응

이러한 파이프라인을 설계할 때는 함수의 최대 실행 시간 제한, 콜드 스타트로 인한 지연, 그리고 분산 환경에서의 데이터 일관성 보장과 같은 과제를 고려해야 한다. 장기 실행되거나 대용량 데이터를 메모리에서 처리해야 하는 변환 작업의 경우, AWS Fargate 같은 서버리스 컨테이너 옵션이 더 적합할 수 있다.

4. 데이터 저장소와의 통합

서버리스 컴퓨팅 모델은 다양한 유형의 데이터 저장소와 긴밀하게 통합되어 데이터 중심 애플리케이션을 구축하는 데 핵심적인 역할을 한다. 이 통합은 주로 이벤트 기반 아키텍처를 통해 이루어지며, 데이터 저장소의 상태 변화가 트리거가 되어 서버리스 함수를 실행한다. 이를 통해 데이터 생성, 수정, 삭제와 같은 이벤트에 반응하는 자동화된 데이터 처리 파이프라인을 구성할 수 있다.

주요 통합 대상은 크게 객체 스토리지, NoSQL 데이터베이스, 관계형 데이터베이스로 구분된다. Amazon S3와 같은 객체 스토리지에 새 파일이 업로드되거나 기존 파일이 변경되면, 이를 이벤트로 감지해 AWS Lambda 함수를 실행하여 이미지 리사이징, 데이터 유효성 검사, 로그 분석 등의 작업을 수행한다. DynamoDB나 Azure Cosmos DB 같은 관리형 NoSQL 데이터베이스에서는 테이블의 항목이 생성, 업데이트, 삭제될 때마다 스트림을 생성하고, 이 스트림 레코드를 서버리스 함수가 처리하여 실시간 알림 전송이나 데이터 보강 작업을 한다.

관계형 데이터베이스와의 통합은 전통적으로 연결 관리의 복잡성으로 인해 어려움이 있었으나, Aurora Serverless나 Azure SQL Database serverless와 같은 서버리스 옵션의 등장으로 패러다임이 변화했다. 이러한 서버리스 데이터베이스는 사용량에 따라 자동으로 용량을 확장하거나 축소하며, 필요할 때만 ACU를 기준으로 비용을 지불한다. 서버리스 함수는 HTTP 엔드포인트를 통해 또는 데이터베이스의 변경 이벤트를 구독하여 이러한 데이터베이스와 상호작용한다.

저장소 유형

대표 서비스 예시

주요 통합 패턴 및 용도

객체 스토리지

Amazon S3, Google Cloud Storage

파일 업로드/변경 시 ETL 작업, 미디어 처리, 백업 자동화

NoSQL 데이터베이스

DynamoDB, Cosmos DB, Firestore

데이터 변경 스트림 처리, 실시간 애플리케이션 백엔드, 사용자 프로필 관리

관계형 데이터베이스

Aurora Serverless, Azure SQL Database serverless

주기적인 리포트 생성, 마이크로서비스의 데이터 영속화, 이벤트 소싱 패턴 구현

이러한 통합은 인프라 관리 부담을 줄이면서도 데이터의 생명주기 전반에 걸쳐 유연하고 확장 가능한 처리를 가능하게 한다. 각 저장소의 고유한 이벤트 시스템과 서버리스 실행 환경의 결합은 현대적인 데이터 애플리케이션의 표준 아키텍처가 되었다.

4.1. 객체 스토리지 (예: S3)

객체 스토리지는 서버리스 컴퓨팅 모델과의 통합에서 핵심적인 역할을 수행하는 데이터 저장소이다. 파일 시스템이나 블록 스토리지와 달리, 데이터를 계층 구조가 아닌 평평한 네임스페이스 내에 객체 형태로 저장한다. 각 객체는 데이터 자체, 메타데이터, 그리고 고유한 식별자로 구성된다. 이러한 구조는 대용량의 비정형 데이터를 저장하고 검색하는 데 매우 적합하며, AWS S3가 대표적인 예시이다.

서버리스 함수는 객체 스토리지와의 통합을 통해 강력한 데이터 처리 워크플로를 구축한다. 일반적인 패턴은 객체 스토리지에 파일이 업로드되거나 변경될 때 이를 이벤트로 감지하여 서버리스 함수를 자동으로 트리거하는 것이다. 예를 들어, 사용자가 S3 버킷에 새로운 이미지 파일을 업로드하면, AWS Lambda 함수가 실행되어 이미지 리사이징, 메타데이터 추출 또는 분석 작업을 수행할 수 있다. 이는 완전히 자동화된 ETL 파이프라인이나 콘텐츠 처리 시스템의 기반이 된다.

객체 스토리지와 서버리스의 조합은 데이터 처리 아키텍처에 몇 가지 명확한 이점을 제공한다. 첫째, 스토리지와 컴퓨팅 리소스가 모두 탄력적으로 확장되므로 트래픽 급증에 대비한 용량 계획이 불필요하다. 둘째, 사용한 스토리지 용량과 함수 실행 횟수 및 시간에 대해서만 비용이 발생하는 사용량 기반 과금 모델을 구현한다. 마지막으로, 객체 스토리지의 높은 내구성과 가용성은 서버리스 함수가 처리하는 데이터의 안전한 보관을 보장한다.

통합 패턴

설명

일반적인 사용 사례

이벤트 기반 처리

S3 PutObject 또는 DeleteObject 같은 이벤트가 Lambda 함수를 트리거함.

업로드된 파일의 유효성 검사, 변환, 또는 다른 시스템으로의 전달.

대용량 데이터 처리

함수가 S3 객체를 스트리밍 방식으로 읽어 메모리 제약 없이 처리함.

대형 로그 파일 분석, 비디오 트랜스코딩 작업의 일부 단계.

데이터 레이크 기반

S3를 중앙 데이터 레이크로 사용하고, 서버리스 함수로 데이터를 정제 및 카탈로깅함.

데이터 레이크 내 원시 데이터의 표준화 및 데이터 웨어하우스 적재 준비.

이러한 통합은 데이터를 정적인 상태로 객체 스토리에 보관하고, 필요한 경우에만 서버리스 컴퓨팅 파워를 동적으로 할당하여 처리하는 경제적이고 효율적인 패러다임을 완성한다.

4.2. NoSQL 데이터베이스 (예: DynamoDB)

서버리스 애플리케이션에서 NoSQL 데이터베이스는 확장성과 관리 용이성으로 인해 핵심적인 데이터 저장소로 자리 잡았다. 특히 AWS DynamoDB와 같은 완전 관리형 서비스는 서버리스 패러다임과 높은 친화성을 보인다. 이러한 데이터베이스는 프로비저닝된 서버 인프라 없이도 요청에 따라 자동으로 확장되며, 사용한 만큼의 읽기/쓰기 용량에 대해서만 비용을 지불하는 모델을 제공한다[4]. 이는 예측 불가능한 트래픽 패턴을 보이는 서버리스 함수와의 통합에 이상적이다.

주요 NoSQL 서비스들은 이벤트 기반 아키텍처를 위한 내장 통합 기능을 갖추고 있다. 예를 들어, DynamoDB 스트림은 테이블의 항목 변경 사항(생성, 수정, 삭제)을 실시간으로 캡처하여 AWS Lambda 함수를 트리거할 수 있는 이벤트 소스로 작동한다. 이를 통해 데이터 변경에 반응하는 애플리케이션 로직(예: 집계 계산, 알림 전송, 검색 인덱스 갱신)을 쉽게 구축할 수 있다. 마찬가지로 Azure Cosmos DB는 변경 피드 기능을, Google Cloud Firestore는 실시간 업데이트 리스너를 제공한다.

서버리스 NoSQL 데이터베이스를 선택할 때는 데이터 모델, 일관성 요구사항, 접근 패턴을 신중히 고려해야 한다. 일반적으로 다음과 같은 특성을 가진 워크로드에 적합하다.

특성

설명

확장성 요구

급격히 변동하는 트래픽을 처리해야 하는 경우

스키마 유연성

빠르게 진화하는 애플리케이션 데이터 구조

저지연 읽기/쓰기

마이크로초 단위의 응답 시간이 중요한 경우

프로그래밍적 트랜잭션

단일 항목에 대한 ACID 트랜잭션이 필요한 경우[5]

반면, 복잡한 조인이나 강력한 다중 항목 트랜잭션이 필요한 경우에는 서버리스 관계형 데이터베이스가 더 나은 선택이 될 수 있다.

4.3. 관계형 데이터베이스 (예: Aurora Serverless)

관계형 데이터베이스는 전통적으로 서버리스 컴퓨팅 환경과의 통합에 어려움이 있었다. 이는 지속적인 연결 관리, 연결 풀링, 그리고 정적 인프라에 대한 의존성 때문이다. Aurora Serverless와 같은 서버리스 관계형 데이터베이스는 이러한 문제를 해결하기 위해 등장했다. 이는 완전 관리형 서비스로, 용량을 자동으로 프로비저닝하고 조정하며, 사용량에 따라 비용을 청구한다.

Aurora Serverless의 핵심은 ACU라는 단위로 측정되는 데이터베이스 용량이다. 시스템은 애플리케이션의 부하를 지속적으로 모니터링하며, 필요에 따라 ACU를 확장하거나 축소한다. 사용량이 없을 때는 용량을 0으로 줄여 비용을 최소화할 수 있다. 이는 예측하기 어려운 워크로드를 가진 애플리케이션, 개발/테스트 환경, 또는 간헐적으로 사용되는 애플리케이션에 특히 적합하다.

서버리스 함수(AWS Lambda)와의 통합은 이벤트 기반 아키텍처를 가능하게 한다. 예를 들어, DynamoDB 테이블에 데이터가 입력되면 Lambda 함수가 트리거되어 해당 데이터를 가공한 후 Aurora Serverless에 저장하는 패턴이 일반적이다. 또는 Aurora Serverless의 데이터 변경을 Amazon EventBridge를 통해 캡처하여 다운스트림 처리를 트리거할 수도 있다.

고려사항

설명

자동 확장 지연

부하 증가 시 용량을 확장하는 데 수십 초가 소요될 수 있어, 급격한 트래픽 증가에 대한 응답이 지연될 수 있다.

연결 관리

함수가 종료될 때 데이터베이스 연결을 적절히 닫지 않으면 연결 누수가 발생할 수 있다. 연결 풀링을 위한 외부 서비스나 프록시 사용을 고려해야 한다.

최소 용량 설정

빈번한 콜드 스타트를 방지하기 위해 최소 ACU를 0보다 높게 설정할 수 있지만, 이는 지속적인 비용이 발생함을 의미한다.

이러한 서버리스 관계형 데이터베이스는 기존의 RDS와 호환되는 MySQL 및 PostgreSQL 프로토콜을 지원하므로, 기존 애플리케이션의 마이그레이션 장벽을 낮춘다. 결과적으로, 서버리스 관계형 데이터베이스는 데이터 계층에도 탄력성과 비용 효율성을 제공하며, 완전한 서버리스 애플리케이션 스택을 구성하는 데 핵심 요소가 된다.

5. 주요 서비스 및 플랫폼

AWS Lambda는 서버리스 컴퓨팅의 대표적인 FaaS 서비스로, S3, DynamoDB, Kinesis 등 다양한 AWS의 데이터 서비스와 긴밀하게 통합된다. 예를 들어, S3에 새로운 객체가 업로드되거나 DynamoDB 테이블에 변경이 발생하면 이를 이벤트로 감지해 Lambda 함수를 트리거하여 데이터를 즉시 처리할 수 있다. 또한 AWS Glue는 서버리스 ETL 서비스로, 데이터 카탈로그를 관리하고 Spark 기반의 작업을 실행하여 데이터 레이크나 데이터 웨어하우스를 구축하는 데 활용된다.

Microsoft Azure의 Azure Functions는 이벤트에 반응하는 서버리스 코드 실행 플랫폼을 제공한다. Azure Blob Storage, Cosmos DB, Event Hubs와 같은 데이터 서비스와의 통합을 통해 실시간 데이터 처리 파이프라인을 구성하기 용이하다. 특히 Azure Data Factory는 서버리스 방식의 데이터 통합 서비스로, 복잡한 ELT 또는 ELT 워크플로를 오케스트레이션하고 다양한 데이터 원본 간의 데이터 이동을 조정하는 데 사용된다.

Google Cloud Platform에서는 Google Cloud Functions가 주요 FaaS 서비스이며, Pub/Sub, Cloud Storage, Firestore와의 통합을 지원한다. Google Cloud의 데이터 처리 강점은 BigQuery에 잘 나타나는데, 이는 완전 관리형의 서버리스 데이터 웨어하우스이다. BigQuery는 초대용량 데이터에 대한 초고속 SQL 쿼리와 실시간 분석을 가능하게 하며, Cloud Functions나 Cloud Dataflow(스트림 및 배치 처리 서비스)와 연동하여 종합적인 데이터 분석 솔루션을 구축할 수 있다.

플랫폼

주요 FaaS 서비스

대표 데이터 서비스 (예시)

서버리스 데이터 오케스트레이션/ETL

AWS

AWS Lambda

S3, DynamoDB, Kinesis, Aurora Serverless

AWS Glue, Step Functions

Microsoft Azure

Azure Functions

Azure Blob Storage, Cosmos DB, Event Hubs

Azure Data Factory

Google Cloud

Google Cloud Functions

Cloud Storage, BigQuery, Pub/Sub, Firestore

Cloud Dataflow, BigQuery

5.1. AWS Lambda 및 데이터 서비스

AWS Lambda는 서버리스 컴퓨팅 모델의 대표적인 FaaS 서비스이다. 이 서비스는 데이터 처리 워크로드와 긴밀하게 통합되어, 다양한 AWS 데이터 서비스에서 발생하는 이벤트에 반응하여 코드를 실행하는 데 특화되어 있다. 사용자는 서버 프로비저닝이나 관리 없이 데이터 처리 로직만 작성하여 업로드하면, AWS Lambda가 필요한 컴퓨팅 리소스를 자동으로 할당하고 실행한다.

주요 데이터 서비스와의 통합은 이벤트 소스 매핑을 통해 이루어진다. 예를 들어, Amazon S3 버킷에 새 객체가 생성되거나, Amazon DynamoDB 테이블에 항목이 수정되거나, Amazon Kinesis 또는 Amazon MSK 스트림에 새 레코드가 추가되면, 이 이벤트가 AWS Lambda 함수를 자동으로 트리거한다. 이를 통해 데이터가 생성되거나 변경되는 즉시 처리 로직이 실행되는 이벤트 기반 아키텍처를 쉽게 구축할 수 있다.

데이터 처리 파이프라인 구축을 위해 AWS Lambda는 다른 AWS 분석 서비스들과도 연동된다. 함수는 Amazon S3에서 데이터를 읽어 AWS Glue 작업을 시작하거나, 변환된 데이터를 Amazon Redshift나 Amazon Athena에 로드하는 작업을 수행할 수 있다. 또한 Step Functions를 사용하면 여러 Lambda 함수와 기타 서비스를 조합하여 복잡한 데이터 처리 워크플로우를 오케스트레이션할 수 있다.

통합 서비스

트리거 이벤트 예시

일반적인 데이터 처리 용도

Amazon S3

객체 생성(PUT), 삭제

이미지 리사이징, 로그 파일 처리, 데이터 변환

Amazon DynamoDB

테이블 항목 생성/수정/삭제

실시간 데이터 보강, 집계 계산, 보관

Amazon Kinesis / Amazon MSK

스트림에 새 레코드 도착

실시간 스트림 처리, 분석, 필터링

Amazon EventBridge

사용자 정의 이벤트 또는 일정

배치 작업 스케줄링, ETL 파이프라인 오케스트레이션

이러한 통합은 관리 오버헤드를 크게 줄이면서도 데이터 중심 애플리케이션의 확장성과 응답성을 제공한다. 사용자는 처리된 데이터 양과 함수 실행 시간에 대해서만 비용을 지불하는 사용량 기반 과금 모델의 이점을 누린다.

5.2. Azure Functions 및 데이터 솔루션

Azure Functions는 마이크로소프트의 서버리스 컴퓨팅 플랫폼으로, 이벤트 기반 코드 실행을 지원한다. 이 서비스는 Azure Blob Storage, Azure Cosmos DB, Azure Event Hubs 등 다양한 Azure 데이터 서비스와의 내장 트리거 및 바인딩을 통해 원활하게 통합된다. 개발자는 함수 코드에 집중할 수 있으며, 인프라 관리 부담은 플랫폼이 담당한다.

데이터 처리 시나리오에서 Azure Functions는 주로 트리거와 바인딩을 활용한다. 예를 들어, Blob Storage 컨테이너에 새 파일이 업로드되면 함수가 자동으로 트리거되어 해당 파일을 처리할 수 있다. 또는 Azure Service Bus의 큐 메시지, Event Hubs의 스트리밍 이벤트, Cosmos DB의 변경 피드도 일반적인 트리거 소스이다. 출력 바인딩을 사용하면 처리 결과를 다른 서비스(예: 다른 스토리지 컨테이너나 데이터베이스)에 쉽게 쓸 수 있다.

Azure의 데이터 솔루션과 연계한 주요 사용 패턴은 다음과 같다.

사용 패턴

관련 Azure 서비스

설명

스트리밍 데이터 처리

Azure Event Hubs, Azure Stream Analytics

Event Hubs로 수집된 실시간 데이터 스트림을 Functions로 처리하여 실시간 반응 또는 집계를 수행한다.

파일 기반 ETL/ELT

Azure Blob Storage, Azure Data Lake Storage

스토리지에 도착한 새 데이터 파일(CSV, JSON 등)을 트리거로 함수가 변환하여 Azure Synapse Analytics나 Azure SQL Database 등으로 로드한다.

서버리스 데이터베이스 작업

Azure Cosmos DB, Azure SQL Database (서버리스 계층)

Cosmos DB의 변경 피드를 구독하여 데이터 변경 시 관련 함수를 실행하거나, 서버리스 SQL 데이터베이스와 연동하여 주문형 쿼리를 처리한다.

메시지 기반 오케스트레이션

Azure Service Bus, Azure Queue Storage

메시지 큐를 통해 데이터 처리 작업을 분산하고, 함수를 통해 각 단계를 실행하여 복잡한 파이프라인을 구성한다.

이러한 통합을 통해 Azure Functions는 데이터 파이프라인의 개별 단계, 실시간 데이터 반응 처리, 또는 마이크로서비스 아키텍처의 이벤트 핸들러로서 효과적으로 활용된다. Durable Functions 확장을 사용하면 여러 함수를 오케스트레이션하여 상태 저장(long-running) 데이터 워크플로우를 구축할 수도 있다.

5.3. Google Cloud Functions 및 BigQuery

Google Cloud Functions는 Google Cloud Platform에서 제공하는 서버리스 FaaS 플랫폼이다. 이 서비스는 클라우드 이벤트나 HTTP 요청에 의해 코드 함수를 실행하며, 인프라 관리 없이 애플리케이션 로직에 집중할 수 있게 한다. 데이터 처리 시나리오에서 Google Cloud Functions는 종종 Google Cloud Pub/Sub, Cloud Storage, Firestore와 같은 다른 GCP 서비스와 결합되어 사용된다. 특히 BigQuery와의 통합은 강력한 데이터 분석 파이프라인을 구축하는 데 핵심적인 역할을 한다.

BigQuery는 Google Cloud의 완전 관리형 서버리스 데이터 웨어하우스이다. 이 서비스는 페타바이트 규모의 데이터에 대한 초고속 SQL 쿼리와 실시간 분석을 제공한다. Google Cloud Functions는 BigQuery와의 연동을 통해 데이터 수집, 변환, 적재 과정을 자동화하는 데 효과적으로 활용된다. 예를 들어, Cloud Storage에 새로운 파일이 업로드되거나 Pub/Sub에 메시지가 도착할 때 이를 트리거로 Cloud Functions가 실행되어 데이터를 가공한 후 BigQuery 테이블에 삽입하는 패턴이 일반적이다.

이 조합의 주요 데이터 처리 패턴은 다음과 같다.

처리 패턴

설명

관련 GCP 서비스

실시간 스트리밍 수집

Pub/Sub 스트림 데이터를 실시간으로 BigQuery에 삽입

Cloud Functions, Pub/Sub, BigQuery Streaming API

파일 기반 배치 적재

Cloud Storage에 도착한 CSV, JSON, Avro 파일을 BigQuery로 자동 로드

Cloud Functions, Cloud Storage, BigQuery Load Jobs

정기적 데이터 변환

BigQuery 내 저장된 데이터를 정기적으로 변환하거나 집계

Cloud Functions (스케줄러 트리거), BigQuery

분석 결과 서빙

BigQuery 쿼리 결과를 기반으로 API 응답 생성 또는 다른 시스템에 전달

Cloud Functions (HTTP 트리거), BigQuery

이 아키텍처의 장점은 완전한 서버리스 환경으로 인한 운영 부담 감소와 사용한 만큼만 지불하는 비용 모델이다. 또한 BigQuery의 강력한 처리 능력과 Cloud Functions의 유연한 실행 환경이 결합되어 복잡한 ETL 작업이나 실시간 분석 파이프라인을 비교적 간단하게 구성할 수 있다. 그러나 콜드 스타트로 인한 지연이나 함수 실행 시간 제한, BigQuery 작업의 비동기적 특성을 고려한 오류 처리 및 재시도 로직 구현은 중요한 고려사항이다.

6. 아키텍처 설계 패턴

서버리스 컴퓨팅을 활용한 데이터 중심 애플리케이션을 구축할 때는 몇 가지 일반적인 아키텍처 설계 패턴이 적용된다. 이러한 패턴은 마이크로서비스와 이벤트 기반 아키텍처의 원칙을 기반으로 하며, 클라우드 컴퓨팅 환경에서 데이터의 생성, 이동, 처리, 저장을 효율적으로 구성하는 방법을 제시한다.

이벤트 기반 마이크로서비스 패턴은 서버리스의 핵심이다. 각 마이크로서비스는 AWS Lambda나 Azure Functions 같은 FaaS로 구현되어, 객체 스토리지에 파일이 업로드되거나 NoSQL 데이터베이스에 항목이 추가되는 등의 이벤트에 의해 트리거된다. 이는 강결합된 모놀리식 아키텍처를 탈피하여, 독립적으로 배포되고 확장 가능한 소규모 서비스들로 시스템을 분해한다. 서비스 간 통신은 메시지 큐나 이벤트 버스를 통해 비동기적으로 이루어지며, 전체 시스템의 복잡도를 관리하는 데 유리하다.

데이터 파이프라인 오케스트레이션 패턴은 여러 단계로 이루어진 데이터 처리 워크플로를 관리한다. 예를 들어, ETL 작업은 데이터 수집, 변환, 적재라는 순차적 단계로 구성된다. 서버리스 환경에서는 AWS Step Functions나 Azure Durable Functions 같은 오케스트레이션 서비스를 사용하여 각 단계를 FaaS 함수로 구현하고, 실행 순서와 오류 처리를 조율한다. 이 패턴은 복잡한 워크플로를 시각적으로 정의하고, 각 단계의 상태를 추적하며, 실패 시 재시도 정책을 적용하는 데 유용하다.

상태를 유지해야 하는 장시간 실행 프로세스를 처리할 때는 상태 관리와 오케스트레이션 패턴이 필요하다. 일반적인 FaaS 함수는 무상태(stateless)이며 짧은 시간 내에 실행을 완료하도록 설계된다. 그러나 데이터 마이그레이션이나 보고서 생성 같은 작업은 상태를 추적하며 수 분에서 수 시간까지 실행될 수 있다. 이를 해결하기 위해 오케스트레이터는 외부 저장소에 진행 상태를 저장하고, 작업을 여러 개의 짧은 실행 함수로 분할하여 조정한다. 주요 접근 방식은 다음과 같다.

패턴

설명

예시 서비스

오케스트레이터 함수

중앙 함수가 작업 흐름과 상태를 제어하며, 작업자 함수를 호출한다.

AWS Step Functions, Azure Durable Functions

인간 승인 루프

자동화된 파이프라인에 수동 검토 단계를 포함시킨다.

AWS Step Functions(.waitForTaskToken)

관찰자 패턴

이벤트 소비자들이 비동기적으로 상태 변화를 관찰하고 반응한다.

Amazon EventBridge 규칙과 Lambda 함수

6.1. 이벤트 기반 마이크로서비스

이벤트 기반 마이크로서비스는 서버리스 컴퓨팅 환경에서 각 서비스가 이벤트를 통해 느슨하게 결합되는 아키텍처 패턴이다. 이 패턴에서 각 마이크로서비스는 특정 이벤트(예: 파일 업로드, 데이터베이스 변경, 메시지 큐 도착)에 반응하여 실행되는 독립적인 함수로 구현된다. 이는 전통적인 요청-응답 방식의 모놀리식 또는 API 기반 마이크로서비스와 구별되는 특징이다. 서비스 간 통신은 메시지 브로커나 이벤트 버스를 통해 비동기적으로 이루어지며, 생산자 서비스는 소비자 서비스를 직접 호출하지 않고 이벤트만 발행한다.

이 아키텍처의 구성 요소와 데이터 흐름은 일반적으로 다음과 같은 형태를 띤다.

구성 요소

역할

예시 서비스/트리거

이벤트 생산자

상태 변경이나 액션을 이벤트로 발행

AWS S3 (객체 생성), DynamoDB Streams, 애플리케이션 코드

이벤트 채널

이벤트를 전달하는 메시징 인프라

Amazon EventBridge, AWS SNS, AWS SQS, Apache Kafka

이벤트 소비자

이벤트를 수신하고 비즈니스 로직 실행

AWS Lambda, Azure Functions

데이터 저장소

처리 결과 또는 상태 저장

Amazon DynamoDB, Aurora Serverless, S3

이 패턴의 주요 장점은 높은 확장성과 결합도 감소이다. 각 마이크로서비스(함수)는 독립적으로 배포, 확장, 관리될 수 있다. 또한 시스템의 한 부분에 장애가 발생하더라도 이벤트는 큐에 유지되어 나중에 처리될 수 있어 내결함성이 향상된다. 데이터 처리 관점에서는 새로운 이벤트가 발생할 때마다 트리거되어 실시간 또는 준실시간으로 데이터를 변환, 집계, 다른 시스템으로 전달하는 파이프라인의 구성 요소로 자주 활용된다.

그러나 이 패턴은 복잡한 분산 시스템의 특성상 도전 과제도 동반한다. 이벤트 순서 보장, 정확히 한 번 전달(exactly-once delivery) 보장, 디버깅과 분산 추적의 어려움 등이 있다. 또한 장기 실행 트랜잭션을 여러 함수에 걸쳐 조정해야 하는 경우 Saga 패턴과 같은 추가적인 오케스트레이션 메커니즘이 필요하다.

6.2. 데이터 파이프라인 오케스트레이션

데이터 파이프라인 오케스트레이션은 서버리스 컴퓨팅 환경에서 여러 FaaS 함수, 데이터 변환 단계, 데이터 저장소 간의 워크플로우를 조정하고 관리하는 패턴을 의미한다. 이 패턴은 복잡한 ETL 또는 ELT 작업, 데이터 이동, 그리고 다단계 처리 로직을 자동화하고 모니터링하는 데 중점을 둔다. 서버리스 환경에서는 AWS Step Functions, Azure Durable Functions, 또는 Apache Airflow와 같은 전용 오케스트레이션 서비스가 각 처리 단계를 이벤트 기반으로 연결하고 실행 순서를 제어한다.

이 패턴의 구현은 일반적으로 상태 머신 또는 워크플로우 정의를 통해 이루어진다. 예를 들어, 한 단계의 출력이 다음 단계의 트리거가 되도록 설계한다. 일반적인 파이프라인은 데이터 수집, 정제, 변환, 적재, 그리고 최종적으로 분석 또는 보고 단계로 구성된다. 각 단계는 독립적인 AWS Lambda 함수나 Google Cloud Functions로 구현되며, 오케스트레이션 서비스는 이들의 성공/실패 상태를 추적하고, 오류 발생 시 재시도 정책을 적용하며, 전체 파이프라인의 실행 기록을 제공한다.

서버리스 오케스트레이션의 주요 이점은 선언적 관리와 강력한 내결함성이다. 개발자는 비즈니스 로직에 집중할 수 있고, 인프라 관리와 작업 스케줄링의 복잡성은 플랫폼에 위임된다. 또한, 사용한 컴퓨팅 시간과 오케스트레이션 상태 전환 횟수에 대해서만 비용이 발생하는 사용량 기반 과금 모델을 따른다. 그러나 장기 실행 워크플로우나 매우 높은 빈도의 상태 전환에서는 비용이 증가할 수 있으며, 각 함수 간의 데이터 전달 크기와 형식에 대한 설계가 중요해진다.

오케스트레이션 서비스

주요 특징

일반적인 데이터 처리 연계 대상

AWS Step Functions

상태 머신을 JSON으로 정의, AWS Lambda 및 다양한 AWS 서비스와 통합

Amazon S3, Amazon DynamoDB, AWS Glue

Azure Durable Functions

.NET, Python 등으로 오케스트레이터 함수 작성, 체이닝 및 팬아웃/팬인 패턴 지원

Azure Blob Storage, Azure Cosmos DB, Azure Data Factory

Google Cloud Workflows

YAML 또는 JSON 정의, Google Cloud Functions 및 Cloud Run과 통합

Google Cloud Storage, BigQuery, Pub/Sub

6.3. 상태 관리와 오케스트레이션

서버리스 환경에서 상태를 관리하는 것은 기본적으로 무상태성을 지향하는 FaaS 모델과 상충되는 요소를 내포합니다. 개별 함수 실행은 일시적이며 상태를 유지하지 않지만, 복잡한 비즈니스 워크플로나 다단계 데이터 파이프라인은 실행 상태, 컨텍스트, 중간 결과물을 추적해야 합니다. 이를 해결하기 위해 외부 상태 저장소를 활용한 패턴이 일반적입니다. 상태 정보는 Amazon DynamoDB나 Amazon S3 같은 내구성 있는 관리형 서비스에 저장하고, 함수는 필요한 상태를 이 저장소에서 조회하거나 업데이트하는 방식으로 동작합니다.

보다 복잡한 워크플로 오케스트레이션을 위해서는 전용 오케스트레이터 서비스를 사용하는 것이 효과적입니다. AWS Step Functions는 상태 머신을 통해 함수와 다른 AWS 서비스의 실행 순서, 조건 분기, 오류 처리, 재시도 로직을 시각적으로 정의하고 조정합니다. 이를 통해 장시간 실행되는 프로세스를 여러 개의 짧은 무상태 함수로 분해하면서도 전체 흐름의 상태를 중앙에서 관리할 수 있습니다. 유사하게 Azure Durable Functions는 함수 내에 오케스트레이터 함수를 정의하는 방식으로 상태와 체크포인팅을 처리합니다.

주요 오케스트레이션 패턴으로는 함수 체이닝, 팬아웃/팬인, 인간 승인 단계 통합 등이 있습니다. 함수 체이닝은 한 함수의 출력이 다음 함수의 입력이 되도록 직렬로 연결하는 방식입니다. 팬아웃/팬인은 단일 이벤트를 바탕으로 다수의 병렬 작업(팬아웃)을 시작하고, 모든 결과를 집계(팬인)하는 패턴으로, 대규모 데이터 처리에 적합합니다. 이러한 패턴들은 서버리스 오케스트레이션 도구를 사용하지 않고 구현할 경우 상태 추적과 오류 복구 로직을 직접 구축해야 하는 복잡성을 초래합니다.

패턴

설명

주로 사용되는 서비스/도구

외부 상태 저장

상태를 데이터베이스나 객체 스토리지에 저장하여 함수 간 공유

DynamoDB, Amazon S3, Redis

오케스트레이터 기반

중앙 오케스트레이터가 워크플로와 상태를 관리

AWS Step Functions, Azure Durable Functions

이벤트 기반 협력

완전 분산 방식. 각 함수는 이벤트 버스를 통해 통신하며, 상태는 이벤트 메시지에 포함되거나 외부 저장소에 유지

Amazon EventBridge, Apache Kafka

효율적인 상태 관리와 오케스트레이션은 서버리스 아키텍처의 신뢰성과 유지보수성을 결정하는 핵심 요소입니다. 적절한 패턴과 도구의 선택은 워크플로의 복잡도, 실행 시간, 데이터 일관성 요구사항에 따라 이루어져야 합니다.

7. 장점과 도전 과제

서버리스 컴퓨팅 모델은 데이터 처리 작업에 있어 뚜렷한 장점과 함께 해결해야 할 기술적 도전 과제를 동시에 제시한다.

가장 큰 장점은 탁월한 확장성과 비용 효율성이다. 서버리스 함수는 수신되는 이벤트나 데이터의 양에 따라 자동으로 확장 및 축소된다. 이는 예측 불가능한 트래픽 패턴을 보이는 데이터 스트림을 처리하거나, 주기적인 대용량 배치 작업을 실행할 때 특히 유리하다. 사용자는 프로비저닝한 용량에 대한 선불 비용 없이 실제로 소비한 컴퓨팅 리소스와 실행 시간에 대해서만 비용을 지불한다. 이는 유휴 상태의 서버 비용을 제거하여 데이터 처리 비용을 최적화한다.

그러나 이 모델은 고유한 도전 과제를 안고 있다. 대표적인 문제는 콜드 스타트로, 함수가 비활성 상태에서 호출될 때 실행 환경을 초기화하는 데 발생하는 지연이다. 이는 실시간 데이터 처리나 짧은 지연 시간이 요구되는 사용 사례에서 성능 문제를 일으킬 수 있다. 또한, 서버리스 함수는 기본적으로 무상태(stateless)이며, 일반적으로 짧은 실행 시간을 가진다. 이는 장기 실행 작업이나 여러 단계에 걸친 복잡한 데이터 파이프라인의 오케스트레이션을 어렵게 만들며, 전통적인 ACID 트랜잭션을 보장하기도 복잡해진다. 데이터 일관성을 유지하려면 사가 패턴과 같은 분산 트랜잭션 관리 패턴을 도입해야 한다.

장점

도전 과제

이벤트 기반의 자동 확장성

콜드 스타트로 인한 지연 시간 변동성

사용량 기반의 세분화된 과금 (비용 효율성)

무상태성으로 인한 복잡한 상태 관리 필요

인프라 관리 부담 감소

실행 시간 제한으로 인한 장기 작업 제약

내재된 가용성과 내결함성

분산 환경에서의 데이터 일관성 및 트랜잭션 관리 복잡성

결론적으로, 서버리스 컴퓨팅은 탄력적이고 경제적인 데이터 처리 플랫폼을 제공하지만, 성능 예측 가능성, 상태 관리, 트랜잭션과 같은 특정 영역에서는 아키텍처 설계 시 신중한 고려가 필요하다.

7.1. 데이터 처리의 확장성과 비용 효율성

서버리스 컴퓨팅은 데이터 처리 작업의 확장성을 근본적으로 재정의한다. 기존의 인프라 중심 모델에서는 처리 능력을 미리 프로비저닝하고 최대 예상 부하에 맞춰 용량을 계획해야 했다. 반면, 서버리스 컴퓨팅은 이벤트 발생에 따라 함수 인스턴스를 자동으로 생성하고 병렬로 실행하여 수평 확장을 실현한다. 데이터 유입량이 급증하더라도 플랫폼이 자동으로 수백, 수천 개의 실행 환경을 확보하여 처리 지연 없이 작업을 완료한다. 이는 데이터 스트림의 변동성이 큰 실시간 분석이나 주기적인 대용량 배치 처리 작업에 특히 유리한 특성이다.

비용 효율성 측면에서 서버리스 모델은 사용량 기반 과금의 정수를 보여준다. 사용자는 실제로 코드가 실행된 시간(일반적으로 100밀리초 단위)과 할당된 메모리 양에 대해서만 비용을 지불한다. 인프라가 유휴 상태일 때는 비용이 전혀 발생하지 않는다. 이는 전통적인 서버 모델에서 데이터 처리 클러스터를 24시간 가동하며 유지 관리 비용을 지불하는 것과 대비된다. 예를 들어, 매시간 5분 동안만 실행되는 ETL 작업의 경우, 서버리스 함수는 월간 약 2시간의 실행 시간에 대해서만 과금되므로 비용을 극적으로 절감할 수 있다.

확장성과 비용 효율성은 다음 표와 같은 데이터 처리 시나리오에서 구체적으로 나타난다.

처리 유형

전통적 방식의 과금

서버리스 방식의 과금

주요 효율성

실시간 로그 분석

스트리밍 클러스터 상시 운영 비용

수집된 로그 이벤트 수 및 처리 시간

유휴 시간에 비용 불발생

일간 배치 리포트

야간에도 가동되는 컴퓨트 인스턴스

리포트 생성에 소요된 실행 시간

작업 완료 후 즉시 리소스 해제

변동성 큰 이벤트 처리

최대 부하를 감당할 수 있는 고정 용량

실제 트래픽 피크 시 생성된 인스턴스만

과도한 프로비저닝 불필요

이러한 모델은 소규모 데이터 처리부터 시작해 점진적으로 규모를 키울 수 있는 유연성을 제공하며, 이는 신규 데이터 애플리케이션의 진입 장벽을 낮춘다. 다만, 극도로 짧은 지연 시간이 요구되거나 초당 수만 건의 트랜잭션을 지속적으로 처리하는 워크로드에서는 콜드 스타트 지연이나 세분화된 과금의 복잡성이 도전 과제로 작용할 수 있다.

7.2. 콜드 스타트와 성능 고려사항

콜드 스타트는 서버리스 컴퓨팅 환경에서 함수가 일정 시간 비활성 상태 후 호출될 때 발생하는 초기화 지연 현상이다. 이 과정에는 실행 환경(런타임) 프로비저닝, 코드 패키지 다운로드, 초기화 코드 실행 등이 포함된다. 콜드 스타트 지연 시간은 사용하는 프로그래밍 언어, 코드 패키지 크기, 연결된 VPC 설정, 그리고 클라우드 제공업체의 내부 상태에 따라 수 밀리초에서 수 초까지 다양하게 나타난다. 이는 실시간 응답이 중요한 데이터 처리 애플리케이션에서 주요 성능 병목 지점이 될 수 있다.

콜드 스타트를 완화하기 위한 일반적인 전략은 함수를 주기적으로 호출하여 실행 환경을 워밍업 상태로 유지하는 것이다. 또한, 코드 패키지 크기를 최소화하고, 무거운 초기화 로직을 지연 실행(lazy loading)하거나, 프로비저닝된 동시성과 같은 관리형 기능을 활용하는 방법도 있다. 일부 플랫폼은 더 가벼운 실행 환경을 제공하여 시작 시간을 단축하기도 한다.

성능 최적화를 위해서는 함수의 실행 시간과 메모리 할당을 신중하게 설계해야 한다. 짧은 실행 시간과 적절한 메모리 설정은 비용 효율성과 직결된다. 데이터 처리 작업에서는 특히 대용량 데이터를 한 번에 처리하기보다는 작은 배치로 분할하여 처리하는 것이 함수 실행 시간 예측과 관리에 유리하다. 또한, 데이터베이스 연결 풀링과 같은 지속적 리소스 사용은 제한적이므로, 연결 관리를 위한 별도의 패턴이나 서비스를 고려해야 한다.

고려사항

설명

완화 전략 예시

콜드 스타트 지연

함수가 비활성 상태에서 호출될 때 발생하는 초기화 시간

주기적 워밍업 호출, 코드 패키지 최소화, 프로비저닝된 동시성 사용

실행 시간 변동성

데이터 양이나 처리 복잡도에 따른 실행 시간 불규칙성

작업을 작은 배치로 분할, 메모리 설정 최적화

리소스 제약

메모리, CPU, 실행 시간, 임시 디스크 공간의 제한

작업을 이벤트 기반으로 분산 설계, 외부 저장소 활용

상태 비저장성

함수 인스턴스 간 상태 공유 불가

모든 상태는 외부 데이터 저장소에 저장하거나 이벤트 페이로드로 전달

7.3. 데이터 일관성과 트랜잭션 관리

서버리스 컴퓨팅 환경에서 데이터 일관성을 보장하고 트랜잭션을 관리하는 것은 중요한 도전 과제이다. 서버리스 함수는 기본적으로 스테이트리스하게 설계되며, 짧은 실행 시간과 독립적인 생명 주기를 가진다. 이는 전통적인 모놀리식 애플리케이션에서 사용되던 장시간 실행 트랜잭션 또는 분산 트랜잭션 프로토콜을 적용하기 어렵게 만든다. 또한, 함수의 동시 다중 실행과 이벤트 기반 아키텍처는 작업 순서 보장과 중복 이벤트 처리 문제를 야기할 수 있다.

이러한 문제를 해결하기 위해 사가 패턴과 같은 컴펜세이팅 트랜잭션 기법이 주로 사용된다. 사가 패턴은 하나의 비즈니스 트랜잭션을 여러 개의 작은 로컬 트랜잭션으로 분해하고, 각 단계마다 실패 시 이전 작업을 보상하는 작업을 실행하여 전체적인 일관성을 유지한다. 예를 들어, 주문 처리 파이프라인에서 재고 감소 함수가 성공한 후 결제 함수가 실패하면, 재고를 원복하는 보상 함수가 트리거된다. 상태 관리는 종종 DynamoDB나 Aurora와 같은 외부 데이터 저장소에 위임되며, 함수 간의 조정은 스텝 펑션이나 이벤트 브릿지를 통해 오케스트레이션된다.

데이터 일관성 수준은 요구사항에 따라 달라질 수 있다. 강한 일관성이 필요한 경우, 단일 키-값 저장소에 모든 상태를 집중시키거나, 관계형 데이터베이스의 트랜잭션 기능에 의존할 수 있다. 반면, 최종적 일관성으로 충분한 대부분의 마이크로서비스 시나리오에서는 이벤트 소싱 패턴을 활용한다. 이 패턴에서는 상태 변경을 일련의 불변 이벤트로 저장하고, 이를 구독하는 함수들이 자신의 읽기 모델을 비동기적으로 업데이트한다. 이를 통해 시스템의 신뢰성과 확장성을 유지하면서 데이터의 흐름을 투명하게 관리할 수 있다.

일관성 모델

주요 특징

서버리스 환경에서의 구현 방식

적합한 사용 사례

강한 일관성

모든 읽기 연산이 가장 최근에 쓰인 데이터를 반환함

단일 데이터 소스 사용, 관계형 데이터베이스 트랜잭션 의존

금융 거래, 재고 정확 관리

최종적 일관성

쓰기 연산 후 일정 시간이 지나면 모든 복제본이 일관된 상태로 수렴함

이벤트 소싱, 사가 패턴, 비동기 메시징

사용자 활동 추적, 로그 집계, 대부분의 마이크로서비스

세션 일관성

특정 사용자 세션 내에서의 읽기 일관성을 보장함

사용자 세션 ID를 기반으로 한 라우팅 또는 DynamoDB의 일관성 읽기 설정

사용자 프로필 조회, 쇼핑 카트 관리

8. 사용 사례

서버리스 컴퓨팅은 데이터 중심 애플리케이션에서 다양한 실용적인 사용 사례를 보여준다. 실시간 분석 및 대시보드 구축은 대표적인 예시이다. 스트리밍 데이터를 AWS Kinesis나 Google Cloud Pub/Sub 같은 서비스로 수집하면, AWS Lambda나 Azure Functions가 각 데이터 레코드를 트리거하여 실시간으로 집계, 필터링, 강화 처리를 수행한다. 처리된 결과는 Amazon DynamoDB나 Google BigQuery 같은 분석 저장소에 기록되어, 거의 실시간으로 업데이트되는 대시보드를 구동한다. 이 패턴은 사용자 행동 분석, IoT 센서 모니터링, 금융 거래 감시에 널리 적용된다.

로그 및 모니터링 데이터 처리 또한 서버리스의 강점을 발휘하는 분야이다. 애플리케이션 로그, 시스템 메트릭, 클라우드 감사 로그는 Amazon S3 버킷에 덤프되거나 로그 그룹으로 스트리밍된다. 서버리스 함수는 새 로그 파일이 업로드되거나 로그 스트림이 발생할 때마다 자동으로 실행되어 데이터를 파싱, 구조화, 필터링한 후 중앙 집중식 분석 플랫폼으로 전송한다. 이를 통해 개발팀은 인프라 관리 부담 없이도 실시간 오류 탐지, 보안 이상 징후 분석, 성능 지표 집계를 구현할 수 있다.

머신러닝 모델 서빙 및 추론 작업에도 서버리스 아키텍처가 적합하다. 훈련된 머신러닝 모델을 컨테이너 이미지로 패키징하거나 런타임에 직접 로드하여 함수 내에 임베드할 수 있다. 그 후, 함수는 REST API 엔드포인트(Amazon API Gateway 통해)를 통해 호출되거나, 배치 예측 작업을 위해 S3의 새 데이터 파일에 의해 트리거될 수 있다. 이 접근 방식은 예측 서비스의 운영 부하를 크게 줄이며, 트래픽 패턴에 따라 자동으로 확장되고 사용한 추론 시간만큼만 비용을 지불하게 한다. 주기적으로 재훈련된 새 모델 버전을 배포하는 MLOps 파이프라인을 구성하는 데에도 서버리스 오케스트레이션 도구가 활용된다.

사용 사례 카테고리

주요 트리거 소스

일반적인 데이터 처리 작업

출력 대상/다음 단계

실시간 분석

데이터 스트림(Kinesis, Pub/Sub), HTTP 요청

필터링, 집계(카운트, 합계), 강화(데이터 조인), 변환

분석 DB(BigQuery, Redshift), 대시보드(QuickSight, Data Studio), 실시간 알림

로그 처리

객체 스토리지(S3) 이벤트, 로그 스트림(CloudWatch Logs)

파싱, 구조화, 패턴 매칭, 중요 정보 마스킹

지표/알림 시스템(CloudWatch, Prometheus), Elasticsearch 클러스터, 장기 보관

ML 추론

HTTP 요청(API Gateway), 배치 파일 업로드(S3)

모델 입력 전처리, 모델 실행(추론), 결과 후처리

API 응답, 결과 파일 저장(S3), 추론 결과 DB 기록

8.1. 실시간 분석 및 대시보드

실시간 분석은 스트리밍 데이터를 지속적으로 수집, 처리, 시각화하여 즉각적인 인사이트를 제공하는 프로세스이다. 서버리스 컴퓨팅은 이벤트 기반 실행 모델과 자동 확장성을 바탕으로 이러한 실시간 분석 파이프라인을 구축하는 데 이상적인 플랫폼을 제공한다. AWS Lambda, Azure Functions, Google Cloud Functions와 같은 FaaS는 Kinesis Data Streams, Event Hubs, Pub/Sub 같은 스트리밍 서비스에서 발생하는 이벤트를 트리거로 삼아 데이터를 변환, 강화, 집계하는 논리를 실행한다. 이로 인해 개발자는 인프라 관리 없이 비즈니스 로직에만 집중할 수 있으며, 트래픽 변동에 따라 자동으로 확장되는 처리 능력을 얻을 수 있다.

처리된 데이터는 실시간 대시보드를 구동하는 데 사용된다. 집계된 결과는 Amazon DynamoDB나 Google BigQuery 같은 관리형 데이터 저장소에 기록된 후, Amazon QuickSight, Google Data Studio, Power BI 등의 시각화 도구에 연결된다. 또는 서버리스 함수가 WebSocket 연결을 통해 처리 결과를 직접 프론트엔드 클라이언트에 푸시하는 아키텍처도 구성할 수 있다. 이 모든 과정은 완전 관리형 서비스들로 구성되어 운영 부담을 크게 줄인다.

구성 요소

역할

예시 서비스

데이터 수집

실시간 데이터 스트림 생성

AWS Kinesis, Apache Kafka (관리형), Azure Event Hubs

스트림 처리

이벤트 트리거 기반 데이터 변환/집계

AWS Lambda, Azure Stream Analytics, Google Dataflow

결과 저장

처리된 데이터 또는 집계 결과 저장

DynamoDB, BigQuery, Aurora Serverless

시각화

실시간 대시보드 제공

QuickSight, Power BI, 사용자 정의 WebSocket 애플리케이션

이 패턴의 주요 장점은 탁월한 확장성과 비용 효율성이다. 데이터 볼륨이 갑자기 증가하더라도 서버리스 함수는 필요한 만큼 인스턴스를 자동으로 생성하여 처리 지연을 방지한다. 동시에, 실제 사용된 컴퓨팅 시간과 리소스만큼만 비용이 발생하는 사용량 기반 과금 모델을 통해 유휴 상태의 인프라 비용을 제거할 수 있다. 이는 24시간 내내 실행되는 전통적인 분석 클러스터에 비해 상당한 비용 절감을 가져온다.

8.2. 로그 및 모니터링 데이터 처리

서버리스 컴퓨팅은 로그 및 모니터링 데이터 처리에 매우 적합한 패러다임을 제공한다. 애플리케이션, 서버, 네트워크 장비에서 생성되는 대량의 반구조화된 로그 데이터는 이벤트 기반 아키텍처로 효율적으로 수집, 변환, 저장 및 분석될 수 있다. AWS Lambda, Azure Functions와 같은 FaaS는 로그 파일이 객체 스토리지에 업로드되거나 메시지 큐에 도착하는 이벤트를 트리거로 삼아 즉시 처리를 시작한다. 이를 통해 별도의 상시 운영 서버 없이도 실시간에 가까운 로그 처리 파이프라인을 구축할 수 있다.

일반적인 처리 흐름은 로그 수집, 변환, 적재, 분석 단계로 구성된다. 예를 들어, 애플리케이션 로그는 Amazon Kinesis Data Firehose나 Apache Kafka를 통해 스트리밍되며, 서버리스 함수는 각 레코드를 필터링하거나 풍부하게 만들고(예: IP 주소를 지리적 위치 정보로 변환) 구조화된 형식(예: Parquet)으로 변환한다. 처리된 데이터는 Amazon S3, Google Cloud Storage와 같은 객체 스토리지에 저장되어 Amazon Athena, Google BigQuery 같은 분석 서비스에서 직접 쿼리되거나, 실시간 대시보드를 위한 Elasticsearch 클러스터로 전송된다.

이 접근 방식의 주요 장점은 탁월한 확장성과 비용 효율성이다. 로그 볼륨이 시간대나 이벤트에 따라 급증하더라도 서버리스 플랫폼은 자동으로 필요한 컴퓨팅 리소스를 확장하여 처리 지연을 방지한다. 반대로 트래픽이 없는 시간에는 리소스가 0으로 축소되어 인프라 비용이 발생하지 않는다. 이는 24/7 가동되는 전용 로그 처리 클러스터를 운영하는 전통적인 방식에 비해 상당한 비용 절감을 가져온다.

처리 단계

서버리스 컴포넌트 예시

목적

로그 수집

Amazon Kinesis Data Streams, Azure Event Hubs

로그 이벤트를 실시간으로 수집하고 버퍼링

실시간 변환/처리

AWS Lambda, Azure Functions

로그 필터링, 파싱, 풍부화, 집계

저장

Amazon S3, Azure Data Lake Storage

비용 효율적인 장기 보관 및 분석을 위한 저장

검색/분석

Amazon Athena, Elasticsearch

저장된 데이터에 대한 대화형 쿼리 및 시각화

도전 과제로는 매우 짧은 간격으로 발생하는 대량의 소규모 로그 이벤트를 처리할 때 콜드 스타트로 인한 지연이 분석 지표에 영향을 미칠 수 있다는 점이 있다. 또한, 분산 환경에서 로그 이벤트의 정확한 순서 보장과 Exactly-Once 처리를 구현하는 것은 추가적인 아키텍처 설계가 필요하다. 그러나 적절한 설계를 통해 서버리스는 모던한 로그 및 모니터링 시스템의 핵심 인프라로 자리 잡았다.

8.3. 머신러닝 모델 서빙 및 추론

서버리스 컴퓨팅은 머신러닝 모델을 배포하고 추론을 실행하는 인프라 관리 부담을 크게 줄여준다. 개발자는 모델 학습과 패키징에 집중할 수 있으며, AWS Lambda, Azure Functions, Google Cloud Functions 같은 FaaS 플랫폼을 통해 모델을 배포한다. 이 모델은 API 게이트웨이를 통해 HTTP 요청으로 호출되거나, 객체 스토리지에 새 데이터가 업로드되거나 스트리밍 데이터 파이프라인에서 이벤트가 발생할 때 트리거되어 실행된다.

주요 패턴으로는 온디맨드 실시간 추론과 배치 추론이 있다. 실시간 추론은 사용자 요청에 따라 즉시 예측을 반환하는 데 적합하며, 콜드 스타트 지연을 최소화하기 위해 프로비저닝된 동시성 기능을 활용한다. 배치 추론은 Amazon S3나 Google Cloud Storage에 적재된 대량의 데이터를 처리할 때 효과적이며, 이벤트 기반으로 함수를 트리거해 모든 레코드에 대해 예측을 수행한다.

서버리스 머신러닝 서빙의 장점은 탁월한 확장성과 비용 효율성이다. 트래픽이 급증할 때 플랫폼이 자동으로 인스턴스를 확장하여 모델의 가용성을 보장하며, 실제 실행 시간과 횟수에 대해서만 비용이 발생한다. 또한, Docker 컨테이너를 지원하는 플랫폼에서는 대용량의 모델 파일이나 복잡한 종속성을 패키징하여 배포할 수 있다.

그러나 몇 가지 고려사항이 존재한다. 대규모 모델의 경우 메모리 제한이나 콜드 스타트로 인한 지연이 성능에 영향을 줄 수 있다. 장기 실행되는 배치 작업은 함수의 최대 실행 시간 제한에 걸릴 수 있으며, 모델 버전 관리와 A/B 테스트를 위한 체계적인 배포 전략이 필요하다. 이러한 과제를 해결하기 위해 Amazon SageMaker, Azure Machine Learning과 같은 관리형 MLOps 플랫폼과 서버리스 함수를 조합한 하이브리드 아키텍처도 널리 사용된다.

9. 관련 문서

  • Wikipedia - 서버리스 컴퓨팅

  • AWS 공식 문서 - 서버리스란 무엇인가요?

  • Microsoft Azure 공식 문서 - 서버리스 컴퓨팅

  • Google Cloud 공식 문서 - 서버리스 소개

  • IBM 공식 문서 - 서버리스 컴퓨팅이란?

  • NAVER D2 - 서버리스 아키텍처

  • Kakao Tech - 카카오 서버리스 플랫폼: Kargo

  • 정보통신기술진흥센터(IITP) - 서버리스 컴퓨팅 기술 동향

리비전 정보

버전r1
수정일2026.02.14 21:25
편집자unisquads
편집 요약AI 자동 생성
히스토리로 돌아가기