Sharing / replicating EBS across AWS nodes

amazon ec2amazon-ebsreplicationscalability

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?

Best Answer

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.