HTTP 요청으로 Lambda 함수를 호출하는 방법 선택하기
HTTP 요청으로 Lambda 함수를 호출하는 방법 선택하기 (Select a method to invoke your Lambda function using an HTTP request)
Lambda의 많은 일반적인 사용 사례는 HTTP 요청으로 함수를 호출하는 것과 관련돼 있어요. 예를 들어 웹 애플리케이션이 브라우저 요청으로 함수를 호출하게 하고 싶을 수 있죠. Lambda 함수는 완전한 REST API를 만들고, 모바일 앱의 사용자 상호작용을 처리하고, HTTP 호출을 통해 외부 서비스의 데이터를 처리하고, 커스텀 웹훅을 만드는 데도 쓸 수 있어요.
다음 섹션은 HTTP를 통해 Lambda를 호출할 때 어떤 선택지가 있는지 설명하고, 여러분의 특정 사용 사례에 맞는 올바른 결정을 내리는 데 도움이 되는 정보를 제공해요.
HTTP 호출 방법을 선택할 때 어떤 선택지가 있나요?
Lambda는 HTTP 요청으로 함수를 호출하는 두 가지 주요 방법, 즉 함수 URL(function URL)과 API Gateway를 제공해요. 두 옵션 사이의 주요 차이는 다음과 같아요.
- Lambda 함수 URL은 Lambda 함수를 위한 간단하고 직접적인 HTTP 엔드포인트를 제공해요. 단순함과 비용 효율에 최적화되어 있고, Lambda 함수를 HTTP로 노출하는 가장 빠른 방법이에요.
- API Gateway는 완전한 기능을 갖춘 API를 구축하기 위한 더 고급 서비스예요. 프로덕션 API를 규모 있게 구축하고 관리하는 데 최적화되어 있으며, 보안·모니터링·트래픽 관리를 위한 포괄적인 도구를 제공해요.
요구 사항을 이미 알고 있다면
요구 사항이 이미 분명하다면 기본 권장 사항은 다음과 같아요.
기본 인증 방법과 요청/응답 처리만 필요하고 비용과 복잡성을 최소한으로 유지하고 싶은 단순한 애플리케이션이나 프로토타이핑에는 함수 URL 을 권장해요.
API Gateway 는 규모 있는 프로덕션 애플리케이션, 또는 OpenAPI Description 지원, 다양한 인증 옵션 선택, 커스텀 도메인 이름, 스로틀링·캐싱·요청/응답 변환을 포함한 풍부한 요청/응답 처리 같은 더 고급 기능이 필요할 때 더 나은 선택이에요.
Lambda 함수 호출 방법을 선택할 때 고려할 사항
함수 URL과 API Gateway 사이에서 선택할 때 다음 요소를 고려해야 해요.
- OAuth나 Amazon Cognito로 사용자를 인증해야 하는지 같은 인증 요구 사항
- 확장 요구 사항과 구현하려는 API의 복잡성
- 요청 검증, 요청/응답 포맷팅 같은 고급 기능이 필요한지 여부
- 모니터링 요구 사항
- 비용 목표
이 요소들을 이해하면 보안, 복잡성, 비용 요구 사항을 가장 잘 균형 맞추는 옵션을 선택할 수 있어요.
다음 정보는 두 옵션 사이의 주요 차이를 요약해요.
- 함수 URL은 AWS Identity and Access Management(IAM)를 통한 기본 인증 옵션을 제공해요. 엔드포인트를 공개(인증 없음) 또는 IAM 인증 필요로 구성할 수 있어요. IAM 인증을 사용하면 표준 AWS 자격 증명이나 IAM 역할로 접근을 제어할 수 있어요. 설정이 간단하지만 다른 인증 방법에 비해 옵션이 제한적이에요.
- API Gateway는 더 포괄적인 인증 옵션에 접근할 수 있게 해줘요. IAM 인증 외에도 Lambda 권한 부여자(Lambda authorizer)(커스텀 인증 로직), Amazon Cognito 사용자 풀, OAuth2.0 흐름을 사용할 수 있어요. 이 유연성 덕분에 서드파티 인증 제공자, 토큰 기반 인증, 다중 인증(multi-factor authentication)을 포함한 복잡한 인증 체계를 구현할 수 있어요.
- 함수 URL은 기본 HTTP 요청·응답 처리를 제공해요. 표준 HTTP 메서드를 지원하고 내장 CORS(교차 출처 리소스 공유) 지원을 포함해요. JSON 페이로드와 쿼리 파라미터를 자연스럽게 처리할 수 있지만, 요청 변환이나 검증 기능은 제공하지 않아요. 응답 처리도 마찬가지로 간단해요 — 클라이언트는 Lambda 함수가 반환하는 그대로 응답을 받아요.
- API Gateway는 정교한 요청·응답 처리 기능을 제공해요. 요청 검증기를 정의하고, 매핑 템플릿으로 요청·응답을 변환하고, 요청/응답 헤더를 설정하고, 응답 캐싱을 구현할 수 있어요. API Gateway는 바이너리 페이로드와 커스텀 도메인 이름도 지원하며, 응답이 클라이언트에 도달하기 전에 수정할 수 있어요. JSON Schema로 요청/응답 검증·변환용 모델을 설정할 수 있어요.
- 함수 URL은 Lambda 함수의 동시성 한도에 맞춰 직접 확장하며, 함수를 최대 구성 동시성 한도까지 확장해 트래픽 급증을 처리해요. 그 한도에 도달하면 Lambda는 추가 요청에 HTTP 429 응답을 보내요. 내장 큐잉 메커니즘이 없으므로 스케일링 처리는 전적으로 Lambda 함수의 구성에 달려 있어요. 기본적으로 Lambda 함수는 AWS 리전당 동시 실행 1,000개의 한도가 있어요.
- API Gateway는 Lambda 자체의 확장 위에 추가 확장 기능을 제공해요. 내장 요청 큐잉과 스로틀링 제어가 포함되어 있어 트래픽 급증을 더 우아하게 관리할 수 있어요. API Gateway는 기본적으로 리전당 초당 최대 10,000건의 요청을 처리할 수 있고, 버스트 용량은 초당 5,000건이에요. 백엔드를 보호하기 위해 요청을 여러 수준(API, 스테이지, 메서드)에서 스로틀링하는 도구도 제공해요.
- 함수 URL은 요청 수, 지연 시간, 오류율을 포함한 Amazon CloudWatch 지표를 통한 기본 모니터링을 제공해요. 함수로 들어오는 원시 요청을 보여주는 표준 Lambda 지표와 로그에 접근할 수 있어요. 필수적인 운영 가시성을 제공하지만, 지표는 주로 함수 실행에 집중돼 있어요.
- API Gateway는 상세 지표, 로깅, 추적 옵션을 포함한 포괄적인 모니터링 기능을 제공해요. CloudWatch로 API 호출, 지연 시간, 오류율, 캐시 적중/실패율을 모니터링할 수 있어요. API Gateway는 분산 추적을 위해 AWS X-Ray와도 통합하고, 사용자화 가능한 로깅 형식을 제공해요.
- 함수 URL은 표준 Lambda 가격 모델을 따라요 — 함수 호출과 컴퓨팅 시간에 대해서만 비용을 내요. URL 엔드포인트 자체에 추가 요금은 없어요. 따라서 API Gateway의 추가 기능이 필요 없는 단순한 API나 저트래픽 애플리케이션에 비용 효율적인 선택이에요.
- API Gateway는 REST API에 대해 수신 백만 건의 API 호출과 HTTP API에 대해 수신 백만 건의 API 호출을 포함하는 무료 티어(free tier)를 제공해요. 이후에는 API 호출, 데이터 전송, 캐싱(활성화된 경우)에 대해 요금을 부과해요. 여러분의 사용 사례 비용을 이해하려면 API Gateway 가격 페이지를 참고하세요.
- 함수 URL은 단순함과 직접적인 Lambda 통합을 위해 설계됐어요. HTTP와 HTTPS 엔드포인트를 모두 지원하고, 내장 CORS 지원을 제공하며, 듀얼 스택(IPv4와 IPv6) 엔드포인트를 제공해요. 고급 기능은 부족하지만, Lambda 함수를 HTTP로 빠르고 간단하게 노출해야 하는 시나리오에서 뛰어나요.
- API Gateway는 API 버전 관리, 스테이지 관리, 사용 계획용 API 키, Swagger/OpenAPI를 통한 API 문서화, WebSocket API, VPC 내 프라이빗 API, 추가 보안을 위한 WAF 통합 등 수많은 추가 기능을 포함해요. 카나리 배포, 테스트용 목(mock) 통합, Lambda를 넘어 다른 AWS 서비스와의 통합도 지원해요.
Lambda 함수를 호출할 방법 선택하기
Lambda 함수 URL과 API Gateway 사이의 선택 기준과 주요 차이를 읽었으니, 이제 요구 사항을 가장 잘 충족하는 옵션을 선택하고 다음 리소스를 사용해 시작할 수 있어요.
함수 URL
다음 리소스로 함수 URL을 시작해 보세요.
- 튜토리얼 함수 URL로 Lambda 함수 만들기를 따라 보세요.
- 이 안내서의 Lambda 함수 URL 만들기·관리하기 장에서 함수 URL에 대해 자세히 알아보세요.
- 콘솔 안내형 튜토리얼 Create a simple web app을 다음처럼 시도해 보세요.
- Lambda 콘솔의 functions 페이지를 열어요.
- 화면 오른쪽 위 모서리의 아이콘을 선택해 도움말 패널을 열어요.
- Tutorials를 선택해요.
- Create a simple web app에서 Start tutorial을 선택해요.
API Gateway
다음 리소스로 Lambda와 API Gateway를 시작해 보세요.
- 튜토리얼 Lambda를 API Gateway와 함께 사용하기를 따라 백엔드 Lambda 함수와 통합된 REST API를 만들어요.
- Amazon API Gateway Developer Guide의 다음 섹션에서 API Gateway가 제공하는 다양한 API 종류에 대해 자세히 알아보세요. API Gateway REST APIs, API Gateway HTTP APIs, API Gateway WebSocket APIs
- Amazon API Gateway Developer Guide의 Tutorials and workshops 섹션에서 예시를 하나 이상 시도해 보세요.