Tutorial: executar o estresse da CPU em uma instância usando o AWS FIS
Você pode usar o AWS Fault Injection Service (AWS FIS) para testar como seus aplicativos lidam com o estresse da CPU. Use este tutorial para criar um modelo de experimento que usa o AWS FIS para executar um documento do SSM pré-configurado que executa o estresse da CPU em uma instância. O tutorial usa uma condição de parada para interromper o experimento quando a utilização da CPU da instância excede um limite configurado.
Para ter mais informações, consulte Documentos do AWS FIS SSM pré-configurados.
Pré-requisitos
Antes de você poder usar o AWS FIS para executar o estresse da CPU, preencha os pré-requisitos a seguir.
Criar um perfil do IAM
Crie uma função e anexe uma política que permita que o AWS FIS use a ação aws:ssm:send-command
em seu nome. Para ter mais informações, consulte Perfis do IAM para experimentos do AWS FIS.
Verifique o acesso ao AWS FIS
Verifique se você tem acesso ao AWS FIS. Para obter mais informações, consulte Exemplos de políticas do AWS FIS.
Preparar uma instância do EC2 de teste
-
Execute uma instância do EC2 usando o Amazon Linux 2 ou o Ubuntu, conforme exigido pelos documentos do SSM pré-configurados.
-
A instância deve ser gerenciada pelo SSM. Para verificar se a instância é gerenciada pelo SSM, abra o console do Fleet Manager
. Se a instância não for gerenciada pelo SSM, verifique se o Atendente SSM está instalado e se a instância tem um perfil do IAM associada à política AmazonSSMManagedInstanceCore. Para verificar o Atendente SSM instalado, conecte-se à sua instância e execute o comando a seguir. Amazon Linux 2
yum info amazon-ssm-agent
Ubuntu
apt list amazon-ssm-agent
-
Habilita o monitoramento detalhado da instância. Isso fornece dados em períodos de 1 minuto, mediante pagamento adicional. Selecione a instância e escolha Ações, Monitorar e solucionar problemas, Gerenciar monitoramento detalhado.
Etapa 1: criar um alarme do CloudWatch para uma condição de parada
Configure um alarme do CloudWatch para que você possa interromper o experimento se a utilização da CPU exceder o limite especificado. O procedimento a seguir define o limite de 50% de utilização da CPU para a instância de destino. Para ter mais informações, consulte Condições de parada.
Para criar um alarme que indique quando a utilização da CPU excede um limite
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Instances (Instâncias).
-
Selecione a instância de destino e escolha Ações, Monitorar e solucionar problemas, Gerenciar alarmes do CloudWatch.
-
Em Notificação de alarme, use a opção para desativar as notificações do Amazon SNS.
-
Em Limites de alarme, use as seguintes configurações:
-
Agrupar amostras por: Máximo
-
Tipo de dados a serem amostrados: utilização da CPU
-
Porcentagem:
50
-
Período:
1 Minute
-
-
Quando terminar de configurar o alarme, escolha Criar.
Etapa 2: criar um modelo de experimento
Criar o modelo de experimento usando o console do AWS FIS. No modelo, você especifica a seguinte ação a ser executada: aws:ssm:send-command/AWSFIS-Run-CPU-Stress.
Para criar um modelo de experimento
Abra o console do AWS FIS em https://console.aws.amazon.com/fis/
. -
No painel de navegação, selecione Modelos de experimento.
-
Escolha Criar modelo de experimento.
-
Em Descrição e nome, insira uma descrição e um nome para o modelo.
-
Em Ações, faça o seguinte:
-
Selecione Adicionar ação.
-
Insira um nome para a ação. Por exemplo, digite
runCpuStress
. -
Em Tipo de ação, escolha aws:ssm:send-command/AWSFIS-Run-CPU-Stress. Isso adiciona automaticamente o ARN do documento do SSM ao ARN do documento.
-
Em Destino, mantenha o destino que o AWS FIS cria para você.
-
Em Parâmetros de ação, Parâmetros do documento, insira o seguinte:
{"DurationSeconds":"120"}
-
Em Parâmetros de ação, Duração, especifique 5 minutos (PT5M).
-
Escolha Salvar.
-
-
Em Destinos, faça o seguinte:
-
Escolha Editar para o destino que o AWS FIS criou automaticamente para você na etapa anterior.
-
Substitua o nome padrão por um nome mais descritivo. Por exemplo, digite
testInstance
. -
Verifique se o Tipo de recurso é aws:ec2:instance.
-
Em Método de destino, escolha IDs de recursos e, em seguida, escolha o ID da instância de teste.
-
Em Modo de seleção, escolha Todos.
-
Escolha Salvar.
-
-
Em Acesso ao serviço, escolha Usar um perfil do IAM existente e, em seguida, escolha o perfil do IAM que você criou conforme descrito nos pré-requisitos deste tutorial. Se sua função não for exibida, verifique se ela tem a relação de confiança necessária. Para ter mais informações, consulte Perfis do IAM para experimentos do AWS FIS.
-
Em Condições de parada, selecione o alarme do CloudWatch que você criou na Etapa 1.
-
(Opcional) Em Tags, escolha Adicionar nova tag e especifique uma chave de tag e um valor de tag. As tags que você adiciona são aplicadas ao seu modelo de experimento, não aos experimentos que são executados usando o modelo.
-
Escolha Criar modelo de experimento.
(Opcional) Para visualizar o modelo de experimento JSON
Escolha a guia Exportar. Este é um exemplo do JSON criado pelo procedimento de console anterior.
{ "description": "Test CPU stress predefined SSM document", "targets": { "testInstance": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:
region
:123456789012
:instance/instance_id
" ], "selectionMode": "ALL" } }, "actions": { "runCpuStress": { "actionId": "aws:ssm:send-command", "parameters": { "documentArn": "arn:aws:ssm:region
::document/AWSFIS-Run-CPU-Stress", "documentParameters": "{\"DurationSeconds\":\"120\"}", "duration": "PT5M" }, "targets": { "Instances": "testInstance" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:region
:123456789012
:alarm:awsec2-instance_id
-GreaterThanOrEqualToThreshold-CPUUtilization" } ], "roleArn": "arn:aws:iam::123456789012
:role/AllowFISSSMActions
", "tags": {} }
Etapa 3: iniciar o experimento
Quando terminar de criar seu modelo de experimento, você poderá usá-lo para iniciar um experimento.
Para iniciar um experimento
-
Você deve estar na página de detalhes do modelo de experimento que acabou de criar. Caso contrário, escolha Modelos de experimento e selecione o ID do modelo de experimento para abrir a página de detalhes.
-
Escolha Start experiment (Iniciar experimento).
-
(Opcional) Para adicionar uma tag ao experimento, escolha Adicionar nova tag e insira uma chave de tag e um valor de tag.
-
Escolha Start experiment (Iniciar experimento). Quando a confirmação for solicitada, insira
start
. Escolha Start experiment (Iniciar experimento).
Etapa 4: acompanhar o progresso do experimento
Você pode acompanhar o progresso de um experimento em andamento até que ele seja concluído, interrompido ou falhe.
Para acompanhar o progresso de um experimento
-
Você deve estar na página de detalhes do modelo de experimento que acabou de iniciar. Caso contrário, escolha Experimentos e selecione o ID do modelo de experimento para abrir a página de detalhes do experimento.
-
Para ver o estado do experimento, marque Estado no painel Detalhes. Para obter mais informações, consulte Estados do experimento.
-
Quando o estado do experimento for Em execução, vá para a próxima etapa.
Etapa 5: verificar os resultados do experimento
Você pode monitorar a utilização da CPU da sua instância enquanto o experimento está sendo executado. Quando a utilização da CPU atinge o limite, o alarme é acionado e o experimento é interrompido pela condição de parada.
Para verificar os resultados do experimento
-
Escolha a guia Condições de parada. A borda verde e o ícone de marca de seleção verde indicam que o estado inicial do alarme é
OK
. A linha vermelha indica o limite do alarme. Se você preferir um gráfico mais detalhado, escolha Ampliar no menu do widget. -
Quando a utilização da CPU excede o limite, a borda vermelha e o ícone de ponto de exclamação vermelho na guia Condições de parada indicam que o estado do alarme foi alterado para
ALARM
. No painel Detalhes, o estado do experimento é Interrompido. Se você selecionar o estado, a mensagem exibida será “Experimento interrompido pela condição de parada”. -
Quando a utilização da CPU diminui abaixo do limite, a borda verde e o ícone de marca de seleção verde indicam que o estado do alarme mudou para
OK
. -
(Opcional) Escolha Exibir em alarmes no menu do widget. Isso abre a página de detalhes do alarme no console do CloudWatch, na qual você pode obter mais detalhes sobre o alarme ou editar as configurações do alarme.
Etapa 6: limpar
Se a instância de teste do EC2 criada durante o experimento não for mais necessária, você poderá encerrá-la.
Para terminar as instâncias
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Instances (Instâncias).
-
Selecione as instâncias de teste e escolha Estado da instância e Encerrar instância.
-
Quando a confirmação for solicitada, escolha Terminate (Encerrar).
Se você não precisar mais do modelo de experimento, poderá excluí-lo.
Para excluir um modelo de experimento usando o console do AWS FIS
Abra o console do AWS FIS em https://console.aws.amazon.com/fis/
. -
No painel de navegação, selecione Modelos de experimento.
-
Selecione o modelo do experimento e escolha Ações, Excluir modelo de experimento.
-
Quando a confirmação for solicitada, insira
delete
e escolha Excluir modelo de experimento.