HTTP 요청으로 Lambda 함수를 호출하는 방법 선택하기

HTTP 요청으로 Lambda 함수를 호출하는 방법 선택하기 (Select a method to invoke your Lambda function using an HTTP request)

Lambda의 많은 일반적인 사용 사례는 HTTP 요청으로 함수를 호출하는 것이에요. 예를 들어 웹 애플리케이션이 브라우저 요청으로 함수를 호출하게 하고 싶을 수 있어요. Lambda 함수는 전체 REST API를 만들거나, 모바일 앱의 사용자 상호작용을 처리하거나, HTTP 호출로 외부 서비스의 데이터를 처리하거나, 커스텀 웹훅을 만드는 데도 사용할 수 있어요.

아래 섹션들은 HTTP로 Lambda를 호출할 때의 선택지를 설명하고, 특정 사용 사례에 맞는 올바른 결정을 내리는 데 도움을 줘요.

출처: AWS Lambda 개발자 안내서

본문

HTTP 호출 방법을 선택할 때의 선택지

Lambda는 HTTP 요청으로 함수를 호출하는 두 가지 주요 방법을 제공해요 — function URLs와 API Gateway. 두 옵션의 핵심 차이는 다음과 같아요.

  • Lambda function URLs는 Lambda 함수를 위한 간단하고 직접적인 HTTP 엔드포인트를 제공해요. 단순성과 비용 효율성에 최적화되어 있으며, Lambda 함수를 HTTP로 노출하는 가장 빠른 경로를 제공해요.
  • API Gateway는 완전한 기능을 갖춘 API를 만드는 더 고급 서비스예요. 규모 있는 프로덕션 API를 구축·관리하는 데 최적화되어 있고, 보안, 모니터링, 트래픽 관리를 위한 포괄적인 도구를 제공해요.

요구 사항을 이미 알고 있다면

요구 사항이 이미 명확하다면 기본 권장사항은 다음과 같아요.

기본 인증 방법과 요청/응답 처리만 필요하고 비용과 복잡성을 최소화하고 싶은 간단한 애플리케이션 또는 프로토타이핑에는 function URLs를 권장해요.

API Gateway는 규모 있는 프로덕션 애플리케이션, 또는 OpenAPI Description 지원, 다양한 인증 옵션, 커스텀 도메인 이름, 스로틀링·캐싱·요청/응답 변환을 포함한 풍부한 요청/응답 처리가 필요한 경우에 더 나은 선택이에요.

함수 호출 방법을 선택할 때 고려할 사항

function URLs와 API Gateway 중에 선택할 때 다음 요소를 고려해야 해요.

  • 인증 요구 사항(사용자 인증에 OAuth나 Amazon Cognito가 필요한지 여부)
  • 확장 요구 사항과 구현하려는 API의 복잡성
  • 요청 검증, 요청/응답 포맷팅 같은 고급 기능이 필요한지 여부
  • 모니터링 요구 사항
  • 비용 목표

이 요소들을 이해하면 보안, 복잡성, 비용 요구를 가장 잘 균형 잡는 옵션을 선택할 수 있어요.

