Learn more
7 ways to reduce AWS S3 spend

7 ways to reduce AWS S3 spend

Amazon S3 (Simple Storage Service) is the first service launched by AWS. In its 15 years of existence, S3 has changed how businesses worldwide store and access data, effectively kicking off cloud computing.

Like all cloud services, S3 can be expensive, especially if you are not using it efficiently. 

Let’s take a look at seven ways you can reduce your S3 costs – today.

1. Choose a storage class that’s right for you

Your Amazon S3 monthly costs will depend on:

  • The size of the data you’re storing
  • The number of requests used to access your data 
  • Request type (e.g. PUT, GET, COPY, etc)
  • The region where you store your data
  • Data transfer and retrieval fees

But by far the biggest factor influencing your S3 bill is the storage class you assign to your S3 objects. Make sure you choose (or transfer to) a storage class that’s right for your use case:

 

  • Standard – best suited for objects you need to access frequently. This storage class provides a higher cost per GB but comes with high data availability and reliability.
  • Standard Intelligent-Tiering – a great choice for data with unknown, changing, or unpredictable access patterns.
  • Standard Infrequent Access (IA) – ideal for data you need to access less frequently but rapidly. Offers the same upsides as S3 Standard, but at a lower price per GB stored and retrieved.
  • Standard One-Zone Infrequent Access – about 20% cheaper than Standard IA as it stores data in a single Availability Zone.
  • Glacier Instant Retrieval – ideal if you have a small number of long-lived, rarely accessed objects that are large in volume.
  • Glacier Flexible Retrieval – ideal for long-term data you don’t need real-time access to.
  • Glacier Deep Archive – the cheapest storage class on S3 built for long-term data storage (7-10 years).
  • Outposts – ideal if you need to keep data close to on-premises applications.

2. Set up billing alarms

Once you have the right storage class for your use case figured out, the next step is creating a billing alarm to avoid a surprisingly high S3 bill.

You can do that through the CloudWatch console by choosing 'Billing' and 'Total Estimated Charge' as your metric. From there, you can define a dollar value that triggers your alarm and sends a notification when your usage exceeds that threshold. 

For a more detailed breakdown of your S3 costs, try Finout. This FinOps-first cloud cost management tool will let you dive deep into your daily, weekly or monthly AWS spending.

3. Delete unused objects

In S3, each object version contributes to your storage costs. But how do you find unused objects within a bucket?

One way to do this is by using the AWS CLI to list all objects in a specified S3 bucket. Simply run aws s3 ls -summarize -human-readable -recursive s3://your-bucket-name

Then, identify the unused objects by looking at the LastModified column. If empty, delete the object by running aws s3 rm s3://your-bucket-name/object-name

You can also delete multiple (or all) objects within a bucket as well as entire buckets. Just keep in mind that S3 won't be able to restore any data after the fact.

4. Automatically manage objects with ​​Amazon S3 Lifecycle

With Amazon S3 Lifecycle, you can automate the transition of objects to less expensive storage classes at set intervals and specify when objects should be deleted from your Amazon S3 bucket.

For example, if you know that certain objects are infrequently accessed, you might want to transition them to the S3 Standard-IA storage class. Or, you can set up S3 to automatically delete expired objects on your behalf.

 

Setting up an S3 Lifecycle rule

5. Cut down on cross-regional data transfer

If you frequently transfer data between S3 buckets in different regions, you can use the cross-region replication feature to mirror your S3 bucket in a different region. 

This will improve performance and save you money on data transfer and storage costs. 

For example, if you are transferring 20 GB from a bucket in US-west-2 to an EC2 instance in US-east-1, you would be charged $0.20.

However, if you first downloaded the data to a mirror S3 bucket in US-east-1, you would only pay $0.02 for transfer and $0.03 for storage over the course of a month, which would be significantly less expensive.

6. Compress your data before storing it

S3 charges you based on the amount of data you store and the amount of data you transfer out of the service. 

By compressing your data before you send it to S3, you can reduce the amount of storage and data transfer charges you pay. Your best bet is to use fast compression such as LZ4 to improve performance while reducing storage requirements and costs. 

7. Partition your data before querying it 

As mentioned at the beginning of this article, the number of requests used to access your data as well as their type will affect your S3 costs.

To minimize them, consider partitioning your data. Partitioning improves query performance because it limits the amount of data that has to be scanned. For example, if a table is partitioned by date, a query that accesses only a single day of data can scan only the files in that day’s partition, rather than the entire table.

 

Ready to drive down your S3 costs?

Amazon S3 has drastically changed the way businesses worldwide store, transfer and manage data. 

With these seven tips, you'll be on the right path to reducing your S3 spending while getting the best out of cloud computing.

Learn More

A comprehensive guide to Kubernetes cost management tools for 2023

How to monitor Snowflake usage and spend with Datadog

A comprehensive guide to choosing the right FinOps tools in 2023

Recommendations for AWS RDS Cost Reduction

How FinOps helps businesses enjoy the economic advantages of the cloud

Rightsizing tips and recommendations for getting your cloud costs down

7 ways to reduce your Snowflake costs

Google Cloud Platform (GCP) Services and Pricing

FinOps Essentials: Understanding cloud usage optimization

7 Ways to Improve Your Cloud ROI

AWS Recommendations for EC2 Cost Reduction

How FinOps can help cyber security vendors rein in cloud costs

Cloud Economics: Cost of Cloud Services Explained

What is FinOps

How to Choose a Payment Option for EC2 Reserved Instances (RIs)

How FinOps takes cloud cost management to the next level

4 Cloud Cost Management Questions that FinOps Answers

Finout's guide to understanding multiple cloud bills complexity

How to Use AWS Cost and Usage (CUR) Report

What is AWS Cost Usage Report (CUR)?

How Unit Economics help SaaS companies optimize their cloud spend

How FinOps helps make sense of cloud spending complexity

Discovering Finout's brand identity

5 Best Practices for Cloud Cost Management on Google Kubernetes Engine

The complete guide for Google Cloud pricing

DynamoDB Pricing: How to Optimize Usage and Reduce Costs

Introduction to Cost Management in Google Cloud

How to Manage Cloud Costs on GCP and GKE

AWS tagging: Why tagging is not enough

AWS tagging: Top 5 Cost Management Challenges

Finout Integrates with all your usage-based tools