As your application grows, you can either scale the infrastructure horizontally or vertically. Usually, vertical scaling has a lot of limitations whereas horizontal scaling could potentially have unlimited capacity. In horizontal scaling, one problem that arises quickly is related to common storage, which needs to be accessed by several servers that too efficiently. A typical solution is to have NFS (network file system) configured. If you are on AWS, you could consider taking advantage of EFS i.e. Elastic File System.
What is EFS?
EFS is elastic file system – a managed file system solution provided by AWS (Amazon Web Services). This is a highly scalable, easy to use file storage which you can use with EC2 instances in AWS. Additionally, if you have an on-premise data center and if you connected to your AWS VPC using Amazon Direct Connect, you can connect to EFS from your on-premise servers as well.
The name “Elastic” denotes that the storage capacity is elastic – growing and shrinking as per the need of the application. This is completely transparent to the application and there’s no extra coding required for applications to take benefit of this elasticity. EFS also provides complete redundancy and durability. That is all the file objects (files, directories, and links) are stored on EFS are copied across multiple availability zones.
There are some open-source as well as commercial alternatives available for the kind of functionality that EFS offers. Some of them are – GlusterFS (open-source), SoftNAS (commercial). You can read the comparison of these three alternatives here.
In case you are on Azure, equivalent service in Azure eco-system is “Azure Files”. On Google cloud platform, the alternative is ZFS or Avere.
AWS, File System, Azure, Google Cloud, AWS EBS
Subscribe now for free and keep learning – One Term A Day! Learning is growing.