통합: Lambda, HTTP 및 모의 통합
API Gateway 메서드를 Lambda 프록시 통합, 업스트림 HTTP 엔드포인트 및 테스트용 모의 통합에 연결합니다.
통합: Lambda, HTTP 및 모의 통합은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
API 게이트웨이 통합 유형 개요
모든 API 게이트웨이 메서드에는 요청을 처리하고 응답을 반환하는 시스템인 백엔드 통합이 필요합니다. API 게이트웨이는 Lambda 프록시, Lambda 사용자 지정, HTTP 프록시, HTTP 사용자 지정, Mock의 다섯 가지 통합 유형을 지원합니다. HTTP API는 Lambda 프록시와 HTTP 프록시만 지원합니다. REST API는 다섯 가지를 모두 지원합니다. 적절한 통합을 선택하면 요청과 응답을 얼마나 세밀하게 변환할지 결정할 수 있습니다.
Lambda 프록시 통합
Lambda 프록시 통합을 사용하면 API 게이트웨이가 헤더, 쿼리 문자열, 경로 매개변수, 본문, 컨텍스트를 포함한 전체 HTTP 요청을 구조화된 이벤트 객체로 Lambda에 전달합니다. Lambda 함수는 statusCode, headers, body가 포함된 올바른 형식의 응답 객체를 반환해야 합니다. 이는 가장 단순하고 일반적인 패턴으로, 매핑 템플릿이 필요하지 않으며 Lambda가 전체 응답을 제어합니다.
def lambda_handler(event, context):
# event.httpMethod, event.path, event.queryStringParameters
# event.headers, event.body
user_id = event['pathParameters']['userId']
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': '{"userId": "' + user_id + '", "name": "Alice"}'
}Lambda 비프록시(사용자 지정) 통합
Lambda 비프록시(사용자 지정 통합)를 사용하면 API 게이트웨이가 매핑 템플릿(Apache Velocity Template Language, VTL)으로 요청을 Lambda에 보내기 전에 변환하고, Lambda의 응답을 클라이언트에 반환하기 전에 변환합니다. Lambda 함수는 원시 API 게이트웨이 이벤트가 아니라 깔끔한 사용자 지정 페이로드를 받습니다. 이렇게 하면 전송 관련 문제와 비즈니스 로직을 분리할 수 있지만 VTL 템플릿을 유지 관리해야 합니다. API와 백엔드 사이의 계약을 엄격히 분리하려는 경우 사용자 지정 통합을 사용하십시오.
## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
'userId': '$input.params('userId')',
'action': '$inputRoot.action',
'timestamp': '$context.requestTime'
}HTTP 프록시 통합
HTTP 프록시 통합은 변환 없이 요청을 외부 HTTP 엔드포인트(EC2 인스턴스, ALB, 온프레미스 서버 또는 모든 공개 URL일 수 있음)로 직접 전달합니다. API 게이트웨이는 요청을 그대로 전달하고 백엔드의 응답을 클라이언트에 반환합니다. 이는 기존 REST 백엔드 코드를 변경하지 않고 API 게이트웨이 뒤로 이전하여 스로틀링, 모니터링, API 키를 추가할 때 적합합니다. 인증서 확인을 사용하는 HTTPS 백엔드를 지원합니다.
# Create HTTP proxy integration via REST API
aws apigateway put-integration \
--rest-api-id 'abc123' \
--resource-id 'xyz789' \
--http-method GET \
--type HTTP_PROXY \
--integration-http-method GET \
--uri 'https://my-backend.example.com/api/users/{userId}'HTTP 사용자 지정(비프록시) 통합
HTTP 사용자 지정 통합도 외부 HTTP 엔드포인트로 전달하지만, 매핑 템플릿을 사용해 백엔드로 전송되는 요청과 반환되는 응답을 모두 변환합니다. API 게이트웨이 인터페이스와 백엔드 API의 계약이 서로 다를 때 유용합니다. REST API 호출을 기존 SOAP 또는 사용자 지정 형식으로 변환하고, 백엔드 응답을 클라이언트에 제공할 깔끔한 JSON 구조로 다시 변환할 수 있습니다. 복잡성은 증가하지만 기존 시스템 통합을 가장 세밀하게 제어할 수 있습니다.
AWS 서비스 통합
AWS 서비스 통합은 Lambda를 중간 계층으로 사용하지 않고 API 게이트웨이를 AWS 서비스에 직접 연결합니다. 예를 들어 POST 엔드포인트를 구성하여 SQS에 직접 메시지를 기록하거나 SNS에 게시하거나 Step Functions 실행을 시작할 수 있습니다. 이를 통해 지연 시간을 줄이고 단순한 라우팅 작업에 대한 Lambda 함수 비용을 없앨 수 있습니다. AWS API 호출을 올바른 형식으로 만들려면 IAM 역할 구성과 매핑 템플릿이 필요합니다.
# Direct API Gateway → SQS integration
# Integration Request URI:
https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
# Integration Request Body Mapping Template:
Action=SendMessage&MessageBody=$input.body개발 및 테스트를 위한 Mock Integration
Mock integration은 백엔드를 호출하지 않고 미리 정의된 응답을 반환하도록 API Gateway를 구성합니다. 통합 응답 매핑 템플릿에서 응답을 정의합니다. Mock 통합은 다음과 같은 경우에 적합합니다. 백엔드가 구축되기 전 API 개발(프런트엔드 팀이 즉시 작업 시작 가능), API 구성 단위 테스트, 표준 CORS 헤더 반환, 개발 중 서드 파티 파트너를 위한 스텁 제공 등입니다. Mock 엔드포인트는 410 Gone을 반환하여 더 이상 사용하지 않는 API 버전을 차단하는 데에도 사용할 수 있습니다.
# Integration Response for Mock
# Integration Response Mapping Template:
{
'statusCode': 200,
'message': 'This is a mock response',
'timestamp': '$context.requestTime'
}
# Method Response: map status code 200 to this templateAPI Gateway의 CORS 구성
CORS (Cross-Origin Resource Sharing)는 한 도메인의 브라우저 클라이언트가 다른 도메인의 API를 호출할 때 활성화해야 합니다. HTTP API에는 한 번의 클릭으로 설정할 수 있는 CORS 구성이 제공되지만, REST API에서는 필요한 CORS 헤더(Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers)를 반환하는 Mock 통합을 사용하는 OPTIONS method를 생성해야 합니다. Lambda 프록시 통합을 사용하는 경우에도 Lambda가 응답에 CORS 헤더를 반환해야 합니다.
# HTTP API CORS config (simple)
aws apigatewayv2 update-api \
--api-id 'abc123' \
--cors-configuration '{
"AllowOrigins": ["https://myapp.example.com"],
"AllowMethods": ["GET", "POST", "OPTIONS"],
"AllowHeaders": ["Content-Type", "Authorization"]
}'REST API의 요청 검증
REST API는 요청 검증을 지원합니다. API Gateway는 백엔드를 호출하기 전에 필수 쿼리 문자열 매개변수, 헤더 및 요청 본문 스키마가 존재하고 올바른 형식인지 검증할 수 있습니다. 이를 통해 형식이 잘못된 요청으로 인한 불필요한 Lambda 호출을 줄이고 표준화된 400 오류를 자동으로 반환할 수 있습니다. JSON 스키마를 사용하여 요청 모델을 정의하고 이를 method에 연결하면 본문 검증을 활성화할 수 있습니다. 요청 검증은 HTTP API에서 사용할 수 없습니다.
통합 시간 초과
API Gateway의 REST API 및 HTTP API에 대한 기본 통합 시간 초과는 29초입니다(REST API에서는 최대 시간이며, HTTP API 프록시에서는 고정값입니다). 백엔드 처리에 29초보다 오래 걸리면 API Gateway가 504 Gateway Timeout 오류를 반환합니다. 즉, API Gateway를 통해 동기적으로 호출되는 Lambda 함수는 Lambda 자체가 15분의 시간 초과를 지원하더라도 29초 이내에 완료되어야 합니다. 장시간 실행되는 작업에는 비동기 패턴을 사용하십시오. API Gateway가 Lambda를 트리거하면 Lambda가 비동기 작업을 시작하고 작업 ID를 즉시 반환하도록 구성합니다.
적절한 통합 유형 선택
통합 유형 선택 가이드: Lambda Proxy: 가장 일반적이고 간단하며 Lambda에서 요청을 완전히 제어할 수 있습니다. Lambda Custom: 게이트웨이 계층에서 요청과 응답을 변환해야 할 때 사용합니다. HTTP Proxy: 기존 HTTP 백엔드 또는 마이그레이션 시나리오에 사용합니다. HTTP Custom: 레거시 API 형식을 변환할 때 사용합니다. AWS Service: SQS/SNS/DynamoDB로 간단히 라우팅할 때 Lambda를 제거할 수 있습니다. Mock: 개발용 스텁 및 CORS 프리플라이트에 사용합니다. SAA-C03 시험에서는 Lambda Proxy와 HTTP Proxy가 가장 자주 출제되는 패턴입니다.
빠른 확인
이 레슨에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
레슨 요약
이 레슨에서는 다음을 배웠습니다. Lambda Proxy 통합은 전체 요청을 Lambda에 전달하고 Lambda가 응답을 제어하므로 가장 간단하고 일반적인 통합입니다. HTTP Proxy는 기존 HTTP 백엔드로 요청을 전달하여 백엔드를 변경하지 않고 API Gateway 기능을 추가합니다. Mock integration은 백엔드 인프라 없이 프런트엔드 개발 및 테스트를 위해 미리 정의된 응답을 반환합니다. 다음 레슨에서는 IAM, Lambda 권한 부여자 및 Cognito를 사용한 API Gateway 권한 부여를 살펴봅니다.
자주 묻는 질문
“통합: Lambda, HTTP 및 모의 통합” 강의는 무료인가요?
네 — “통합: Lambda, HTTP 및 모의 통합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
“통합: Lambda, HTTP 및 모의 통합”에서 뭘 배우나요?
API Gateway 메서드를 Lambda 프록시 통합, 업스트림 HTTP 엔드포인트 및 테스트용 모의 통합에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“통합: Lambda, HTTP 및 모의 통합” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- REST API, HTTP API 및 WebSocket API 비교
- 통합: Lambda, HTTP 및 모의 통합
- 권한 부여: IAM, Lambda 권한 부여자 및 Cognito
- 스로틀링, 캐싱 및 사용량 계획