

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 직접 데이터 소스 액세스와 Lambda 데이터 소스를 통한 프록시 중 선택
<a name="choosing-data-source"></a>

 AWS AppSync 및 `APPSYNC_JS` 런타임을 사용하면 AWS AppSync 함수를 사용하여 데이터 소스에 액세스하여 사용자 지정 비즈니스 로직을 구현하는 자체 코드를 작성할 수 있습니다. 따라서 추가 컴퓨팅 AWS 서비스 또는 인프라를 배포할 필요 없이 Amazon DynamoDB, Aurora Serverless, OpenSearch Service, HTTP APIs 및 기타 서비스와 같은 데이터 소스와 직접 상호 작용할 수 있습니다. 또한 AWS AppSync를 사용하면 Lambda 데이터 소스를 구성하여 AWS Lambda 함수와 쉽게 상호 작용할 수 있습니다. Lambda 데이터 소스를 사용하면 AWS Lambda의 전체 설정 기능을 사용하여 복잡한 비즈니스 로직을 실행하여 GraphQL 요청을 해결할 수 있습니다. 대부분의 경우 대상 데이터 소스에 직접 연결된 AWS AppSync 함수는 필요한 모든 기능을 제공합니다. `APPSYNC_JS` 런타임에서 지원하지 않는 복잡한 비즈니스 로직을 구현해야 하는 상황에서는 Lambda 데이터 소스를 프록시로 사용하여 대상 데이터 소스와 상호 작용할 수 있습니다.


|  |  |  | 
| --- |--- |--- |
|  | 직접 데이터 소스 통합 | 프록시로서의 Lambda 데이터 소스 | 
| 사용 사례: | AWS AppSync functions interact directly with API data sources. | AWS AppSync functions call Lambdas that interact with API data sources. | 
| Runtime | APPSYNC\$1JS(JavaScript) | 지원되는 Lambda 런타임 | 
| Maximum size of code |  AWS AppSync 함수당 32,000자 | Lambda당 50MB(직접 업로드용 압축 파일) | 
| External modules | 제한적 - APPSYNC\$1JS는 기능만 지원 | 예 | 
| Call any AWS service | 예 - AWS AppSync HTTP 데이터 소스 사용 | 예 - AWS SDK 사용 | 
| Access to the request header | 예 | 예 | 
| Network access | 아니요 | 예 | 
| File system access | 아니요 | 예 | 
| Logging and metrics | 예 | 예 | 
| Build and test entirely within AppSync | 예 | 아니요 | 
| Cold start | 아니요 | 아니요 - 프로비저닝된 동시성 | 
| Auto-scaling | 예 - AWS AppSync에서 투명하게 표시 | 예 - Lambda에서 구성한 대로 | 
| Pricing | 추가 요금 없음 | Lambda 사용에 대한 요금 부과 | 

대상 데이터 소스와 직접 통합되는AWS AppSync 함수는 다음과 같은 사용 사례에 적합합니다.
+  Amazon DynamoDB, Aurora Serverless 및 OpenSearch Service와의 상호 작용
+  HTTP API와의 상호 작용 및 수신 헤더 전달 
+  HTTP 데이터 소스를 사용하여 AWS 서비스와 상호 작용(제공된 데이터 소스 역할로 요청에 AWS AppSync 자동으로 서명) 
+  데이터 소스에 액세스하기 전에 액세스 제어 구현 
+  요청을 이행하기 전에 검색된 데이터에 대한 필터링 구현 
+  해석기 파이프라인에서 AWS AppSync 함수를 순차적으로 실행하여 간단한 오케스트레이션 구현 
+  쿼리와 뮤테이션의 캐싱 및 구독 연결 제어 

Lambda 데이터 소스를 프록시로 사용하는AWS AppSync 함수는 다음과 같은 사용 사례에 적합합니다.
+  JavaScript 또는 Velocity Template Language(VTL) 이외의 언어 사용 
+  CPU 또는 메모리를 조정 및 제어하여 성능 최적화 
+  타사 라이브러리를 가져오거나 `APPSYNC_JS`에서 지원되지 않는 기능을 요구 
+  여러 네트워크 요청 및/또는 쿼리 수행을 위한 파일 시스템 액세스 권한 얻기 
+  [일괄 처리 구성](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-lambda-js.html)을 사용한 요청 일괄 처리.