Играя со средами на AWS Elastic Beanstalk (EB), я заметил, что создание новой среды с одним экземпляром намного быстрее, чем неизменяемое развертывание в той же среде (используя точноета же версия приложения).
Я говорю о 3 минуты против 14 минут соответственно, прежде чем состояние среды будет "ОК".
Может кто-нибудь объяснить это?
Возможно, моя концепция среды и экземпляра неверна, но я бы ожидал, что разница (если есть) будет наоборот.
Вот минимальный примеррабочий процесс:
Используйте консоль управления EB (web) для создания новой среды с одним экземпляром, используя Python / Amazon-Linux по умолчанию и пример приложения по умолчанию.Конфигурация по умолчанию была изменена только для установки политики развертывания «неизменяемой» вместо «все сразу» перед началом создания среды.Это занимает ок. 3 минуты :
2018-10-17 12:14:17 UTC+0200 INFO Environment health has transitioned from Pending to Ok. Initialization completed 33 seconds ago and took 3 minutes.
2018-10-17 12:13:39 UTC+0200 INFO Successfully launched environment: create-vs-deploy
На странице «Версии приложений» выберите образец приложения (то есть точно такую же версию приложения, которая использовалась в шаге 1), иразвернуть (неизменный) это в среде, созданной на шаге 1. Это займет ок. 14 минут :
2018-10-17 12:36:16 UTC+0200 INFO Environment health has transitioned from Info to Ok. Application update completed 67 seconds ago and took 14 minutes.
То же самое относится к последующим развертываниям и аналогичным результатам для пользовательских версий приложений.
Файлы eb-activity.log
для обоих экземпляров есть одинаковые команды и выходные данные, и длительность от начала до Application deployment - Command CMD-Startup succeeded
также почти одинакова: оба чуть более 1 минуты.
В журнале для неизменного развертывания отображаются дополнительные строки, начинающиеся более чем через 6 минут:
[2018-10-17T10:22:10.227Z] INFO [2269] - [Initialization] : Starting activity...
...
[2018-10-17T10:23:21.610Z] INFO [2620] - [Application deployment Sample Application@2/AddonsAfter] : Completed activity.
[2018-10-17T10:23:21.610Z] INFO [2620] - [Application deployment Sample Application@2] : Completed activity. Result:
Application deployment - Command CMD-Startup succeeded
[2018-10-17T10:29:58.110Z] INFO [3055] - [Re-associating instance] : Starting activity...
...
[2018-10-17T10:29:58.115Z] INFO [3055] - [Re-associating instance] : Completed activity. Result:
Re-associating instance - Command CMD-ImmutableDeploymentFlip succeeded
Есть идеи, что происходит во время 6-минутной паузы?EB каждый раз ждет проверки работоспособности в течение 6 минут?
Кроме того, между прибл.Продолжительность 8 минут от начала до конца в eb-activity.log
и 14 минут, сообщаемых на странице событий.
Не уверен, что это поможет, но это из healthd/daemon.log
для неизменного развертывания:
# Logfile created on 2018-10-17 10:22:04 +0000 by logger.rb/47272
A, [2018-10-17T10:22:05.218449 #2186] ANY -- : healthd daemon 1.0.3 initialized
W, [2018-10-17T10:22:05.369315 #2186] WARN -- : log file "/var/log/httpd/healthd/application.log.2018-10-17-10" does not exist
...
W, [2018-10-17T10:23:16.646199 #2186] WARN -- : log file "/var/log/httpd/healthd/application.log.2018-10-17-10" does not exist
W, [2018-10-17T10:36:55.231184 #2186] WARN -- : discarding statistic item after validation error (Invalid timestamp): {:id=>"0", :namespace=>"application", :timestamp=>1539771800, :data=>"{\"duration\":10,\"latency_histogram\":[[0.213,1]],\"http_counters\":{\"status_200\":1,\"request_count\":1}}"}
Журнал для вновь созданного env выглядит идентично, за исключением последней строки.
Дополнительная информация:
Из приведенных ниже событий (одно и то же приложение развернуто в другое время)Я предполагаю, что новый экземпляр занимает около 12 минут после запуска обновления приложения, после чего старый экземпляр завершается и т. Д.
2018-10-17 14:29:07 UTC+0200 INFO Environment health has transitioned from Info to Ok. Application update completed 37 seconds ago and took 13 minutes.
2018-10-17 14:28:38 UTC+0200 INFO Environment update completed successfully.
2018-10-17 14:28:38 UTC+0200 INFO New application version was deployed to running EC2 instances.
2018-10-17 14:28:07 UTC+0200 INFO Removed instance [i-0*******] from your environment.
2018-10-17 14:26:25 UTC+0200 INFO Deployment succeeded. Terminating old instances and temporary Auto Scaling group.
2018-10-17 14:24:36 UTC+0200 INFO Waiting for post-deployment configuration to complete.
2018-10-17 14:24:31 UTC+0200 INFO Starting post-deployment configuration on new instances.
2018-10-17 14:23:31 UTC+0200 INFO Attached new instance(s) to the permanent auto scaling group awseb-e-******-stack-AWSEBAutoScalingGroup*****.
2018-10-17 14:23:29 UTC+0200 INFO Detached new instance(s) from temporary auto scaling group awseb-e-******-immutable-stack-AWSEBAutoScalingGroup*****.
2018-10-17 14:19:32 UTC+0200 INFO Waiting for instance(s) (i-0******) to pass health checks.
2018-10-17 14:17:08 UTC+0200 INFO Added instance [i-0******] to your environment.
2018-10-17 14:17:08 UTC+0200 INFO Environment health has transitioned from Ok to Info. Application update in progress on 1 instance. 0 out of 1 instance completed (running for 2 minutes).
2018-10-17 14:15:19 UTC+0200 INFO Created temporary auto scaling group awseb-e-*****-immutable-stack-AWSEBAutoScalingGroup-*******.
2018-10-17 14:14:33 UTC+0200 INFO Immutable deployment policy enabled. Launching one instance with the new settings to verify health.
2018-10-17 14:14:24 UTC+0200 INFO Environment update is starting.