☁️
AWS Lambda, API Gateway
July 17, 2024
AWS Lambda, API Gateway
AWS Lambda
AWS Lambda는 서버리스 컴퓨팅 서비스로, 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있게 해준다. Lambda는 특정 이벤트에 의해 트리거되며, 필요할 때만 실행된다. 이는 비용 효율적이며 확장성이 뛰어나다.
주요 특징
- 서버리스: 서버를 관리할 필요 없이 코드를 실행할 수 있다.
- 이벤트 기반: 특정 이벤트가 발생했을 때만 함수가 실행된다.
- 자동 확장: 수요에 따라 자동으로 확장된다.
- 비용 효율성: 사용한 만큼만 비용을 지불한다. 프리 티어로 매달 백만 개의 Lambda 호출과 40만 GB-초의 컴퓨팅 시간이 제공된다.
작동 원리
- 함수 정의: Lambda 함수를 정의하고, 필요한 코드와 리소스를 지정한다.
- 이벤트 트리거: 특정 이벤트가 발생하면 Lambda 함수가 트리거된다.
- 코드 실행: Lambda 함수가 실행되어 지정된 작업을 수행한다.
사용 사례
- 서버리스 섬네일 생성 서비스: 사용자가 S3 버킷에 이미지를 업로드하면 Lambda 함수가 트리거되어 이미지를 섬네일로 변환하고, 다시 S3에 저장하거나 DynamoDB에 메타데이터를 저장한다.
- 서버리스 CRON 작업: CloudWatch Events 또는 EventBridge를 사용하여 정기적으로 Lambda 함수를 트리거하고, 지정된 작업을 수행한다.
지원 언어
- Node.js
- Python
- Java
- C#
- Golang
- Ruby
- 사용자 정의 런타임 API를 통해 다른 언어도 지원
Lambda 컨테이너 이미지
Lambda는 특정 Docker 이미지를 실행할 수 있는 기능도 제공한다. 이러한 이미지는 Lambda 런타임 API에 적합해야 한다.
가격 정책
- 요청당 비용: 매달 백만 번의 Lambda 호출은 무료. 그 이후로 백만 개의 요청당 0.20달러.
- 컴퓨팅 시간당 비용: 프리 티어로 400,000GB-초의 컴퓨팅 시간 제공. 그 이후로 600,000GB-초당 1달러.
Amazon API Gateway
Amazon API Gateway는 서버리스 HTTP API를 구축하고 관리할 수 있는 서비스다. API Gateway를 사용하면 외부 클라이언트가 Lambda 함수에 접근할 수 있도록 API를 제공할 수 있다.
주요 특징
- 완전 관리형 서비스: API를 쉽게 만들고 게시, 유지, 모니터링 및 보호할 수 있다.
- 서버리스: 서버를 관리할 필요 없이 API를 확장할 수 있다.
- RESTful 및 WebSocket API 지원: RESTful API와 WebSocket API를 모두 지원하여 다양한 애플리케이션에 사용할 수 있다.
- 보안 및 인증: API 키, 사용자 인증, 스로틀링 등의 기능을 지원하여 안전한 API를 제공할 수 있다.
작동 원리
- API 생성: API Gateway를 사용하여 API를 정의하고, 필요한 리소스를 설정한다.
- Lambda 연동: API Gateway가 Lambda 함수와 연동되어 요청을 프록시한다.
- 클라이언트 통신: 클라이언트가 API Gateway를 통해 Lambda 함수에 요청을 보내고, 결과를 받는다.
사용 사례
- 서버리스 웹 애플리케이션: API Gateway와 Lambda를 사용하여 서버리스 웹 애플리케이션을 구축하고, 데이터를 처리한다.
- 백엔드 서비스: 외부 클라이언트가 접근할 수 있는 백엔드 서비스를 API Gateway와 Lambda를 사용하여 제공한다.
통합 예시
Lambda를 사용하여 DynamoDB에서 데이터를 읽고, 만들고, 업데이트하고 삭제하는 서버리스 HTTP API를 구축할 수 있다. API Gateway는 클라이언트 요청을 Lambda 함수에 프록시하여 데이터를 처리한다.