Lambda 함수와 API Gateway의 연동 구조
AWS Lambda와 API Gateway의 연동 구조는 서버리스 아키텍처의 핵심입니다. 이 구조를 통해 외부 클라이언트(웹, 모바일 등)에서 HTTP 요청을 보내면, API Gateway가 이를 받아 Lambda 함수를 호출하고, Lambda 함수가 비즈니스 로직을 처리한 뒤 결과를 다시 API Gateway를 통해 클라이언트에 반환합니다.
전체 연동 흐름
-
클라이언트 요청
- 사용자가 웹/모바일 앱 등에서 HTTP(S) 요청을 보냅니다.
-
API Gateway 수신 및 라우팅
- API Gateway가 엔드포인트(예: /users, /orders 등)와 HTTP 메서드(예: GET, POST 등)에 따라 요청을 수신합니다.
- 각 엔드포인트와 메서드는 특정 Lambda 함수에 매핑됩니다.
-
Lambda 함수 호출
- API Gateway가 요청을 Lambda 함수로 전달합니다.
- Lambda 함수는 전달받은 이벤트(요청 데이터, 헤더, 쿼리스트링 등)를 기반으로 비즈니스 로직을 실행합니다.
-
응답 반환
- Lambda 함수가 처리 결과를 반환하면, API Gateway가 이를 HTTP 응답 형태로 변환하여 클라이언트에 전달합니다.
연동 방식: 프록시(Proxy)와 비프록시(Non-Proxy)
구성 예시
[Client]
│ HTTP(S) Request
▼
[API Gateway]
│ Lambda Trigger (Proxy/Non-Proxy)
▼
[AWS Lambda Function]
│ (DB, S3 등과 연동)
▼
[API Gateway]
│ HTTP Response
▼
[Client]
보안 및 관리
- IAM 역할 및 권한: Lambda 함수에 필요한 최소 권한만 부여합니다.
- API 인증/인가: API Gateway에서 Cognito, JWT, API Key 등 다양한 인증 방식 적용 가능.
- 트래픽 관리: API Gateway가 요청량을 제한(Throttling)하고, 대량 요청에도 자동 확장 지원.
요약
- API Gateway는 외부 HTTP 요청을 받아 Lambda 함수를 호출하고, Lambda 함수의 실행 결과를 다시 HTTP 응답으로 반환하는 중계자 역할을 합니다.
- 프록시 통합과 비프록시 통합 두 가지 방식이 있으며, 각각의 유연성과 제어 수준이 다릅니다.
- 이 구조를 통해 서버 관리 없이 확장성 높고, 보안이 강화된 API를 손쉽게 구축할 수 있습니다.