Mam konfigurację aplikacji sieci Web z modułem równoważenia obciążenia i grupą automatycznego skalowania do zarządzania skalowaniem. Kod źródłowy znajduje się w repozytorium git, więc nie muszę aktualizować obrazów, gdy kod się zmienia, ale czasami środowisko się zmienia, więc tworzymy nowy obraz. Następnie ten obraz musi zostać włączony do grupy automatycznego skalowania.
Czy istnieje sposób automatycznego cyklicznego wyświetlania obrazów? Obecnie planuję akcję zwiększania i zmniejszania skali, która pozbywa się starych instancji.
amazon-ec2
amazon-web-services
autoscaling
platformy
źródło
źródło
as-set-instance-health
), dzięki czemu automatyczne skalowanie po prostu zastąpi ją nową instancją.Odpowiedzi:
W tym celu chciałbym zasugerować „AWS-HA-Release” - sposób działania AWS-HA-Release:
W takim przypadku możesz wysłać nowy kod lub nowe wersje AMI bez przestojów i skorzystać z całkowicie nowych instancji. Narzędzie AWS-HA-Release jest dostępne na stronie https://github.com/colinbjohnson/aws-missing-tools .
źródło
Najłatwiejszym sposobem jest zwiększenie liczby minimalnych instancji w Grupie automatycznego skalowania (ASG), aby podwoić bieżącą liczbę, poczekać, aż wszystkie zostaną uruchomione, a następnie zmienić minimalną liczbę instancji na taką, jaka była. ELB zabije starsze wystąpienia i pozostawi nowsze z kodem. Aby to osiągnąć, zasadę wypowiedzenia należy ustawić na „ OldestInstance ”, aby działała zgodnie z przeznaczeniem. Domyślna polityka zakończenia może mieć niepożądane skutki uboczne.
Parametry i przykłady interfejsu AWS CLI można znaleźć tutaj: http://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html
źródło
sposobem zarządzania tym scenariuszem jest użycie funkcji UpdatePolicy obiektu AWS :: AutoScaling :: AutoScalingGroup w tworzeniu chmury. gdy stos formacji chmur jest aktualizowany, będzie zarządzał cyklem instancji.
niektóre referencje. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy .html
źródło
Zobacz także narzędzie Netflix Asgard , które jest teraz open source. Może nie tylko skonfigurować grupy automatycznego skalowania, ale może także wykonywać nowe wersje obrazów AMI dla grupy instancji.
źródło
Szczerze mówiąc, nie ma naprawdę dobrego sposobu na zrobienie tego. Najlepszym sposobem, aby to zrobić, jest umieszczenie wersji w nazwie ASG. Za każdym razem, gdy aktualizuję AMI, tworzę nowy ASG + Launch Config z nową wersją, aby nie powodował konfliktu z inną grupą. Następnie kończę wszystkie wystąpienia w starej grupie.
Jeśli wymagane jest wdrożenie bardziej odporne na awarie, zalecam dodanie kolejnego kroku, obejmując również utworzenie nowego modułu równoważenia obciążenia. Pozwala to na izolację od siebie obu ASG. Pozwala także na utworzenie obszaru przejściowego do testowania zmian po raz ostatni przed aktualizacją. Następnie, gdy jesteś gotowy do zmiany, zaktualizuj rekordy DNS i zakończ wszystkie wystąpienia w starej grupie.
źródło
Jak pisałem tutaj (podobne pytanie, tylko z Terraform), nie jest ono wbudowane w ASG w żaden sposób, z wyjątkiem sytuacji, gdy używasz chmury. Walczyłem również z tym, więc ostatecznie napisałem „rolkę”, która ogląda wiele ASG, sprawdza ich stan i aktualizacje. Zawsze chętnie przyjmujemy opinie. http://github.com/deitch/aws-asg-roller
źródło