Ошибка развертывания кода AWS

У меня есть эластичный балансировщик нагрузки с двумя запущенными экземплярами. Я хотел развернуть приложение в этой группе эластичного масштабирования. Я слышал о кодировании и попытках. У меня мало вопросов по этому поводу. Когда я создаю новое развертывание, я всегда получаю повторное подключение к GitHub. Я не могу решить это. Во-вторых, когда я пытаюсь развернуть, я получаю эту ошибку «Развертывание не может быть продолжено: для ограничения «по умолчанию» требуется как минимум 1 работоспособный хост. Остальные хосты пропускаются». Поэтому я проверяю свой эластичный баланс нагрузки и обнаружил, что у меня есть конфигурация из 2 желаемых экземпляров и 2 минимально работоспособных экземпляров. Поэтому я попытался изменить этот минимальный работоспособный экземпляр на 1, и он автоматически завершил один экземпляр. Я не знаю, где я делаю ошибку. пожалуйста, помогите мне решить эту проблему.


person ponraj    schedule 23.03.2016    source источник
comment
Я не смог решить эту проблему, возможно, проблема со скриптом. Поэтому я попробовал elastik beanstalk, и он работает так, как я ожидал. И настроить тоже очень просто   -  person ponraj    schedule 14.02.2018


Ответы (4)


Убедитесь, что у вас есть существующие работоспособные хосты. Если нет, временно измените тип конфигурации развертывания на AllAtOnce, так как для этого не требуются исправные хосты перед развертыванием. После завершения развертывания вы можете вернуть его к исходным настройкам.

Также убедитесь, что цель Auto Scaling Group в конфигурации приложения CodeDeploy действительна. Сине-зеленое развертывание скопирует и заменит группу автоматического масштабирования, поэтому для начала убедитесь, что конфигурация приложения использует допустимую исходную группу автоматического масштабирования.

person shonky linux user    schedule 16.08.2017

Что касается первой проблемы, если вы пытаетесь выполнить развертывание из своего репозитория Github, перед началом развертывания вам необходимо завершить процесс аутентификации с помощью Github.

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

person Bangxi Yu    schedule 23.03.2016
comment
Столкнулся с той же проблемой @ponraj - person Maulik; 23.01.2017

Я думаю, вы используете CodeDeployDefault.OneAtATime (MinimumHealthyHosts: 99%)

100Instances запущены, вы можете добиться успеха.

Как насчет использования CodeDeployDefault.AllAtOnce(MinimumHealthyHosts:0%) или CodeDeployDefault.HalfAtATime(MinimumHealthyHosts:50%)

Мне удалось использовать как AllAtOnce, так и HalfAtATime.
※используя группу автоматического масштабирования и 1 экземпляр в AZ1a и 1 экземпляр в AZ1c.

person keiwt    schedule 14.05.2016

У меня от этого тоже голова болит. Вот как я это исправил. Это происходит потому, что 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
person harsh.tibrewal    schedule 13.04.2017