Potok przetwarzania wideo wykorzystuje instancje EC2 w grupie Auto Scaling do przetwarzania filmów z kolejki SQS. Przetwarzanie każdego filmu trwa około 30 minut. Kolejka SQS ma politykę redrive do kolejki martwych wiadomości (dead-letter queue) z ustawionym parametrem maxReceiveCount na 1. Limit czasu widoczności kolejki wynosi 1 godzinę. Alarmy CloudWatch powiadamiają zespół, gdy wiadomości pojawiają się w DLQ. Kilka razy dziennie wiadomości pojawiają się w DLQ, a filmy nie zostały przetworzone. Logi aplikacji nie wykazują błędów. Jaka zmiana zapobiegnie temu problemowi?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Włącz ochronę przed zmniejszeniem skali (scale-in protection) dla instancji podczas przetwarzania filmów..
Dlaczego to jest odpowiedź
Problem pojawia się, ponieważ instancje EC2 są usuwane przez Auto Scaling Group (ASG) zanim zdążą przetworzyć filmy. Czas przetwarzania filmu wynosi 30 minut, a limit czasu widoczności kolejki to 1 godzina. Jeśli instancja zostanie zakończona w trakcie przetwarzania, wiadomość wróci do kolejki głównej, ale ponieważ maxReceiveCount jest ustawione na 1, od razu trafi do DLQ po ponownym pobraniu. Włączenie ochrony przed zmniejszeniem skali (scale-in protection) dla instancji podczas przetwarzania zapobiegnie ich przedwczesnemu zakończeniu przez ASG. Zwiększenie limitu czasu widoczności kolejki SQS do 3 godzin nie rozwiąże problemu, jeśli instancja zostanie zakończona. Włączenie ochrony przed zakończeniem (termination protection) na instancjach EC2 jest ustawieniem instancji, a nie ASG, i nie zapobiegnie zakończeniu przez ASG. Zmiana maxReceiveCount na 0 uniemożliwiłaby ponowne przetwarzanie wiadomości, co jest niepożądane.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana