Tutorial: executar o estresse da CPU em uma instância usando o AWS FIS - AWS Fault Injection Service

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
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância de destino e escolha Ações, Monitorar e solucionar problemas, Gerenciar alarmes do CloudWatch.

  4. Em Notificação de alarme, use a opção para desativar as notificações do Amazon SNS.

  5. 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

  6. 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
  1. Abra o console do AWS FIS em https://console.aws.amazon.com/fis/.

  2. No painel de navegação, selecione Modelos de experimento.

  3. Escolha Criar modelo de experimento.

  4. Em Descrição e nome, insira uma descrição e um nome para o modelo.

  5. Em Ações, faça o seguinte:

    1. Selecione Adicionar ação.

    2. Insira um nome para a ação. Por exemplo, digite runCpuStress.

    3. 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.

    4. Em Destino, mantenha o destino que o AWS FIS cria para você.

    5. Em Parâmetros de ação, Parâmetros do documento, insira o seguinte:

      {"DurationSeconds":"120"}
    6. Em Parâmetros de ação, Duração, especifique 5 minutos (PT5M).

    7. Escolha Salvar.

  6. Em Destinos, faça o seguinte:

    1. Escolha Editar para o destino que o AWS FIS criou automaticamente para você na etapa anterior.

    2. Substitua o nome padrão por um nome mais descritivo. Por exemplo, digite testInstance.

    3. Verifique se o Tipo de recurso é aws:ec2:instance.

    4. Em Método de destino, escolha IDs de recursos e, em seguida, escolha o ID da instância de teste.

    5. Em Modo de seleção, escolha Todos.

    6. Escolha Salvar.

  7. 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.

  8. Em Condições de parada, selecione o alarme do CloudWatch que você criou na Etapa 1.

  9. (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.

  10. 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
  1. 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.

  2. Escolha Start experiment (Iniciar experimento).

  3. (Opcional) Para adicionar uma tag ao experimento, escolha Adicionar nova tag e insira uma chave de tag e um valor de tag.

  4. 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
  1. 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.

  2. Para ver o estado do experimento, marque Estado no painel Detalhes. Para obter mais informações, consulte Estados do experimento.

  3. 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
  1. 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.

    Gráfico mostrando um pico de utilização da CPU em 100% após um período de baixa atividade em torno de 50%.
  2. 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”.

    Gráfico mostrando a utilização da CPU ao longo do tempo com uma linha de limite vermelha de 50%.
  3. 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.

  4. (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
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione as instâncias de teste e escolha Estado da instância e Encerrar instância.

  4. 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
  1. Abra o console do AWS FIS em https://console.aws.amazon.com/fis/.

  2. No painel de navegação, selecione Modelos de experimento.

  3. Selecione o modelo do experimento e escolha Ações, Excluir modelo de experimento.

  4. Quando a confirmação for solicitada, insira delete e escolha Excluir modelo de experimento.