Dlaczego za każdym razem, gdy Elastic Beanstalk wydaje polecenie do swojej instancji, zawsze się kończy?

Mam aplikację PHP wdrożoną do Amazon Elastic Beanstalk. Ale zauważyłem problem, że za każdym razem, gdy wciskam mój kod zmienia się przez git aws.push To The Elastic Beanstalk, aplikacja wdrożona nie wychwyciła zmian. Sprawdziłem dziennik zdarzeń w moim środowisku aplikacji Beanstalk i zauważyłem, że za każdym razem problemy z Beanstalk:

Wdrażanie nowej wersji do instancji

Po nim zawsze następuje:

Następujące instancje nie odpowiedzi w dozwolonym czasie oczekiwania na polecenie (mogą ostatecznie zakończyć samodzielnie): [i-d5xxxxx]

To samo dzieje się, gdy próbuję zażądać dzienników migawek. Problemy z fasolką:

RequestEnvironmentInfo się zaczyna

Potem po kilku minutach znowu następuje:

Następujące instancje nie odpowiedziały w dozwolonym czasie oczekiwania na polecenie (mogą ostatecznie zakończyć działanie samodzielnie): [i-d5xxxxx].

Author: Cœur, 2014-04-03

5 answers

Miałem ten problem kilka razy. Wydaje się, że dotyczy tylko konkretnych przypadków. Można go więc rozwiązać poprzez zakończenie instancji EC2 (odbywa się to za pośrednictwem strony EC2 w konsoli zarządzania). Następnie Elastic Beanstalk wykryje, że istnieją 0 zdrowych instancji i automatycznie uruchomi nowy.

Jeśli jest to środowisko produkcyjne i masz tylko 1 instancję i chcesz minimalny czas przestoju

  1. skonfiguruj Minimalne instancje do 2, a Beanstalk uruchomi się kolejna sprawa dla Ciebie.
  2. Zakończ problematyczne wystąpienie za pomocą zakładki EC2, Beanstalk uruchomi inną instancję, ponieważ minimalna instancja to 2
  3. konfiguracja minimalnej instancji z powrotem do 1, Beanstalk usunie jedną z dwóch instancji.
 36
Author: chongzixin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-07 07:35:46

Domyślnie Elastic Beanstalk "rzuca wyjątek timeout" po 8 minutach (480 sekund zdefiniowanych w Ustawieniach), jeśli Twoje polecenia nie ukończyły się na czas. Możesz ustawić wyższy czas do 30 minut (1800 sekund).

{
    "Namespace": "aws:elasticbeanstalk:command",
    "OptionName": "Timeout",
    "Value": "1800"
}

Czytaj TUTAJ: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html

 5
Author: daveoncode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 09:15:53

W przypadku wdrożenia, alternatywą dla wyłączenia instancji EC2 i oczekiwania na reakcję Elastic Beanstalk, lub mieszania się z minimalnymi i maksymalnymi instancjami, jest po prostu wykonanie Rebuild environment na docelowym środowisku.

Jeśli poprzednie wdrożenie nie powiodło się z powodu limitu czasu, to nowa wersja nadal będzie zarejestrowana w środowisku, ale z powodu limitu czasu nie będzie działać (z mojego doświadczenia wynika, że instancja nadal działa uruchomić starą wersję).

Odbudowa środowiska wydaje się resetować rzeczy z użyciem nowej wersji.

Oczywiście jest minusem okresu przestoju.

 0
Author: Dan Gravell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-30 14:18:18

Had the same issue here (single t1.mikro instancja).

Rozwiązał problem poprzez ponowne uruchomienie instancji EC2 poprzez stronę EC2 w konsoli zarządzania (a nie ze strony EB).

 0
Author: mirzik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-26 08:55:13

Deployment Beanstalk (i inne funkcje, takie jak Get Logs) działa poprzez wysyłanie poleceń SQS do instancji. Klient SQS jest wdrażany do instancji i sprawdza kolejkę co około 20 sekund (patrz /var/log/cfn-hup.log): 2018-05-30 10: 42: 38,605 [DEBUG] odbieranie wiadomości do kolejki https://sqs.us-east-2.amazonaws.com/124386531466/93b60687a33e19 ...

Jeśli klient SQS ulegnie awarii lub ma problemy z siecią na instancjach t1/t2, nie będzie mógł odbierać poleceń z Beanstalk i deployment przerwa. Ponowne uruchomienie instancji uruchamia ponownie Klienta SQS i może ponownie odbierać polecenia.

Łatwiejszym sposobem na naprawienie klienta SQS jest ponowne uruchomienie usługi cfn-hup:

sudo service cfn-hup restart
 0
Author: Victor Gavrilenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 17:59:58