고성능 AWS Lambda(Node.js)
TL; DR
aws-sdk V2(JavaScript)를 사용하는 경우 Node.js AWS Lambda에 대한 새 환경 변수를 아래와 같이 설정하여 TCP 연결을 재사용합니다.
Environment Variable Name: AWS_NODEJS_CONNECTION_REUSE_ENABLED
Environment variable Value: 1
기본적으로 aws-sdk V3(JavaScript)를 사용하는 경우 TCP 연결이 재사용되므로 변경할 필요가 없습니다.
AWS Lambda는 다른 서비스와 어떻게 상호 작용합니까?
Lambda는 다른 서비스에 http 요청을 합니다. HTTP 요청은 일반적으로 다른 AWS 서비스와의 통신을 위해 aws-sdk에 의해 촉진됩니다.
HTTP 작동 방식(높은 수준)
HTTP는 요청(클라이언트) - 응답(서버) 프로토콜입니다. TCP 연결을 설정해야 합니다. 클라이언트(브라우저/응용 프로그램)는 연결을 통해 서버에 데이터를 요청하고... 서버는 동일한 연결을 통해 응답합니다.
TCP 연결 설정 방법(높은 수준)
클라이언트는 SYN(동기화) 패킷(TCP 데이터는 패킷으로 전송됨)을 서버로 보냅니다. 서버는 SYN-ACK(승인) 패킷을 클라이언트에 응답합니다. 클라이언트는 ACK 패킷을 서버로 전송하여 수신 SYN-ACK를 승인합니다. 따라서 3단계 프로세스입니다.
AWS 람다와 TCP
Lambda 의사 코드 예:
lambda handler(){
import aws-sdk
put a record to Amazon DynamoDB by calling aws-sdk put().
}
DynamoDB put은 aws-sdk에서 지원하는 HTTP 호출입니다.
따라서 이 Lambda가 호출될 때마다(코드/웜 스타트 무관) Lambda는 TCP 연결을 설정한 다음(SYN, SYN-ACK, ACK를 수행해야 함) put() 호출을 수행하여 데이터를 DynamoDB로 전송해야 합니다.
이 의사 코드 람다가 백만 번 호출되면 이 TCP 연결을 백만 번 설정해야 합니다.
TCP 연결 재설정 해결 방법(개념)
연결을 유지하십시오.
AWS Lambda에서 TCP 연결을 유지하는 방법
이름이 AWS_NODEJS_CONNECTION_REUSE_ENABLED인 새 환경 변수를 만들고 값을 1로 설정합니다.
Shirley Hirst에서 Pixabay의 이미지
Reference
이 문제에 관하여(고성능 AWS Lambda(Node.js)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/prabusah_53/performant-aws-lambda-nodejs-9a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)