다음 정보는 두 옵션의 주요 차이를 요약해요.

  • 인증 — function URLs는 AWS Identity and Access Management(IAM)를 통한 기본 인증 옵션을 제공합니다. 엔드포인트를 공개(인증 없음) 또는 IAM 인증 필요로 구성할 수 있습니다. IAM 인증을 사용하면 표준 AWS 자격 증명이나 IAM 역할로 접근을 제어할 수 있습니다. 설정은 간단하지만 다른 인증 방법에 비해 옵션이 제한적입니다. 반면 API Gateway는 더 포괄적인 인증 옵션에 접근할 수 있습니다. IAM 인증 외에도 Lambda authorizer(커스텀 인증 로직), Amazon Cognito 사용자 풀, OAuth2.0 흐름을 사용할 수 있어, 타사 인증 제공자, 토큰 기반 인증, 다중 인증(MFA)을 포함한 복잡한 인증 체계를 구현할 수 있습니다.
  • 요청/응답 처리 — function URLs는 기본 HTTP 요청·응답 처리를 제공합니다. 표준 HTTP 메서드를 지원하고 교차 출처 리소스 공유(CORS)를 내장합니다. JSON payload와 쿼리 파라미터를 자연스럽게 처리하지만 요청 변환이나 검증 기능은 없습니다. 응답 처리는 마찬가지로 단순합니다 — 클라이언트는 Lambda 함수가 반환한 그대로의 응답을 받습니다. 반면 API Gateway는 정교한 요청·응답 처리 기능을 제공합니다. 요청 검증기를 정의하고, 매핑 템플릿으로 요청·응답을 변환하고, 요청/응답 헤더를 설정하고, 응답 캐싱을 구현할 수 있습니다. API Gateway는 바이너리 payload와 커스텀 도메인 이름도 지원하며 클라이언트에 도달하기 전에 응답을 수정할 수 있습니다. JSON Schema로 요청/응답 검증·변환 모델을 설정할 수 있습니다.
  • 확장 — function URLs는 Lambda 함수의 동시성 한도에 직접 확장하며, 함수를 구성된 최대 동시성 한도까지 확장해 트래픽 급증을 처리합니다. 한도에 도달하면 Lambda는 추가 요청에 HTTP 429 응답으로 응답합니다. 내장된 큐잉 메커니즘이 없으므로 확장 처리는 전적으로 Lambda 함수 구성에 달려 있습니다. 기본적으로 Lambda 함수는 AWS 리전당 1,000개 동시 실행 한도가 있습니다. 반면 API Gateway는 Lambda 자체 확장 위에 추가 확장 기능을 제공합니다. 내장 요청 큐잉·스로틀링 제어가 있어 트래픽 급증을 더 원활하게 관리합니다. API Gateway는 기본적으로 리전당 초당 최대 10,000개 요청을 처리할 수 있고, 초당 5,000개 요청의 버스트 용량을 가집니다. 또한 백엔드를 보호하기 위해 API, 단계, 메서드 수준에서 요청을 스로틀링하는 도구를 제공합니다.
  • 모니터링 — function URLs는 요청 수, 지연, 오류율을 포함한 Amazon CloudWatch 지표를 통한 기본 모니터링을 제공합니다. 함수로 들어오는 원시 요청을 보여주는 표준 Lambda 지표와 로그에 접근할 수 있습니다. 필수적인 운영 가시성은 제공하지만 지표는 주로 함수 실행에 초점을 둡니다. 반면 API Gateway는 상세 지표, 로깅, 추적 옵션을 포함한 포괄적 모니터링 기능을 제공합니다. CloudWatch로 API 호출, 지연, 오류율, 캐시 적중·실패율을 모니터링할 수 있고, 분산 추적을 위해 AWS X-Ray와 통합되며 커스터마이즈 가능한 로깅 형식을 제공합니다.
  • 비용 — function URLs는 표준 Lambda 요금 모델을 따릅니다 — 함수 호출과 컴퓨팅 시간에 대해서만 지불합니다. URL 엔드포인트 자체에는 추가 요금이 없습니다. API Gateway의 추가 기능이 필요 없고 간단한 API나 저트래픽 애플리케이션에는 비용 효율적인 선택입니다. 반면 API Gateway는 REST API에 대해 받은 100만 API 호출, HTTP API에 대해 받은 100만 API 호출을 포함하는 프리 티어를 제공합니다. 이후에는 API 호출, 데이터 전송, 캐싱(활성화 시)에 대해 API Gateway가 요금을 부과합니다.
  • 기타 기능 — function URLs는 단순성과 직접적인 Lambda 통합을 위해 설계되었습니다. HTTP와 HTTPS 엔드포인트를 모두 지원하고, CORS를 내장하며, 듀얼 스택(IPv4·IPv6) 엔드포인트를 제공합니다. 고급 기능은 부족하지만 Lambda 함수를 HTTP로 빠르고 간단하게 노출해야 하는 시나리오에서 뛰어납니다. 반면 API Gateway는 API 버전 관리, 단계 관리, 사용량 플랜용 API 키, Swagger/OpenAPI 문서화, WebSocket API, VPC 내 프라이빗 API, 보안 강화용 WAF 통합 등 많은 추가 기능을 포함합니다. 카나리 배포, 테스트용 모의 통합, Lambda를 넘어 다른 AWS 서비스와의 통합도 지원합니다.

Lambda 함수 호출 방법 선택

function URLs와 API Gateway 사이의 선택 기준과 주요 차이를 읽었으니, 이제 요구 사항에 가장 잘 맞는 옵션을 선택하고 시작하는 데 다음 리소스를 사용할 수 있어요.

Function URLs

  • function URLs 튜토리얼(Creating a Lambda function with a function URL)을 따라가보세요.
  • 이 가이드의 function URLs 만들기·관리하기 장에서 function URLs에 대해 더 알아보세요.
  • 콘솔 안내 튜토리얼 Create a simple web app을 시도해보세요.
    • Lambda 콘솔의 functions 페이지를 엽니다.
    • 화면 오른쪽 상단의 아이콘을 선택해 도움말 패널을 엽니다.
    • Tutorials를 선택합니다.
    • Create a simple web app에서 Start tutorial을 선택합니다.

API Gateway

  • 튜토리얼(Using Lambda with API Gateway)을 따라 백엔드 Lambda 함수와 통합된 REST API를 만드세요.
  • Amazon API Gateway 개발자 안내서의 다음 섹션에서 API Gateway가 제공하는 다양한 API 종류에 대해 더 알아보세요.
    • API Gateway REST APIs
    • API Gateway HTTP APIs
    • API Gateway WebSocket APIs
  • Amazon API Gateway 개발자 안내서의 튜토리얼·워크숍 섹션에서 예제를 하나 이상 시도해보세요.

더 알아보기 (Learn more)