Using AWS EFS in an Elixir Phoenix application locally

I am trying to use EFS to store assets instead of S3 and wondering whats the best way to develop locally?

I spent quite a bit of time getting EFS mounted on my Elastic Beanstalk EC2 instances and finally got it working (pay attention to those security groups!) Now I am trying to get EFS mounted locally, but that is going down a rabbit hole involving AWS VPNs, bastions and on perm providers and no clear path for some midnight code cowboy on his home computer. This is the closest article I’ve found: https://medium.com/@rmonteiro/guide-on-setting-up-home-network-to-an-aws-vpc-via-vpn-e2d95cbe1536. …yikes! thats a lot work!

I am wondering if I should just use the default file system when working locally and switch to EFS when in production?

Does anybody out there have any thoughts or experience with this?

Never used EFS, but the documentation suggests it works like NFS always has - you mount it in the standard UNIXy ways and then interact with it like any other filesystem.

Big difference (from skimming the FAQ) is that it’s not Internet-accessible like S3 so every byte of assets served from it has to go through your application stack, but that shouldn’t make any difference locally.

1 Like

Thanks for your reply al2o3cr. I am new to NFS and EFS, so its double wammy learning experience for me :sweat_smile:

I think the best solution is to use local file system for local development and use EFS in production. That way don’t have to deal with VPN and things keep secure.

Anybody comes across this and knows a better or has an interesting solution, I am all ears.