Serverless Computing
serverless computing이 AI 배포를 간소화하는 방식을 살펴봅니다. 효율적인 ML inference를 위해 Ultralytics YOLO26을 사용하여 확장 가능하고 비용 효율적인 워크플로를 구축하는 방법을 알아봅니다.
서버리스 컴퓨팅은 인프라 관리의 복잡성 없이 애플리케이션을 구축하고 실행할 수 있도록 지원하는 클라우드 실행 모델입니다. 이 패러다임에서는 클라우드 제공업체가 서버의 할당 및 프로비저닝을 동적으로 관리하여, 사용자에게 기본 하드웨어와 운영 체제를 추상화합니다. 코드는 HTTP 요청, 데이터베이스 수정 또는 파일 업로드와 같은 특정 이벤트에 의해 트리거되는 상태 비저장 컨테이너에서 실행됩니다. 이 접근 방식은 최신 클라우드 컴퓨팅 전략과 밀접한 관련이 있습니다. 조직이 소비한 컴퓨팅 시간에 대해서만 비용을 지불할 수 있으며, 트래픽 수요에 따라 인스턴스를 0개에서 수천 개까지 확장하여 확장성 요구 사항을 자동으로 충족하기 때문입니다.
AI를 위한 서버리스의 작동 방식#
서버리스 컴퓨팅의 핵심에는 함수형 서비스 (FaaS)라는 개념이 있습니다. 이는 애플리케이션을 개별 작업을 수행하는 각각의 함수로 세분화하는 방식입니다. 머신러닝 (ML) 실무자에게 이 방식은 모델 배포를 간소화하는 경로를 제공합니다. 트래픽이 적은 시간에도 유휴 상태로 유지되는 전용 서버를 관리하는 대신, 서버리스 함수는 필요할 때 실행되어 데이터를 처리하고 작업 직후 종료될 수 있습니다.
그러나 이 아키텍처에서 주요하게 고려해야 할 사항은 "콜드 스타트"입니다. 이는 함수가 처음 호출되거나 일정 시간 동안 비활성 상태였던 후 호출될 때 발생하는 지연 시간입니다. 이를 완화하기 위해 개발자는 YOLO26과 같은 경량 아키텍처나 모델 양자화와 같은 기법을 사용하는 경우가 많습니다. 이를 통해 빠른 로딩 시간을 확보할 수 있으며, 이는 낮은 추론 지연 시간을 유지하는 데 필수적입니다.
머신 러닝의 실제 적용 사례#
서버리스 아키텍처는 이벤트 기반 컴퓨터 비전 (CV) 워크플로와 데이터 파이프라인에 특히 효과적입니다.
- 자동화된 데이터 전처리: 사용자가 Amazon S3와 같은 스토리지 서비스에 원시 데이터셋을 업로드하면 서버리스 함수를 트리거하여 즉시 데이터 전처리를 수행할 수 있습니다. 이 함수는 데이터가 학습 데이터 파이프라인에 들어가기 전에 이미지 크기를 조정하거나, 픽셀 값을 정규화하거나, 파일 형식의 유효성을 검사할 수 있으며, 수동 개입 없이 일관성을 보장합니다.
- 온디맨드 스마트 감시: 보안 분야의 AI에서는 모션 센서가 카메라를 트리거하여 프레임을 캡처할 수 있습니다. 이 이벤트는 객체 탐지 모델을 호스팅하는 클라우드 함수를 호출합니다. 모델은 이미지를 분석하여 무해한 동물과 잠재적인 침입자를 구분하고, 필요한 경우에만 알림을 전송합니다. 이는 지속적인 스트리밍에 비해 대역폭 및 스토리지 비용을 크게 줄여 줍니다.
Python 예제: 서버리스 추론 핸들러#
다음 코드는 개념적인 서버리스 핸들러를 보여 줍니다. 이 핸들러는 "웜 스타트"(컨테이너가 요청 사이에 활성 상태로 유지되는 방식)를 활용하기 위해 전역 모델 인스턴스를 초기화하고, 수신된 이미지 경로를 처리합니다.
from ultralytics import YOLO
# Initialize the model outside the handler to cache it for subsequent requests
# YOLO26n is ideal for serverless due to its compact size and speed
model = YOLO("yolo26n.pt")
def lambda_handler(event, context):
"""Simulates a serverless function handler triggered by an event. 'event' represents the input payload containing
the image source.
"""
image_source = event.get("url", "https://ultralytics.com/images/bus.jpg")
# Perform inference
results = model(image_source)
# Return prediction summary
return {
"statusCode": 200,
"body": {
"objects_detected": len(results[0].boxes),
"top_class": results[0].names[int(results[0].boxes.cls[0])] if len(results[0].boxes) > 0 else "None",
},
}관련 기술 구분#
서버리스 컴퓨팅을 이해하려면 MLOps에서 자주 사용되는 다른 인프라 모델과 구분해야 합니다.
- 서버리스와 엣지 컴퓨팅 비교: 두 방식 모두 효율성 최적화를 목표로 하지만 서로 다른 위치에서 작동합니다. 엣지 컴퓨팅은 네트워크 전송 시간을 최소화하기 위해 디바이스(예: 스마트 카메라 또는 IoT 디바이스)에서 데이터를 로컬로 처리합니다. 서버리스 컴퓨팅은 중앙 집중식 퍼블릭 클라우드에서 실행됩니다. 하이브리드 솔루션은 초기 데이터를 엣지에서 처리한 후, 복잡한 이상 징후를 서버리스 클라우드 함수로 전송하여 심층적인 의료 이미지 분석 또는 포렌식 검토를 수행하는 경우가 많습니다.
- 서버리스와 Kubernetes 비교: Kubernetes는 개발자에게 클러스터 환경, 네트워킹 및 파드에 대한 세부적인 제어 권한을 제공하는 컨테이너화 오케스트레이션 플랫폼입니다. 강력한 기능을 제공하지만 상당한 관리 오버헤드가 필요합니다. Google Cloud Functions 또는 Azure Functions와 같은 서버리스 플랫폼은 이러한 오케스트레이션을 완전히 추상화하여 팀이 노드의 상태가 아니라 코드 로직에만 집중할 수 있도록 합니다.
- 서버리스와 IaaS 비교: 인프라형 서비스 (IaaS)는 Amazon EC2와 같이 인터넷을 통해 가상화된 컴퓨팅 리소스를 제공합니다. IaaS에서는 사용자가 운영 체제 패치 적용 및 미들웨어 관리를 담당해야 합니다. 반면 서버리스 컴퓨팅은 이러한 운영 책임을 제거하여 개발자가 이미지 분류 정확도 향상과 같은 상위 수준의 작업에 집중할 수 있도록 합니다.
서버리스 아키텍처를 활용하면 개발자는 비용 효율적이고 예측하기 어려운 워크로드를 처리할 수 있는 견고한 AI 솔루션을 배포할 수 있습니다. 또한 Ultralytics Platform과 같은 도구를 활용하여 배포 전에 모델 학습 및 관리 프로세스를 간소화할 수 있습니다.









