AppSync(vtl)와 Lambda의 DynamoDB 접근 속도 비교
람바다를 통해 오면 느린 느낌이 들겠지만 실제 얼마나 걸릴지 측정해 봤어요.
결론
Get으로 데이터 테이블을 만들어 보았습니다.
AppSync는 예상보다 훨씬 빠릅니다.
전제 조건
측정 시 CloudWatch logs를 사용하여 내보낸 정보입니다.
AppSync는 Console에서, Lambda는test 버튼에서부터 실행됩니다.
DynamoDB
AppSync
{
"version": "2017-02-28",
"operation": "GetItem",
"key": {
"id": $util.dynamodb.toDynamoDBJson($ctx.args.id),
}
}
쿼리query MyQuery {
getTest(id: "1") {
id
}
}
Lambda
index.js
const DynamoDB = require('aws-sdk/clients/dynamodb');
exports.handler = async (event) => {
console.log("start");
const client = new DynamoDB.DocumentClient({
region: 'ap-northeast-1'
});
const value = await client.get({
TableName: 'test',
Key: {
id: '1'
},
}).promise();
console.log("end");
return value.id;
};
실행 결과
AppSync의 경우
2021-11-25T05:51:51.782+09:00 fe96e4c0-6e54-4866-b75c-a93395f48ec3 Begin Request
2021-11-25T05:51:51.896+09:00 fe96e4c0-6e54-4866-b75c-a93395f48ec3 End Request
Lambda의 경우
2021-11-25T05:54:51.954+09:00 START RequestId: f1ecc995-41d8-4c8d-93b9-1c9b6e643682 Version: $LATEST
2021-11-25T05:54:52.692+09:00 END RequestId: f1ecc995-41d8-4c8d-93b9-1c9b6e643682
2021-11-25T05:54:52.692+09:00 REPORT RequestId: f1ecc995-41d8-4c8d-93b9-1c9b6e643682 Duration: 733.20 ms Billed Duration: 734 ms Memory Size: 128 MB Max Memory Used: 69 MB Init Duration: 272.86 ms
결론
AppSync에서 데이터를 직접 가져올 수 있다면 Lambda를 통과할 이유가 전혀 없습니다.
Lambda에서 처리해야 할 조건이 있다면 먼저 처리한 다음 DynamoDB에 저장하는 것이 좋습니다.
Reference
이 문제에 관하여(AppSync(vtl)와 Lambda의 DynamoDB 접근 속도 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/merutin/articles/d924ac941d754f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)