Lambda
개요Lambda
는 AWS의 서버리스 함수 실행 서비스이다.Functions
, GCP의 Google Cloud Functions
와 유사Runtime
환경을 제공파일 처리
, 스트림 처리
, 간단한 모바일 백엔드
, IOT 백엔드
서비스 구성에 유용Pay as you go
VM
, Container
형태의 컴퓨팅 서비스는 항상 가동시간을 기준으로 1초 단위로 요금을 계산Runtime
이 제공되는 Lambda
는 ms 단위로 함수 실행 시간을 요금으로 계산VM
, Container
와 달리 runtime
환경은 클라이언트에게 동적 파일
을 서빙하는 경우에만 작동하도록 할 수 있고, Idle 상태를 피할 수 있음.Lambda
를 Web Server로만약 Lambda
로 Web Server
를 구현하고 안정적인 서비스를 운영하고자 한다면 고려해야할 점이 한 두가지가 아님.
Lambda
를 쓰기로 한 이상, 웹서버가 제공해주었던 기능을 코드나 다른 서비스를 이용해 구현해야 함.Lambda
와의 연결 방법기능 | 대체 방법 |
---|---|
API 호출 | AWS API Gateway 이용 |
정적파일 서빙 | CDN 서비스 - AWS CloudFront와 API Gateway를 연결 - CDN 서비스를 이용해서 프레임워크에서 정적파일을 서빙하도록 구조를 변경 (e.g. whitenoise ) |
DDoS 방어 | AWS Web Application Firewall AWS CloudFront |
로드밸런싱 | AWS CloudFront + API Gateway |
인터넷 연결 | Internet Gateway |
리소스 연결 | Endpoint Gateway(for S3, DynamoDB) |
Cron Job | AWS EventBridge |
고정 IP | NAT Gateway + Elstic IP |
SSL 인증 | CloudFront나 API Gateway에 SSL 인증서 설치 |
EventBridge
와 다른 서비스와 결합을 위한 SNS
, SQS
까지 추가하면 서비스를 위한 구조Route53
과 CloudFront
는 꼭 필요하지는 않음