One of the primary views of S3 billing data is to see cost by S3 Bucket. For S3, the ‘Resource ID’ dimension in Cloudability shows the S3 Bucket name. So, creating a report filtered to ‘Product Name_equals_Amazon Simple Storage Service’ with the Resource ID Dimension, and Metric of Cost (Total) will give a report of cost by Bucket:
Now that cost per Bucket has been surfaced, the next level is to understand how AWS charges for S3 and to analyze the highest spending buckets by those factors. This Blog article goes into thorough detail, so for this example, we are only going to review how to surface Buckets, by Usage Type and Operation, to determine which Buckets can be migrated to cheaper long-term storage.
Start by adding the Usage Type Dimension and then filter to the Bucket with the highest ‘Requests-Tier1’ cost total:
Now, add the ‘Operation’ Dimension to surface more granular data around how the Bucket is being used. If the data shows that there are many PUT and POST requests with few attempts to access or query the Bucket data, it might make sense to archive the Bucket to longer-term storage:
Finally, you want to understand the usage patterns of the data in S3 to make a decision if S3 is really the right storage service for the data.
S3 makes data available immediately but is not the cheapest way to store data. One alternative is to use Glacier for cheaper storage. However, Glacier requires a file restore process making users give up immediate access.
Leveraging ‘Resource ID’, ‘Usage Type’, ‘Operation’, and ‘Item Description’ Dimensions, in addition to Tags, will allow for a data-driven approach to answering these questions per Bucket, and ensure a cost-optimized S3 environment.