I would like to use single EBS storage across multiple EC2 nodes (web/app servers). I've read some articles on snapshot sharing, but that doesn't suit well for what we need.

We use filesystem for storing DB record attachments, so if one such attachment gets created, we need it to be immediately available to all nodes (to serve). So far only NFS seem to be viable, but it's a pain to configure and maintain.

Another option could be storing those attachments on S3 instead, but that would cut us of doing any analysis on that data.

This must be quite common problem when scaling in AWS, what solutions are there?


There is no way of direct sharing EBS between instances yet. But! There are alternatives:

The most scalable way: S3. The most complicated: distributed file systems (like GlusterFS). Somewhat between solution: 1 master node with installed lyncd and slave nodes. lsyncd manages all file updates in almost realtime mode. The drawback of this variant is that all file update operations must be done at master node.

For small projects (1-5 nodes) i'll think about lsyncd solution and for bigger ones i'll go to S3.


It's perfect, and a bit too complicated



How about not using direct file system access, but storing the DB record attachments behind a service that's accessible from multiple EC2 instances instead ? A MySQL database, or maybe a "NoSQL" option like Cassandra would be good candidates.

I don;t understand why storing the attachments on S3 would prevent you from doing analysis on the data; could you expand on that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.