Lambda를 선택한 이유
AWS Lambda는 간헐적이고 이벤트 기반의 영상 처리 작업에 최적화된 선택이라고 생각합니다.
프로젝트의 목표(메인 서버의 부담 감소, 비용 절감, 확장성 확보)와 일치하며,
AWS 생태계를 활용한 간단한 통합과 유지보수가 용이합니다.
1. 비용 효율성
- Lambda는 사용한 만큼만 비용을 지불하는 구조(초당 과금)로, 영상 처리 작업이 요청 기반으로 간헐적으로 발생하는 경우 매우 경제적입니다.
- 항상 실행 중인 서버를 유지할 필요가 없기 때문에, 처리량이 적은 시간대나 초기 단계에서 비용 절감 효과가 큽니다.
2. 확장성
- Lambda는 자동 확장이 가능하여 동시 요청이 많아져도 관리 없이 처리 가능합니다.
- 영상 처리 요청이 갑자기 급증하는 경우에도 별도의 추가 설정 없이 수평 확장이 이루어집니다.
3. 빠른 개발 및 배포
- Lambda는 코드 업로드만으로 실행 가능하며, AWS S3 및 Step Functions와 같은 서비스와 쉽게 통합됩니다.
- 새로운 영상 처리 기능을 빠르게 추가하거나 수정하여 배포 시간을 단축할 수 있습니다.
4. AWS 생태계와의 통합
- Lambda는 AWS의 다른 서비스(S3, DynamoDB, Step Functions 등)와 자연스럽게 연동되며, 이벤트 기반 트리거를 쉽게 설정할 수 있습니다.
- 예: 사용자가 S3에 동영상을 업로드하면 Lambda가 자동으로 트리거되어 처리 시작.
5. 유연한 처리 환경
- Lambda의 사용 가능한 메모리 크기와 실행 시간 제한(최대 15분)을 통해 대부분의 일반적인 영상 처리 작업을 처리할 수 있습니다.
- 다양한 언어(Python, Node.js, Go 등)와 함께 사용 가능하여 프로젝트 요구 사항에 맞춘 구현이 가능합니다.
6. 단일 기능에 집중
- Lambda는 특정 작업(영상 처리)만을 수행하도록 설계되어, 메인 서버의 복잡성을 낮추고 명확한 역할 분담을 제공합니다.
- 메인 서버는 사용자 요청과 응답 관리에 집중하고, 영상 처리는 Lambda로 위임.
단점 및 대안 고려
- 15분 실행 제한: 긴 영상 처리에는 적합하지 않을 수 있습니다.
- 대안: AWS Fargate 또는 ECS를 통해 장시간 작업 처리.
- 동시 실행 제한: 기본 계정 제한은 1,000 동시 실행. 초과 시 요청 대기 발생.
- 해결책: AWS Support를 통해 제한 증설 요청 가능.
Lambda와 유사한 기능들 정리
1. AWS Fargate
- 특징: 컨테이너 기반 서버리스 서비스. Lambda보다 긴 실행 시간과 더 세밀한 리소스 제어 가능.
- 장점:
- 실행 시간 제한 없음.
- 복잡한 작업(다중 컨테이너 사용) 가능.
- ECS 및 Kubernetes와 통합.
- 단점:
- Lambda에 비해 초기 설정이 복잡.
- 비용이 더 높을 수 있음(컨테이너 지속 실행 시).
2. AWS Batch
- 특징: 대규모 배치 작업 처리에 최적화된 관리형 서비스.
- 장점:
- 대량 데이터 처리에 적합.
- 비정형 대규모 작업에서 효율적.
- 단점:
- Lambda처럼 즉시 응답하는 이벤트 기반 처리가 아님.
- 설정과 관리가 더 복잡.
3. Google Cloud Functions
- 특징: Google Cloud의 서버리스 함수 실행 서비스.
- 장점:
- AWS Lambda와 유사한 이벤트 기반 트리거.
- Google 생태계(GCS, Pub/Sub)와 자연스럽게 연동.
- 단점:
- 실행 시간 제한(9분).
- AWS Lambda보다 리전 가용성이 적을 수 있음.
참고자료
AWS Lambda - FAQ
AWS Lambda 장단점과 운영의 어려움
AWS와 Azure 서비스 비교 - Microsoft Learn
AWS 람다 vs Azure 함수: 서버리스 컴퓨팅 서비스의 성능과 ...
[AWS] 람다(Lambda) 개념 & 사용법 총정리 - Inpa Dev
클라우드 컴퓨팅을 위한 AWS Lambda의 7가지 이점