2015-11-18 3 views
0

У меня есть приложение Rails, которое загружает файлы на сервер и сохраняет их, чтобы они могли обрабатываться с помощью приложения Java.Как синхронизировать две папки из экземпляров AWS?

Текущая конфигурация находится в AWS, которые имеют два экземпляра и сбалансированы по ELB.

Путь загрузить в реж AWS-instance1: /var/lib/rails_files

путь для загрузки в реж AWS-instance2: /var/lib/rails_files

Есть ли способ, чтобы я мог синхронизировать каталог rails_files обоих случаях?

В определенное время приложение Java ищет имя файла из db и выбирает файл с /var/lib/rails_files.

Или можно подключить/добавить общий диск в оба экземпляра, чтобы к нему можно было получить доступ из обоих экземпляров?

Я не хочу загружать файл s3.

Любая помощь будет оценена по достоинству.

+0

Служба, соответствующая вашим требованиям: [Amazon EFS] (https://aws.amazon.com/efs/)! Но, к сожалению, он доступен только в Preview. Итак, на данный момент, я думаю, вы должны настроить NFS самостоятельно –

+0

Но даже если вы найдете способ их синхронизации, что вы будете делать, добавив третий экземпляр? Или, если вы замените существующий экземпляр, будет работать sync stil ?. Решение, которое я вижу, - это тот, который вы не делаете, загружаете файл на S3 и всегда берете его оттуда. –

ответ

0

Вместо синхронизации между экземплярами (и всеми необходимыми требованиями безопасности и конфигурации) вместо синхронизации с Amazon S3.

Например, AWS Command-Line Interface имеет команду, которая может синхронизировать между локальными и каталогов в ведро Amazon S3:

aws s3 sync dir s3://BUCKET/dir 

Это также работает в обратном направлении (от S3 до местного), а также между S3 ведра. По умолчанию sync не удалит файлы из пункта назначения.