Назад | Перейти на главную страницу

Как создать несколько идентичных экземпляров серверов AWS EC2 с большими объемами постоянных данных?

У меня есть приложение для обработки данных с интенсивным использованием ЦП, которое я хочу запустить для многих (~ 100 000) входных файлов. Для запуска приложению требуется большой (~ 20 ГБ) файл данных. Что я хотел бы сделать, это

У меня возникли проблемы с определением наилучшего способа обеспечить каждому экземпляру доступ к большому файлу данных. Файл данных слишком велик для размещения в корневой файловой системе AMI. Я мог бы использовать блочное хранилище, но данный том блочного хранилища можно подключить только к одному экземпляру, поэтому мне понадобится 100 клонов.

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

Поместите свой файл данных в S3.

Создайте «главный» экземпляр на базе EBS:

  1. Подключите хранилище экземпляра во время создания экземпляра
  2. При загрузке скопируйте большой файл данных на том экземпляра
  3. Обработка данных локально

Создайте AMI своего экземпляра и запустите 100 экземпляров из своего AMI.

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

Если данные практически не меняются, поместите их в том EBS и сделайте их снимок. Когда вы запускаете каждый новый узел, пусть он создает новый том на основе снимка и монтирует его. Создание снимка - довольно медленный процесс, но создание томов на основе снимка происходит на удивление быстро!

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

Параметры:

  1. Используйте корзину S3 для хранения входных данных. Mount это на нескольких рабочих экземплярах.

  2. Создайте «главный» экземпляр, который делится входными файлами с вашего тома EBS (например, через NFS) с вашими рабочими экземплярами.