Рейтинг:1

Передовой опыт: миграция нескольких виртуальных машин и виртуальных хостов в Docker

флаг sg

В настоящее время у меня около 20 сайтов и приложений, размещенных в AWS EC2. У некоторых есть собственный EC2, в то время как другие делят EC2 с несколькими виртуальными хостами на этом EC2.

Каждый сайт полностью отделен и не связан с другим. Те, которые совместно используют EC2, как правило, намного меньше и требуют меньше трафика/ресурсов (отсюда и общий сервер).

У меня также есть один сервер EC2, который просто используется для запуска пакетных и запланированных задач вместе с активной версией сайта, чтобы гарантировать, что работающий сайт остается доступным, даже когда запланированные задачи являются тяжелыми.

Я хочу использовать Docker во всей моей среде dev> prod для более эффективного использования ресурсов сервера и упрощения миграции между средами и т. д.

Я очень хочу узнать ваше мнение о лучших практиках для серверного оборудования.

Лучше всего использовать один более крупный EC2 и иметь каждый сайт в качестве своего собственного док-контейнера? Это звучит как меньше администратора сервера, более аккуратная общая настройка, и, насколько я понимаю, каждый док-контейнер по-прежнему держится сам за себя с точки зрения безопасности. Но любые проблемы с сервером или всплески ресурсов повлияют на все сайты (устранены балансировщиком нагрузки).

Или мне лучше разделить их на несколько EC2, то есть на EC2 для каждого док-контейнера? Это кажется совершенно несовместимым с докером, но не уверен, что я что-то упускаю.

Использование единого EC2 для всех сайтов упрощает (с меньшими усилиями администратора) настройку балансировщиков нагрузки и/или перегрузку серверов.

Запись; если это имеет значение, я использую RDS для MySQL; MySQl не работает напрямую на EC2.

заранее спасибо

Рейтинг:1
флаг id
MLu

Обычно мы используем ECS (служба эластичных контейнеров) с числом Х задачи (= ваши веб-сайты) и Y количество хозяева (= экземпляры EC2 для выполнения этих задач), где X >= Y. Затем мы позволяем ECS распределять задачи между хостами по своему усмотрению в соответствии с требованиями. Вы можете указать объем оперативной памяти и мощность процессора, необходимые для каждой задачи/веб-сайта.

У нас также есть экземпляры EC2 в Группа автоматического масштабирования - если один из них умирает, он автоматически заменяется, и ECS затем автоматически повторно развертывает потерянные контейнеры и регистрирует их в балансировщиках нагрузки, и все это без какого-либо вмешательства человека.

Вы также можете запустить некоторые задачи в АМС Фаргейт, который является бессерверной контейнерной службой — особенно для больших задач/веб-сайтов это может быть хорошим вариантом. Для небольших задач часто бывает выгоднее объединить их в одном инстансе EC2.

Суть в том, чтобы отделить задачи (контейнеры) от хостов - иметь пул веб-сайтов и не заботиться о том, где они работают, и иметь пул хостов и не заботиться о том, что на них работает.Однако для этого требуется некоторый уровень автоматизации — вы хотите, чтобы задачи автоматически регистрировались в целевых группах ALB, узлы автоматически добавлялись при исчерпании емкости / заменялись в случае их смерти и т. д. Но эта базовая автоматизация в любом случае должна быть данностью.

Надеюсь, это поможет :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.