0

람다 함수에 대한 프록시 통합과 함께 API 게이트웨이를 만든 CloudFormation 템플릿으로 모든 작업을 매우 잘 처리 할 수있었습니다.이 템플릿은 다양한 DynamoDB 테이블을 조작했습니다.AWS API 게이트웨이 -> Lambda -> DAX -> DynamoDB를 올바르게 연결하는 방법은 무엇입니까?

최근 DynamoDB의 단점을 경험하기 시작했으며 읽기/쓰기 작업자입니다. 그래서 DynamoDB DAX가 캐싱을 빠르게 처리 할 수있게되었습니다.

CloudFormation 템플릿 설정에서 DAX 클러스터를 빌드하는 데 아무런 문제가 없었습니다.

하지만 람다 함수에서 DAX에 연결하려고하면 NoRouteException: not able to resolve address과 같은 오류가 발생합니다. DAX가 VPC에 있기 때문에 Lambda 함수는 물론 액세스 할 수 없다는 것을 발견했습니다. 람다 함수는 VPC에도 있어야합니다.

하지만 VPC에 람다 함수를 넣으면 API 게이트웨이는 아마도 프록시 통합을 통해 람다 함수에 액세스 할 수 없습니다.

그렇다면 VPC 내에서 API 게이트웨이 -> 람다 -> DAX를 조정하는 방법은 무엇입니까?

DAX가 일반적인 API 게이트웨이 -> 람다 패턴으로 쉽게 사용할 수 없다는 것은 너무 귀엽다. VPC 요구 사항은 실제 킬러이며 DAX는 대개 EC2 인스턴스, 즉 API -> 람다에서만 유용하다는 것을 의미합니다.

아이디어가 있으십니까?

답변

2

하지만이 VPC에서 람다 기능을 넣을 경우, 다음 API 게이트웨이는 아마도 프록시 통합을 통해 람다 기능에 액세스 할 수 없습니다.

올바르지 않습니다. API 게이트웨이는 람다 서비스 API, 프록시 여부 또는 VPC를 사용하여 람다 함수를 호출함으로써 람다 함수에 액세스합니다.

API 게이트웨이가 람다 함수 컨테이너에 직접 연결되지 않습니다. 따라서 컨테이너 배치 (내부 또는 외부 VPC)가 실제로 API 게이트웨이의 기능 호출에 영향을 미치지 않으므로 기능에 영향을 줄 수 있습니다. 하지만 어떻게 할 수 있습니까 에 액세스 할 수 있습니다.

프록시 통합은 페이로드의 동작 및 처리를 수정하지만 실제로 API 게이트웨이가 함수를 호출하고 응답을 받기 위해 람다 서비스에 연결하는 방식을 수정하지 않습니다.

+0

감사합니다. 도움이됩니다. DAX를 사용하기 위해 VPC (및 그 결과적인 ENI 관리)에서 Lambdas를 설정해야하는 것은 여전히 ​​좌절감이 있습니다. AWS는 일반적인 DynamoDB 액세스를 대체하는 "드롭 인 (drop in)"을 제안하기 때문에 엄청난 복잡성이 추가됩니다. – pjb

관련 문제