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

Есть ли способ ускорить AWS CodeDeploy

Я использую AWS CodeDeploy для развертывания своих сайтов и заметил, что это не очень стабильно по скорости; иногда это довольно быстро, но иногда каждый шаг развертывания может занимать минуты. Это довольно неприятно, когда развертывание должно выполняться быстро, в случае ошибок или сбоев.

Я не могу найти никакой документации по скорости CodeDeploy, а также не могу найти никакой логики в том, когда он медленный или когда он быстрый. Есть ли способ ускорить это и узнать, что занимает так много времени?

BlockTraffic и AllowTraffic

Простая настройка параметров проверки здоровья вашей целевой группы может сэкономить пару минут.

Перед

После

Объяснение

Это работает, потому что BlockTraffic и AllowTraffic оба ждут успешных проверок работоспособности. Интервал проверки работоспособности по умолчанию - 1 проверка каждые 30 секунд, а для успешной проверки работоспособности требуется 5 последовательных 200 ответов. Таким образом, по умолчанию это занимает более 2 минут 30 секунд. И это для каждого экземпляра EC2. Уменьшение интервала проверки работоспособности и ограничение количества необходимых успешных проверок сокращают время развертывания.

CodeDeploy по умолчанию делает очень мало - он берет код из S3 или Github, а затем запускает ваш скрипты по appspec.yml инструкции файла.

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

Шаги развертывания CodeDeploy:

  • ApplicationStop - вы управляете этим хуком
  • DownloadBundle - CodeDeploy получает код из S3 / Github
  • BeforeInstall - вы управляете этим хуком
  • Установить - CodeDeploy копирует код из временного местоположения в конечное место назначения.
  • AfterInstall - вы управляете этим хуком
  • ApplicationStart - вы управляете этим хуком
  • ValidateService - вы контролируете этот хук

Выделенные жирным шрифтом относятся к CodeDeploy, остальные - к вам. Если вы видите разные задержки, выделенные жирным шрифтом, обратитесь в службу поддержки AWS, но в противном случае вам, скорее всего, придется исследовать свои ловушки.

Другой параметр, который необходимо проверить, - это «Задержка отмены регистрации» целевой группы. Мои настройки проверки работоспособности уже были низкими, и это было узким местом в моем случае.