Reputation: 4990
Looking to build a mobile application that records a a session of data. The data is required to be cleansed, and then uploaded into an incoming S3 bucket. An event is on this bucket that then triggers a Lambda function to process the data, which then is placed into an outgoing S3 bucket. This is in the form of a file with the file contents being a word on the result of the processing. This result then needs to be returned back to the device. I'm looking to architect this using as many AWS services as possible. There does also need to be historical data available to the user(device), to see their previous results. At the moment, I have the following ideas:
Solution seems fairly sound, I'm still getting up to speed on all the available AWS services, so not sure if I'm missing anything glaringly obvious.
Upvotes: 0
Views: 143
Reputation: 1584
S3 doesn't seem to be adding much value to this flow unless you are trying to decouple the processing of the input from the ingestion. You can invoke Amazon Lambda directly from your mobile app and write the result into ddb directly from lambda.
If you do use S3, I'd recommend using the cognito id as part of the key over the device id. The benefits of this are twofold, you can enable fine grain access control so that one user can't access another user's s3 objects or rows in ddb, and if a user has multiple devices and you use authenticated users, the user can see the same data as they transition between their mobile devices.
Upvotes: 0
Reputation: 7122
I'd recommend using AWS API Gateway in combination with Amazon Lambda
instead of deploying standalone instance.
I'd also recommend using SNS
for mobile push notifications since this very well aligns with the rest of your architecture.
Upvotes: 1