I’m trying to use QuickSight for some quick reporting and want to ensure I understand the costs correctly and if what I want to do is possible. I want metrics such as total number of jobs, top job types, and top users for my app. The job history is stored in DDB with a job per record. What is the most cost effective way to do this? Once the charts are authored I won’t be making many for a while, do I still need to have a paid author? How will the viewers be charged if I embed the charts into my app?
Firstly in order to connect your Dynamodb data to QuickSight you’ll have to use Athena federated query which creates a Dynamodb connector which is basically a lambda function. This creates a data source is Athena and you could connect this datasource when creating a dataset in QuickSight. Please find the documentation link for creating the dynamo db data source in Athena. Make sure you give the necessary permissions for both Lambda and S3 buckets in QuickSight.
For understanding the top users, you can create an insight with the computation type ‘top ranked’ and choose the specific columns or you can also create a filter condition. The other metrics can also be added in a similar way.
About the cost, even if no changes are being made to the dashboard, you’ll still have to pay per reader or based on the usage which is calculated on number of sessions. You can use SPICE or a direct query where the latter queries the dynamodb every time the dashboard is consumed whereas SPICE might be cost effective with auto refresh option.