Получение, сохранение, передача и удаление «файла» с помощью Amazon Webservices

Я установил сервер Tomcat7 на Amazon EC2. Один из моих сервлетов получает «файл» в виде составного поста. Мне нужно сохранить эти файлы в структуре каталогов, и позже файл будет извлечен другим сервлетом, отправлен клиенту и удален из веб-служб Amazon.

Мой вопрос Где и как хранить эти файлы и как создать структуру каталогов с помощью сервлетов.

я смотрю на

  1. Максимально быстрый доступ к файлу.
  2. Хранение файла необходимо до тех пор, пока он не будет отправлен клиенту.

person Gaurav Agarwal    schedule 13.07.2012    source источник
comment
Собираетесь ли вы постоянно хранить много файлов? Например. сколько МБ, ГБ файлов вы планируете хранить на своем сервере в данный момент времени?   -  person Viccari    schedule 14.07.2012
comment
@Viccari Это зависит от количества пользователей, и на данный момент у меня нет оценок. Для начала он будет небольшим, но со временем он может вырасти.   -  person Gaurav Agarwal    schedule 14.07.2012


Ответы (2)


У вас действительно есть два варианта:

1. Храните содержимое в локальном хранилище экземпляров (и для хранения экземпляров я настоятельно рекомендую EBS вместо хранилища экземпляров (см. этот вопрос для фона). Было бы быстрее хранить и извлекать ваши файлы, и вы всегда можете изменить масштаб своего экземпляра, когда это необходимо.

2-Храните свои файлы на S3. Время хранения/извлечения будет медленнее, но вы получите «автоматическую» масштабируемость, шифрование, повышенную надежность и доступность (без приложения к ним усилий), а также возможность сделать файлы общедоступными с прямыми ссылками без необходимости проходить через ваш веб приложение. Помимо этого, поскольку файлы не находятся в конкретном экземпляре EC2, вы можете масштабировать свое веб-приложение, добавляя новые экземпляры, сохраняя при этом файлы централизованно на S3.

Я бы порекомендовал S3, даже если вы можете немного потерять скорость при доставке файлов. Настройте обе среды и проведите несколько тестов. Это может помочь вам решить.

Надеюсь, поможет.

person Viccari    schedule 14.07.2012

+1 за ответ @Viccari. Он хорошо охватывает варианты.

Однако я не согласен с выводом об использовании S3 из-за ваших требований Quickest possible access to the file и Store of the file is need as long as it is not send to the client.

S3 заметно медленнее, чем хранилище на основе EBS. Поскольку вы сохраняете данный файл для одного клиента до тех пор, пока он не будет извлечен один раз, вам не нужна масштабируемость, которую обеспечивает S3. На самом деле может пройти немало времени, прежде чем данные, хранящиеся в S3, реплицируются в другие зоны доступности.

Если данные, которые вы храните, будут обслуживаться много раз, S3 будет более разумным выбором (при условии, что его производительность соответствует вашим потребностям). Для этого варианта использования (не для вашего варианта использования) я бы также добавил слой Cloud Front поверх S3.

person Eric J.    schedule 16.07.2012
comment
Я согласен с вами, что S3 не является хорошим вариантом для моего случая. Вместо этого я смотрю на EBS. Для меня очень важна скорость передачи файлов. - person Gaurav Agarwal; 16.07.2012