Using AWS Elastic File Storage to create database snapshots

The following blog is a comparison between using EFS and EBS for creating backup snapshots for databases (Cassandra, MySQL, MongoDB).

Let us look into this workflow for creating a backup snapshot for a 10 node cassandra cluster of size 2000 GBs (still growing!!). A 5TB EBS volume is attached to each of these nodes to generate backup snapshot and then upload it to S3 bucket.

Workflow to create DB snapshot and upload it to S3

The problem with this approach is even though the backup snapshot is deleted after being uploaded to S3, it doesn't bring down the EBS cost. You are still being charged for 50TBs of provisioned capacity (10 into 5TBs).

Figure 1 shows how much 10 EBS volumes of 5TB each will generally cost per month.

Figure 1

EFS to the rescue

The same backup workflow can be configured by creating an EFS attached to all 10 instances parallely.

Figure 1 shows how much this setup will generally cost you per month.

Figure 2

Savings of approx 3000 USD per month !!!


This is just is a very naive comparison between EFS and EBS costs. This works perfectly for the setup where huge EBS volumes are provisioned and not being used to their full capacity. For other real world scenarios, the EBS might be a cheaper option.

Software Developer