У меня есть эластичный балансировщик нагрузки с двумя запущенными экземплярами. Я хотел развернуть приложение в этой группе эластичного масштабирования. Я слышал о кодировании и попытках. У меня мало вопросов по этому поводу. Когда я создаю новое развертывание, я всегда получаю повторное подключение к GitHub. Я не могу решить это. Во-вторых, когда я пытаюсь развернуть, я получаю эту ошибку «Развертывание не может быть продолжено: для ограничения «по умолчанию» требуется как минимум 1 работоспособный хост. Остальные хосты пропускаются». Поэтому я проверяю свой эластичный баланс нагрузки и обнаружил, что у меня есть конфигурация из 2 желаемых экземпляров и 2 минимально работоспособных экземпляров. Поэтому я попытался изменить этот минимальный работоспособный экземпляр на 1, и он автоматически завершил один экземпляр. Я не знаю, где я делаю ошибку. пожалуйста, помогите мне решить эту проблему.
Ошибка развертывания кода AWS
Ответы (4)
Убедитесь, что у вас есть существующие работоспособные хосты. Если нет, временно измените тип конфигурации развертывания на AllAtOnce, так как для этого не требуются исправные хосты перед развертыванием. После завершения развертывания вы можете вернуть его к исходным настройкам.
Также убедитесь, что цель Auto Scaling Group в конфигурации приложения CodeDeploy действительна. Сине-зеленое развертывание скопирует и заменит группу автоматического масштабирования, поэтому для начала убедитесь, что конфигурация приложения использует допустимую исходную группу автоматического масштабирования.
Что касается первой проблемы, если вы пытаетесь выполнить развертывание из своего репозитория Github, перед началом развертывания вам необходимо завершить процесс аутентификации с помощью Github.
Для второй проблемы вы указываете экземпляры, на которые хотите выполнить развертывание, добавляя теги в группу развертывания. Убедитесь, что ваши экземпляры правильно помечены, чтобы CodeDeploy мог найти экземпляры во время развертывания.
Я думаю, вы используете CodeDeployDefault.OneAtATime (MinimumHealthyHosts: 99%)
100Instances запущены, вы можете добиться успеха.
Как насчет использования CodeDeployDefault.AllAtOnce(MinimumHealthyHosts:0%) или CodeDeployDefault.HalfAtATime(MinimumHealthyHosts:50%)
Мне удалось использовать как AllAtOnce, так и HalfAtATime.
※используя группу автоматического масштабирования и 1 экземпляр в AZ1a и 1 экземпляр в AZ1c.
У меня от этого тоже голова болит. Вот как я это исправил. Это происходит потому, что codeDeploy проверяет работоспособность экземпляров ec2, подключая экземпляры по умолчанию к порту 80. Перед развертыванием вам необходимо запустить приведенный ниже сценарий bash на экземплярах и проверить, работает ли сценарий. Служба httpd должна быть запущена. Перезагрузите экземпляр.
#!/bin/bash
sudo su
yum update -y
yum install httpd -y
yum install ruby
yum install aws-cli
cd ~
aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
chmod +x ./install
./install
echo 'hello world' > /var/www/html/index.html
hostname >> /var/www/html/index.html
chkconfig httpd on
service httpd start