Using Cost Per Transaction To Optimize AWS S3 Spending
Determining that an instance spending is wasteful is easy, we look at cost vs CPU, Network and Disk I/O utilization. This approach does not translate easily to AWS S3 costs.
Let’s take a look at what we know about S3 buckets:

We know how much bucket costs (2nd column) and we also know how frequently the data is being accessed via CloudWatch telemetry (last and next to last columns)
Based on these parameters we can then calculate Cost per Transaction. Compare 1st and 2nd rows in the screenshot above. First bucket is not only a lot more expensive in absolute terms $33K vs $9K but also has much higher transaction cost $0.06 vs $0.00009. And we can see why as well. Most of the first bucket storage is allocated to standard storage despite the fact that the volume of requests is much lower that the second bucket 491K GETs vs 113M GETs.
Cloudaware makes it very easy to compare and understand costs structure and utilization of AWS S3 buckets by showing users how much buckets costs, how storage is configured and utilized inside a single row record.
It also allows us to compare utilization apples to apples. If we sort this by Cost per Transaction column we can see that the worst offenders are not the most expensive buckets which is counter intuitive.

Top bucket is only $810 per month but cost per transaction is $270 because almost nobody ever accesses this data. At the minimum, this data should be migrated to IA.
Find out more about Cloudaware here.