AWS Lambda를 활용한 API 개발 정리
AWS Lambda와 API Gateway를 결합하면 서버 관리 없이 확장성, 비용 효율성, 유연성을 갖춘 API 백엔드를 빠르게 구축할 수 있습니다. 아래에 Lambda 기반 API 개발의 전체 흐름, 장점, 구조, 보안, 한계까지 체계적으로 정리합니다.
1. Lambda 기반 API 개발 구조
- Lambda 함수: 실제 비즈니스 로직(예: 데이터 저장, 조회, 처리 등)을 수행하는 코드 단위입니다. 각 API 엔드포인트별로 별도의 Lambda 함수를 둘 수 있습니다.
- API Gateway: 외부 클라이언트(웹/모바일 앱 등)로부터 HTTP 요청을 받아 Lambda 함수로 전달하는 역할을 합니다. RESTful API, WebSocket API 등 다양한 방식 지원.
- 이벤트 기반 트리거: Lambda는 HTTP 요청(API Gateway), S3 업로드, DynamoDB 변경 등 다양한 이벤트에 의해 실행될 수 있습니다.
예시 구조
API 엔드포인트 | 연결 Lambda 함수 | 기능 예시 |
---|
POST /users | 사용자등록 Lambda | 사용자 등록 |
GET /users/{id} | 사용자조회 Lambda | 사용자 정보 조회 |
POST /talents | 재능등록 Lambda | 재능 정보 등록 |
2. 개발 및 배포 절차
- Lambda 함수 생성
AWS 콘솔, CLI, 혹은 IaC(CDK, CloudFormation)로 함수 생성 후 코드 작성
- API Gateway와 연결
API Gateway에서 엔드포인트 생성 → 메서드(POST, GET 등)별로 Lambda 함수 연결
- 권한 및 보안 설정
IAM 역할, API 인증(OAuth, Cognito 등), CORS, 최소 권한 원칙 적용
- 테스트 및 배포
콘솔, Postman, curl 등으로 API 호출 테스트 후 배포.
3. Lambda API의 장점
- 서버 관리 불필요: 인프라 관리, 패치, 확장 등은 AWS가 자동 처리
- 자동 확장: 트래픽 증가 시 Lambda 인스턴스가 자동으로 늘어나고, 요청이 없으면 리소스가 줄어듬
- 비용 효율성: 코드가 실행된 시간과 요청 횟수만큼만 비용 발생
- 유연한 아키텍처: 마이크로서비스, 이벤트 기반 아키텍처에 적합
- 다양한 언어 지원: Python, Node.js, Java 등
4. 보안 및 운영 고려사항
- API 인증/인가: API Gateway에서 Cognito, OAuth, JWT 등으로 인증 처리
- IAM 최소 권한: Lambda 함수에 필요한 최소 권한만 부여
- 비밀관리: AWS Secrets Manager, 환경 변수 활용
- 로깅 및 모니터링: CloudWatch Logs, X-Ray 등으로 함수 동작 추적
- CORS 정책: 필요한 도메인만 허용하도록 설정
5. 한계 및 주의점
- 실행 시간 제한: Lambda 함수는 최대 15분까지만 실행 가능
- 콜드 스타트: 오랫동안 호출되지 않은 함수는 첫 실행 시 지연 발생 가능
- 동시성 제한: 리전별 기본 동시 실행 제한(기본 1,000개), 초과 시 스로틀링 발생
- DB 부하: 짧은 시간에 많은 요청이 몰릴 경우 DB에 부하가 집중될 수 있음
- 코드/패키지 용량 제한: 배포 패키지 최대 250MB
6. 실전 활용 예시
- 사용자 등록/조회 API: Lambda에서 DB에 사용자 정보 저장/조회, API Gateway로 HTTP 엔드포인트 제공
- 파일 업로드 후 처리: S3 업로드 이벤트 → Lambda로 이미지 리사이즈/처리
- 알림, 메시지 처리: SNS, SQS 이벤트 → Lambda로 비동기 알림 전송
- 데이터 분석/정기 작업: CloudWatch Events로 Lambda 예약 실행
7. 샘플 코드 (Node.js)
exports.handler = async (event) => {
const { name, email } = JSON.parse(event.body);
return {
statusCode: 201,
body: JSON.stringify({ message: '사용자 등록 완료' }),
};
};
요약
AWS Lambda를 활용한 API 개발은 서버 관리 부담 없이, 신속하게 확장 가능한 백엔드 API를 구축할 수 있는 현대적인 방법입니다. API Gateway와 결합해 RESTful API, 이벤트 기반 처리, 비용 효율성, 빠른 배포 등 다양한 장점을 누릴 수 있지만, 실행 시간·동시성·콜드 스타트 등 서버리스 특유의 한계도 함께 고려해야 합니다.