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

Лучшая конфигурация для частых недолговечных экземпляров EC2, например, для сервера сборки

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

Учитывая, что сборка может занять около 5-60 минут, а мы строим что-то 2-5 раз в день, как лучше всего сбалансировать стоимость и удобство?

Следует ли нам использовать более крупный тип инстанса со спотовыми инстансами и EBS и попытаться заставить персонал останавливать инстанс, когда он не нужен? Должны ли мы использовать T2 вместо T3, чтобы использовать стартовые кредиты? Или у нас должен быть меньший экземпляр в безлимитном режиме, который мы продолжаем запускать, чтобы получить кредиты, чтобы прожечь при реальном строительстве?
Есть ли другие подходы, которые следует рассмотреть?

Какой инструмент CI / CD вы используете? Дженкинс? GitLab? Бамбук? GoCD? CodePipeline? Что-то другое?

У большинства инструментов CI / CD есть способ разворачивать хосты сборки только при необходимости, запускать сборку, сохранять созданные артефакты (например, для S3) и останавливать хост сборки. Все автоматически как часть конвейера CI / CD.

Я бы определенно рассмотрел Определять экземпляры - в идеале m5.something или c5.something. Обычно вы можете получить их на месте очень дешево.

Не используйте T2 / T3 - создание кода - это задача с интенсивным использованием ЦП, а T2 / T3 не для этого.

Не полагайтесь на то, что разработчики запускают / останавливают экземпляры вручную. Они этого не сделают.

Если ваша сборка может быть выполнена в контейнере, и если ваш CI / CD поддерживает ее, попробуйте построить в контейнере Fargate - нет хостов для управления, более быстрое развертывание и отключение, а также поддержка спотовых цен.

И, конечно, взгляните на Amazon CodeBuild - управляемый сервис, специально разработанный для сборки пакетов из исходного кода.

Множество опций, но зависит от того, что умеет ваш инструмент CI / CD.

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