Является ли хорошей практикой для разных экземпляров AWS EC2 использование одних и тех же файлов библиотеки в корзине AWS S3? - PullRequest
1 голос
/ 05 марта 2020

Я перенесу свои вычисления в aws. Я планирую иметь, например, 10 aws экземпляров EC2, но им необходимо использовать, например: 1000 библиотечных файлов (каждый размером 5–10 МБ) в общей сложности около 10 ГБ библиотечных файлов.

Должен ли я загрузить эти 10 ГБ файлы библиотеки для каждого экземпляра? Будет ли это дороже и быстрее?

Или сначала создайте корзину S3, загрузите только 10 ГБ файлов в корзину S3, а затем заставьте экземпляры использовать библиотечные файлы в S3 Bucket?

Или Можно ли загрузить файлы библиотеки в экземпляр EC2 (экземпляр библиотеки) и создать другие экземпляры EC2, чтобы использовать этот экземпляр библиотеки?

Это может быть очень глупым вопросом. Но так как я нахожусь в первые дни aws, мне нужны ваши хорошие идеи.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 05 марта 2020

Есть несколько способов, с помощью которых вы можете подойти к этому.

  1. Ваша идея загрузки каждого файла в каждый экземпляр будет работать просто отлично. Чтобы ускорить процесс, вы можете скопировать все файлы в один экземпляр (медленно) и скопировать оттуда в другие экземпляры (быстрее).

  2. Ваша идея скопировать файлы на S3, затем загрузка файлов с S3 для каждого экземпляра - более типичный подход. Более эффективен с точки зрения передачи, поскольку вам нужно всего лишь один раз скопировать файлы в S3, а затем загрузить в каждый экземпляр.

  3. Использование Amazon Elasti c Файловая система (EFS) . Смонтируйте громкость на каждом из ваших экземпляров. Скопируйте данные на том, тогда они будут доступны для всех. Плюсы: нет необходимости работать с файлами в S3, доступными во всех экземплярах, независимо от того, в какой зоне доступности они находятся. Минусы: более сложная настройка.

  4. Присоединение тома EBS к каждый экземпляр использует недавно запущенную поддержку множественного присоединения . Плюсы: легко настроить, быстрый вариант. Минусы: Все экземпляры должны находиться в одной зоне доступности.

Эй, по крайней мере, у вас есть несколько вариантов!

3 голосов
/ 05 марта 2020

Можно предварительно создать образ машины Amazon (AMI), который включает эти библиотеки, а затем запустить N экземпляров из этого AMI. Это будет самый быстрый способ получить одинаковые библиотеки на всех ваших экземплярах EC2.

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

Для bootstrap файлов из S3 на экземпляр EC2, вы можете сделать это один раз при запуске, используя сценарий userdata или извлечение их по требованию.

Для более сложных опций вы можете посмотреть службы Code *, например CodeDeploy, тома EBS с несколькими подключениями (эти только для чтения) или даже EFS (что, вероятно, излишне в вашем случае).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...