AWS Lambda 서버리스 ML과 하이브리드 클라우드 추론 설계
AWS Lambda 기반 서버리스 ML 추론과 하이브리드 클라우드 아키텍처의 모델 배포, 보안, 확장, 비용 설계 방식을 정리한다.
2026-08-14 · 최초 발행 2024-04-29
변동하는 추론 요청을 Lambda로 받는 구조
Serverless ML은 Lambda 같은 서버리스 실행 환경에서 모델 로딩, 추론, 후처리를 이벤트에 맞춰 수행하는 방식이다. 서버를 직접 프로비저닝하거나 패치하고 스케일을 관리하는 부담을 줄이며, 초단위 과금에 기반한 비용 효율을 지향한다.
Hybrid Cloud Architectures는 온프레미스, 프라이빗 클라우드, 퍼블릭 클라우드 자원을 네트워크·보안·거버넌스 관점에서 함께 운영하는 구조다. 데이터 중력, 규제, 지연 시간 요건을 고려해 각 워크로드의 배치 위치를 결정한다.
이 둘을 결합하면 트래픽 변화에 대응하면서도 데이터 레지던시와 망분리 요구를 반영할 수 있다. 다만 Lambda 함수 하나에 모델을 넣는 수준으로 끝나지 않는다. 입력 경로, 모델 패키징, 상태 처리, 네트워크와 하이브리드 연결까지 하나의 운영 경로로 잡아야 한다.
이벤트부터 결과 저장까지 이어지는 추론 경로
입력 계층은 S3 이벤트, API Gateway, Kinesis, EventBridge를 트리거로 삼는다. 요청 특성에 따라 동기 호출과 비동기 호출을 나누고, 처리 계층에서는 Lambda 내부의 모델 로딩과 추론, 전처리와 후처리를 함수로 구성한다. 배치·스트리밍·실시간 API를 함께 지원할 수 있다.
결과는 DynamoDB 또는 S3에 저장하고, CloudWatch Logs와 Metrics, Traces에 로깅과 모니터링을 연결한다. 실패 경로는 재시도, DLQ(SQS), SNS 알림으로 분리하며 멱등성 키로 중복 처리를 막는다.
실시간 요청은 API Gateway에서 JSON과 멱등성 키 헤더를 받고, 배치 작업은 S3 Put 이벤트나 EventBridge 스케줄을 사용하며, 스트리밍 데이터는 Kinesis 레코드로 전달할 수 있다.
처리 과정에서는 스키마 검증, 데이터 정규화, PII 마스킹을 먼저 수행한다. 이후 글로벌 스코프의 모델 세션을 재사용해 추론하고 타임아웃과 메모리 가드를 둔다. 마지막으로 신뢰도 임계값 필터와 사업 규칙을 적용한다.
성공한 결과는 DynamoDB Upsert와 S3 결과 객체 저장으로 남기고 메트릭을 증가시킨다. 실패한 작업은 지수 백오프 기반 자동 재시도 뒤 DLQ로 보내고 SNS로 알린다. 요청 키를 기준으로 캐시를 먼저 조회해 결과가 있으면 바로 반환하고, 결과 쓰기는 단일 파티션 키와 조건부 쓰기로 구성한다. 분산 락을 쓰지 않고 파티션 키를 균등 해시해 핫파티션도 피한다.
모델 크기와 실행 환경이 배포 방식을 가른다
경량 모델은 Lambda Layer나 함수 패키지에 포함할 수 있다. 배포를 단순하게 가져가고 콜드스타트를 짧게 유지하려는 경우에 맞는다.
대형 모델(>250MB)은 EFS 마운트 또는 Lambda 컨테이너 이미지(최대 10GB 이미지)를 사용할 수 있다. 이때 ONNX 또는 TensorRT 최적화로 모델 로딩 지연을 줄이는 구성이 필요하다. 아티팩트는 S3 버전관리로 관리하고, 별칭과 버전을 사용해 무중단 배포를 구성한다. 이미지와 임시 스토리지 한도는 사양 변화 가능성이 있으므로 최신 정보를 확인해야 한다.
스케일 관리에서는 동시성 자동 확장을 사용하되, 예측되는 피크에는 예약 동시성 또는 프로비저닝 동시성을 둘 수 있다. 쿼터를 모니터링하고 서킷 브레이커 패턴을 적용한다. 콜드스타트는 글로벌 스코프 모델 캐싱, 컨테이너 이미지 레이어 축소, ARM(Graviton) 채택, VPC 연결 최적화로 다룬다. Java SnapStart는 언어 제약이 있고 Python은 비대상이다.
실행 옵션별 운영상의 차이
| 항목 | Lambda Serverless Inference | SageMaker Endpoint/Serverless | 온프레미스/K8s(자가 운영) |
|---|---|---|---|
| 성능 | 짧은 요청에 최적, 콜드스타트 영향 존재 | 대형/지속 워크로드에 안정적, 모델 특화 최적화 용이 | 하드웨어 튜닝 자유도 높음, 지연 최소화 가능 |
| 확장성 | 초당 급격 확장, 동시성 한도 관리 필요 | 자동/수동 스케일 모두 지원, GPU/멀티모델 유리 | 클러스터 확장 구축 부담, 용량 계획 필요 |
| 일관성 | 이벤트 단위 처리, 멱등성 설계 필요 | 엔드포인트 안정적 추론 일관성 | 운영 정책에 따라 편차 가능 |
| 안정성 | DLQ/재시도 내장, VPC 구성 복잡도 존재 | 모니터링/롤링 업데이트 내장 | 장애 처리 자체 구현 필요 |
| 운영 편의 | 서버 관리 무, 배포 단순 | ML 툴체인 통합(모니터/디버그) 강점 | 자유도 높으나 운영 부담 큼 |
Lambda는 짧은 요청과 급격한 트래픽 변화에 적합하지만, 콜드스타트와 동시성 한도를 전제로 설계해야 한다. 대형 모델이나 지속적인 워크로드, GPU와 멀티모델 요구가 중심이라면 SageMaker Endpoint/Serverless가 더 안정적인 선택지가 될 수 있다. 온프레미스나 K8s 자가 운영은 하드웨어와 지연을 세밀하게 조정할 수 있는 대신 클러스터 확장과 장애 처리 책임을 직접 가져간다.
Lambda에서 ONNX 모델을 로딩하는 예시
전제조건은 다음과 같다.
- 언어/런타임: Python 3.11, AWS Lambda
- 패키징: 컨테이너 이미지(ECR) 또는 패키지+Layer, 모델 크기 >250MB 시 EFS/컨테이너 권장
- 의존성: onnxruntime, numpy
- 구성: 메모리 1024
3072MB, 타임아웃 1030초, 동시성 한도 설정
# Python 3.11
import os, json, time
import numpy as np
from typing import Any, Dict
import onnxruntime as ort
MODEL_PATH = os.getenv("MODEL_PATH", "/opt/models/model.onnx") # Layer/이미지/EFS 경로
session = None
def _load_model():
global session
if session is None:
so = ort.SessionOptions()
so.intra_op_num_threads = int(os.getenv("ORT_THREADS", "2"))
providers = ["CPUExecutionProvider"]
session = ort.InferenceSession(MODEL_PATH, sess_options=so, providers=providers)
return session
def handler(event: Dict[str, Any], context):
st = time.time()
sess = _load_model()
body = event.get("body")
if isinstance(body, str):
body = json.loads(body)
inputs = np.asarray(body["features"], dtype=np.float32) # [N, D]
ort_inputs = {sess.get_inputs()[0].name: inputs}
outputs = sess.run(None, ort_inputs)
result = outputs[0].tolist()
resp = {
"latency_ms": int((time.time() - st) * 1000),
"result": result,
"model": os.path.basename(MODEL_PATH)
}
return {"statusCode": 200, "headers": {"Content-Type": "application/json"}, "body": json.dumps(resp)}
컨테이너 이미지는 public.ecr.aws/lambda/python:3.11 베이스 이미지를 사용하고, requirements.txt 설치와 모델 복사 후 CMD ["app.handler"]를 설정한다. 대형 모델은 EFS 마운트의 참조 권한과 보안 그룹을 구성하거나, 다단계 빌드로 이미지 레이어를 최소화한다. ARM/Graviton 빌드, Numpy와 ONNX Runtime 최적화, 모델 양자화·프루닝도 성능 조정 수단이다.
하이브리드 환경에서 나누는 역할
온프레미스와 클라우드는 Direct Connect 또는 VPN으로 사설 경로를 연결한다. 이때 라우팅, 대역폭, 고가용 이중화를 함께 설계해야 한다. 클라우드 EKS와 온프레미스 K8s 또는 VM은 서비스 메시(예: Istio), API Gateway, PrivateLink를 통해 하나의 API 종단으로 구성할 수 있다.
파일과 오브젝트는 AWS DataSync 또는 Storage Gateway로 동기화한다. 데이터 레이크는 클라우드에 두고, 데이터 기밀성이나 규제 요구가 있는 데이터는 온프레미스에 유지하는 배치도 가능하다.
문서 분류·추출에서는 S3 업로드 뒤 Lambda가 추론하고 결과를 S3 또는 DynamoDB에 저장한다. Step Functions는 실패 항목 재처리 워크플로우를 맡고, 대량 처리에서는 병렬 스팬과 비용 상한선을 제어한다.
개인화 추천 API는 API Gateway, Lambda, DynamoDB 또는 ElastiCache 피처 캐시를 연결해 응답을 만든다. 피크 시간에는 프로비저닝 동시성으로 지연을 안정화하며, A/B 모델 전환은 별칭 라우팅의 웨이트 분배로 구성한다.
제조·IoT 분석에서는 공장 설비 데이터를 온프레미스 버퍼에 두고 사설망으로 Lambda 추론을 호출할 수 있다. 민감 원천 데이터는 온프레미스에 남기고 피처만 전송하며, 대용량 학습과 튜닝은 클라우드 SageMaker에서 수행한 뒤 모델 아티팩트만 역방향 동기화한다.
콜센터 음성 분석 스트리밍은 Kinesis Audio에서 Lambda의 프레임 단위 STT·분석을 거쳐 실시간 대시보드를 갱신한다. GPU가 필요한 구간은 SageMaker 엔드포인트로 위임한다.
비용, 지연, 운영 부담을 함께 계산하기
비용 최적화의 정량 예시를 가정하면, 월 1,000만 건, 0.5GB 메모리, 100ms/건일 때 GB-초는 0.5 × 0.1 × 10,000,000 = 500,000 GB-s다. 실행 비용을 0.0000166667 USD/GB-s로 가정하면 약 8,333 USD이고, 요청 비용은 0.20 USD/백만 기준 2 USD이므로 총 약 8,335 USD 규모다.
동일 피크를 상시 서버(EC2/K8s)로 유지하는 방식과 비교하면 유휴 코어를 제거해 30~60% 비용 절감이 가능하다. 트래픽 변동성이 높을수록 효과가 커질 수 있으며 환경별 편차는 존재한다.
모델, 언어, 네트워크에 따라 p95 지연은 수십~수백 ms를 달성할 수 있다. 콜드스타트 영향은 프로비저닝 동시성으로 안정화하고, VPC 최적화와 프리패칭으로 첫 바이트 지연을 완화한다. 서버 패치와 용량 계획 부담이 줄어들며, IaC를 통해 보안과 컴플라이언스 구성을 표준화하기도 쉬워진다.
사설 연결과 관측성을 운영 기준으로 삼기
PrivateLink와 VPC Endpoints로 네트워크를 사설화하고, IAM 최소권한, KMS 전 구간 암호화, Secrets Manager 또는 Parameter Store 기반 비밀관리를 적용한다. API는 WAF와 Cognito/OIDC로 보호하고 감사 로깅은 한곳으로 모은다. 태깅, Organizations 구조, SCP, Config, CloudTrail은 컴플라이언스 통제를 강화하는 기반이 된다.
DLQ, 경보, RUM, 분산추적을 통합하고 p95/p99 성능 예산을 기준으로 SLO를 관리한다. Terraform, CloudFormation, CDK 같은 IaC는 재현성과 감사성을 확보하는 수단이다.
Lambda의 콜드스타트와 패키지 크기 제약은 운영 단순성과 맞바꾸는 요소다. 하이브리드 전용선은 비용과 복잡성을 늘리지만 데이터 거버넌스와 지연 요구를 충족할 수 있다. 서버리스 단위과금은 변동성이 있는 반면, 상시 서버는 비용 예측이 더 쉽다.
짧고 빈번한 요청, burst 트래픽, GPU가 필수가 아닌 워크로드는 Lambda 기반 추론과 잘 맞는다. 모델이 250MB 미만인지, 또는 EFS·컨테이너로 로딩 지연을 허용할 수 있는지도 확인해야 한다. 데이터 레지던시, 망분리, 규제 준수 요건과 IaC·관측성·보안 자동화의 준비 상태까지 함께 판단한다.
서버리스 ML은 짧은 요청 중심 추론과 변동 트래픽에서 비용 효율, 민첩성, 운영 단순화를 제공한다. 하이브리드 클라우드는 데이터 거버넌스와 지연 요구를 충족하면서 클라우드 확장성을 흡수하는 구조다. 모델 패키징, 네트워크 사설화, 멱등성, 동시성 관리가 표준화되어야 이 구성을 안정적으로 운영할 수 있으며, 최신 서비스 한도와 가격은 변경 가능성이 있으므로 도입 전에 최신 정보를 확인해야 한다.