2017-05-08 3 views
1

아키텍처에 대한 높은 수준의 지침을 찾고 있습니다. 나는 공급자에게 Kinesis 파이프 (약 1M/day)에 "거래"를 쓰도록했다. 이러한 트랜잭션을 한 번에 하나씩 해제하고 데이터 유효성을 검사하고 추가 SOAP 또는 Rest 서비스를 사용하여 추가 정보를 얻고 비즈니스 논리를 적용하고 S3에 결과를 기록해야합니다.Amazon Web Services : Spark Streaming 또는 Lambda

제안 된 한 가지 접근법은 Spark 환경에서 영원히 실행되고 데이터를 가져 와서 처리하는 Spark 작업을 사용하는 것입니다. 이 혜택은 공유 가능한 캐시 데이터, SQL 가용성 및 Spark에 대한 사내 지식으로 열거되었습니다.

제 생각에는 데이터를 처리 할 일련의 람다 함수가 있어야합니다. 내가 이해하면, 람다가 새로운 데이터를 얻기 위해 키네 시스 파이프를 보게 할 수 있습니다. 끌어 낸 데이터를 작은 단계 (람다)로 실행하고 각 단계마다 프로세스의 한 단계 만 수행하려고합니다. 이것은 스텝 기능을 이상적으로 사용하는 것처럼 보입니다. 캐시와 관련하여 필요한 것이 있으면 ElastiCache의 Redis를 사용할 수 있다고 생각했습니다.

람다와 단계 함수 (람다 사용)를 조합하여이 작업을 수행 할 수 있습니까? 그것이 가능하다면 최선의 접근 방법입니까? 다른 대안을 고려해야합니까?

답변

0

이것은 람다 (Lambda)와 스텝 기능 (Step Functions)의 조합을 사용하여 달성 할 수 있습니다. 설명한대로 람다는 스트림을 모니터링하고 상태 데이터를 트랜잭션으로 전달하여 상태 머신의 새 실행을 시작합니다. 람다가있는 키네 시스 주변의 더 많은 문서는 여기에서 볼 수 있습니다 : http://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html. 그런 다음 상태 머신은 한 람다 함수의 데이터를 다음 펑션으로 전달하여 데이터가 처리되어 S3에 기록됩니다. 1MM/day를 지원하기 위해 기본 2 초당 StartExecution API 한도를 늘리려면 AWS에 문의해야합니다.

희망이 도움이됩니다.