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

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.

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.

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.



