>  기사  >  Java  >  Java용 AWS SDK를 통한 Amazon Aurora Serverless용 데이터 API - 콜드 스타트와 웜 스타트 비교 부분: 데이터 API와 DynamoDB

Java용 AWS SDK를 통한 Amazon Aurora Serverless용 데이터 API - 콜드 스타트와 웜 스타트 비교 부분: 데이터 API와 DynamoDB

王林
王林원래의
2024-07-23 11:17:43959검색

Data API for Amazon Aurora Serverless vith AWS SDK for Java - Part omparing cold and warm starts: Data API vs DynamoDB

소개

Java용 AWS SDK가 포함된 Amazon Aurora Serverless v2용 데이터 API 시리즈 7부 - 데이터 API와 SnapStart의 만남에서는 데이터를 사용하여 Amazon Aurora Serverless v2 PostgreSQL 데이터베이스에 연결하는 Lambda 함수의 콜드 시작 및 웜 시작 시간을 측정했습니다. 3가지 사용 사례를 위한 API :

  • Lambda 기능에서 SnapStart를 활성화하지 않은 경우
  • Lambda 기능에서 SnapStart를 활성화했지만 프라이밍 최적화는 사용하지 않음
  • Lambda 함수에서 SnapStart를 활성화하고 프라이밍 최적화(PostgreSQL 데이터베이스에서 SQL 문 실행 전 준비)를 사용합니다.

이 기사에서는 이러한 측정값을 Amazon Aurora Serverless v2용 데이터 API 대신 DynamoDB를 사용한 측정값과 비교하고 싶습니다.

Lambda 콜드 스타트와 웜 스타트 비교: Amazon Aurora Serverless v2와 DynamoDB용 데이터 API

Lambda SnapStart에 대한 내 기사 시리즈에서 우리는 이미 유사한 애플리케이션에 대해 이러한 측정을 수행했지만 다른 Lambda 메모리 설정을 사용하여 Java 21로 웜 스타트 측정 기사에서 설명합니다.

Amazon Aurora Serverless v2와 DynamoDB용 애플리케이션 데이터 API는 모두 매우 유사합니다.

  • 데이터베이스에서 제품을 저장하고 검색하는 논리를 제공합니다
  • 두 프로젝트의 Lambda 함수에는 1024MB 메모리 설정이 있습니다
  • 배포 아티팩트 크기는 둘 다 약 18MB입니다
  • 두 프로젝트의 Lambda 함수는 기본 동기식 HTTP Apache 클라이언트를 사용하여 데이터베이스와 통신합니다
  • 두 프로젝트의 Lambda 함수는 x86_64 아키텍처를 사용합니다

이제 모든 측정값을 종합해 보겠습니다.

콜드(c) 및 웜(m) 시작 시간(ms):

Approach c p50 c p75 c p90 c p99 c p99.9 c max w p50 w p75 w p90 w p99 w p99.9 w max
Data API, no SnapStart enabled 3154.35 3237 3284.91 3581.49 3702.12 3764.92 104.68 173.96 271.32 572.11 1482.89 2179.7
DynamoDB, no SnapStart enabled 3157.6 3213.85 3270.8 3428.2 3601.12 3725.02 5.77 6.50 7.81 20.65 90.20 1423.63
Data API, SnapStart enabled without priming 1856.11 1994.61 2467.83 3229.11 3238.80 3241.75 61.02 113.32 185.37 639.35 1973.30 2878.5
DynamoDB, SnapStart enabled without priming 1626.69 1741.10 2040.99 2219.75 2319.54 2321.64 5.64 6.41 7.87 21.40 99.81 1355.09
Data API, SnapStart enabled with priming 990.84 1069.04 1634.84 2120.00 2285.03 2286.9 60.06 106.35 185.37 581.27 1605.37 2658.24
DynamoDB, SnapStart enabled with priming 702.55 759.52 1038.50 1169.66 1179.05 1179.36 5.73 6.51 7.87 21.75 92.19 328.41

결론

이 기사에서는 3가지 사용 사례에 대해 데이터 API를 사용하여 Amazon Aurora Serverless v2 PostgreSQL 데이터베이스에 연결하는 것과 DynamoDB 데이터베이스에 연결하는 Lambda 함수의 콜드 시작 및 웜 시작 시간 측정값을 비교했습니다.

  • Lambda 기능에서 SnapStart를 활성화하지 않은 경우
  • Lambda 기능에서 SnapStart를 활성화했지만 프라이밍 최적화는 사용하지 않음
  • Lambda 함수에서 SnapStart를 활성화하고 데이터베이스 요청 프라이밍을 사용하여

우리가 관찰한 바에 따르면 Lambda 기능에서 SnapStart를 활성화하지 않은 콜드 스타트 ​​시간은 두 가지 모두 상당히 유사합니다. SnapStart가 활성화된 경우(특히 프라이밍 없이) Amazon Aurora Serverless v2용 데이터 API는 특히 백분위수가 90보다 큰 경우 콜드 스타트 ​​시간이 훨씬 더 높습니다. 이 차이점을 이해하려면 더 깊이 파고들어야 합니다. 특히 프라이밍을 적용한 경우에는 그렇게 클 것이라고 기대하지 마십시오. 아마도 그 이유는 DynamoDB와 같은 AWS 네이티브 서비스가 SnapStart를 더 잘 인식하여 연결 재개를 더 잘 처리할 수 있기 때문일 것입니다.

DynamoDB가 한 자릿수 또는 두 자릿수 밀리초의 응답 시간으로 알려져 있기 때문에 DynamoDB에 비해 Amazon Aurora Serverless v2용 Data API의 웜 스타트(실행) 시간이 지속적으로 훨씬 더 높았습니다.

위 내용은 Java용 AWS SDK를 통한 Amazon Aurora Serverless용 데이터 API - 콜드 스타트와 웜 스타트 비교 부분: 데이터 API와 DynamoDB의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.