After reading AWS docs and answers to other similar questions, DynamoDB Provisioned Capacity model pricing still remains somewhat unclear to me.
As stated in AWS documentation: "You will be charged for the throughput capacity (reads and writes) you provision in your Amazon DynamoDB tables, even if you do not fully utilize the provisioned capacity. The actual reads and writes performance of your DynamoDB tables may vary and may be less than the throughput capacity that you provision."
Accordingly to the last part of this answer on one of the similar questions: "Lastly, with Dynamo you pay for the capacity that you reserve, not what you consume. So as long as your table is not being throttled, even when you go slightly over the provisioned capacity (which Dynamo allows in certain cases) you will not be charged extra.".
However, nowhere did I find a simple explanation of how is pricing based on data read/write rates that can exceed current Read/Write Capacity Unit values set for a table or what happens if the table read/write operations are throttled upon request. If I create a table and set both Read Capacity Unit and Write Capacity Unit to 5 with the auto-scaling feature disabled, will the charges for DynamoDB service under all circumstances be calculated by the following equation?
charges = (provisioned RCU * Hours used + provisioned WCU * Hours used) + Storage costs
That means, regardless of RCU/s and WCU/s usage and throttling.
An example: from my understanding Scan
request that will return all items in the aforementioned table that contains, say, 80 items will exceed provisioned throughput (with the size of each item less than 4 KB and a total size of all items in a table around 160 KB), so it will either take around 8 seconds to fetch the data (160 KB / (5 Read Capacity Units * 4 KB)) with the request being throttled or DynamoDB will allow for burst capacity consumption and process the scan somewhat faster.
But in neither case, that request will be additionally charged as provisioned read capacity overuse because provisioned capacity is basically a method to limit read/write operations rates. Is that assumption correct? Or is table throttling a subject for additional charges? And what are the ways to force the data read/write rates limit then?