Detecte erros e confirme a recuperação do site

AWSBeginner
Pratique Agora

Introdução

Crie um alarme de solicitações, publique um perfil inválido e restaure o site e o estado OK.

Conclua os laboratórios anteriores do portfólio. Este ambiente fornece seus próprios recursos e capacidades anteriores necessárias. Reutilize conhecimentos, não instâncias, arquivos ou credenciais anteriores.

Relação com certificação

Certificação Tarefas Prática
AWS Certified Cloud Practitioner (CLF-C02) Task 3.8 Observar falha e recuperação com métricas, alarmes e logs.

Visão geral

Crie um alarme de solicitações, publique um perfil inválido e restaure o site e o estado OK.

Configure o alarme de erros

Nesta etapa, você observará solicitações reais. Abra o site saudável. Métrica mede valores no tempo; namespace agrupa e dimensions identificam a aplicação. Errors em LabEx/Portfolio, Application=portfolio, recebe 1 por erro e 0 por sucesso. O alarme compara ao limite, não repara o site. Errors mede somente pedidos da página /website neste exercício. Imagens e outros arquivos produzem eventos de log separados.

Entre no projeto.

cd /home/labex/project

Carregue e mostre a instância.

source website.env
echo "$INSTANCE_ID"

Leia Sum, Period=10, EvaluationPeriods=1 e GreaterThanThreshold com limite 0. missing não considera ausência de dados como tráfego saudável. A integração fornece métricas personalizadas de alta resolução de um segundo; não há notificações configuradas.

cat website-alarm.json

Crie o alarme com o arquivo.

aws cloudwatch put-metric-alarm --cli-input-json file://website-alarm.json

Consulte seu estado.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

INSUFFICIENT_DATA pode ser inicial por falta de dados avaliados. AWS View mostra o mesmo valor; não o force manualmente.

Observe uma publicação incorreta

Nesta etapa, você reproduzirá JSON inválido sem mudar rede ou permissões.

Leia o perfil quebrado fornecido.

cat profile-broken.json

Publique por SCP no mesmo caminho.

scp -F ssh_config profile-broken.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

Atualize: Website unavailable, mas EC2 continua running. Encontre path=/website status=503 e relacione ao conteúdo recém-publicado. O padrão é uma frase exata: as aspas simples externas preservam as aspas duplas internas.

aws logs filter-log-events --log-group-name "$LOG_GROUP" --filter-pattern '"status=503"'

Espere um período de dez segundos; gere outra falha se necessário e consulte o alarme.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

Confirme ALARM. Se faltarem dados, faça outra solicitação real e aguarde avaliação. Um log antigo não é uma amostra recente.

Ponto de controle real do laboratório; seus identificadores podem variar.

Restaure e confirme o resultado

Nesta etapa, você publicará o perfil válido e verificará página e alarme.

Leia os três campos válidos do arquivo conhecido.

cat profile-working.json

Publique no mesmo caminho.

scp -F ssh_config profile-working.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

Atualize para Alex Morgan e a imagem S3; encontre um novo path=/website status=200. O padrão é uma frase exata: as aspas simples externas preservam as aspas duplas internas.

aws logs filter-log-events --log-group-name "$LOG_GROUP" --filter-pattern '"status=200"'

Dê ao tráfego saudável um novo período; atualize novamente se preciso e consulte o alarme.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

Confirme OK. Os antigos 503 ficam no histórico. Sem solicitações, missing pode resultar em INSUFFICIENT_DATA, diferente de tráfego saudável demonstrado. Mantenha sucessos recentes durante a verificação.

Ponto de controle real do laboratório; seus identificadores podem variar.

Remova carga e monitoramento

Nesta etapa, você limpará após a recuperação confirmada.

Encerre a instância.

aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"

Espere terminated.

aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"

Remova apenas portfolio-errors.

aws cloudwatch delete-alarms --alarm-names portfolio-errors

Apague o grupo de logs do exercício.

aws logs delete-log-group --log-group-name "$LOG_GROUP"

Preserve S3, função, rede e eventos de referência. Excluir alarme não exclui métricas; a instância encerrada deixa de gerar novas amostras. Continue com AWS Resource Management for Beginners.

Resumo

Você observou HTTP 503 e ALARM, reparou o perfil e confirmou HTTP 200 e OK antes de limpar.

Referências oficiais: CloudWatch alarms, high-resolution custom metrics.