AWSPremiumSupport-ResizeNitroInstance - AWS Systems Manager Referência do runbook de automação

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWSPremiumSupport-ResizeNitroInstance

Descrição

O runbook AWSPremiumSupport-ResizeNitroInstance fornece uma solução automatizada para redimensionar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) criadas no sistema Nitro.

Para reduzir o risco potencial de perda de dados e tempo de inatividade, o runbook verifica o seguinte:

  • Comportamento da interrupção da instância.

  • Se a instância fizer parte de um grupo do Amazon EC2 Auto Scaling e estiver no modo standby.

  • Estado da instância e locação.

  • O tipo de instância para o qual você deseja alterar é compatível com o número de interfaces de rede atualmente conectadas à sua instância.

  • A arquitetura do processador e o tipo de virtualização do tipo de instância atual e de destino são os mesmos.

  • Se a instância estiver em execução, ela está passando todas as verificações de status.

  • O tipo de instância que você selecionou não está disponível na mesma zona de disponibilidade.

Se o Amazon EC2 não passar nas verificações de status após alterar o tipo de instância, o runbook reverte automaticamente para o tipo de instância anterior.

Por padrão, esse runbook não alterará o tipo de instância se estiver em execução e os volumes de armazenamento de instância estiverem anexados. O runbook também não alterará o tipo de instância se a instância fizer parte de uma pilha do AWS CloudFormation. Se você quiser alterar qualquer um desses comportamentos, especifique yes para os parâmetros AllowInstanceStoreInstances e AllowCloudFormationInstances.

O runbook fornece duas maneiras diferentes de especificar o tipo de instância para a qual você deseja alterar:

  • Para automações simples direcionadas a uma única instância, especifique o tipo de instância para a qual você deseja alterar usando o parâmetro TargetInstanceTypeFromParameter.

  • Para executar automações em grande escala para alterar o tipo de instância de várias instâncias, especifique o tipo de instância usando o parâmetro TargetInstanceTypeFromTagValue. Para obter informações sobre como executar automações em grande escala, consulte Executar automações em grande escala.

Se você não especificar um valor para nenhum dos parâmetros, ocorrerá uma falha na automação.

Importante

O acesso aos runbooks da AWSPremiumSupport-* requer uma assinatura do Enterprise ou Business Support. Para obter mais informações, consulte Comparar PlanosAWS Support.

Considerações

  • Recomendamos fazer backup da sua instância antes de usar este runbook.

  • Para obter informações sobre compatibilidade para alterar os tipos de instância, consulte Compatibilidade para alterar o tipo de instância.

  • Se a automação falhar e voltar para o tipo de instância original, consulte Solucionar problemas de alteração de tipo de instância.

  • A alteração do tipo de instância exige que o runbook interrompa sua instância. Quando uma instância é interrompida ou encerrada, os dados nos volumes de armazenamento da instância são perdidos. Além disso, todos os endereços IPv4 públicos atribuídos automaticamente são liberados. Para obter informações sobre o que acontece quando você interrompe uma instância do Mac, consulte Interromper e encerrar sua instância.

  • Ao usar o parâmetro SkipInstancesWithTagKey, você pode ignorar instâncias que têm uma chave de tag específica do Amazon EC2 aplicada.

Execute esta automação (console)

Tipo de documento

Automation

Proprietário

Amazon

Plataformas

Linux, Windows

Parâmetros

  • AutomationAssumeRole

    Tipo: sequência

    Descrição: (opcional) o nome do recurso da Amazon (ARN) do perfil do AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation realize ações em seu nome. Se nenhum perfil for especificado, o Systems Manager Automation usa as permissões do usuário que inicia este runbook.

  • Reconhecer

    Tipo: sequência

    Descrição: (obrigatório) digite yes para confirmar que sua instância será interrompida se estiver em execução no momento.

  • AllowInstanceStoreInstances

    Tipo: sequência

    Valores válidos: não | sim

    Padrão: não

    Descrição: (opcional) se você especificar yes, você permite que o runbook seja executado em instâncias que têm volumes de armazenamento de instâncias anexados.

  • AllowCloudFormationInstances

    Tipo: sequência

    Valores válidos: não | sim

    Padrão: não

    Descrição: (opcional) se você especificar yes, o runbook é executado em instâncias que fazem parte de uma pilha do AWS CloudFormation.

  • DryRun

    Tipo: sequência

    Valores válidos: não | sim

    Padrão: não

    Descrição: (opcional) se você especificar yes, o runbook valida os requisitos de redimensionamento sem fazer alterações no tipo de instância.

  • InstanceId

    Tipo: sequência

    Descrição: (obrigatório) o ID da instância do Amazon EC2 cujo tipo você deseja alterar.

  • SkipInstancesWithTagKey

    Tipo: sequência

    Descrição: (opcional) A automação ignora uma instância de destino se a chave de tag especificada for aplicada à instância.

  • SleepTime

    Tipo: sequência

    Padrão: 3

    Descrição: (opcional) o número de segundos que esse runbook deve repousar após a conclusão.

  • TagInstance

    Tipo: sequência

    Descrição: (opcional) marque as instâncias com a chave e o valor de sua escolha usando o seguinte formato: Key=ChangingType,Value=True. Essa opção permite rastrear instâncias que foram alvo desse runbook. As chaves e os valores de tags diferenciam maiúsculas de minúsculas.

  • TargetInstanceTypeFromParameter

    Tipo: sequência

    Descrição: (opcional) o tipo de instância para o qual você deseja alterar sua instância. Deixe esse parâmetro vazio se quiser usar o valor da chave de tag fornecida no parâmetro TargetInstanceTypeFromTagValue.

  • TargetInstanceTypeFromTagValue

    Tipo: sequência

    Descrição: (opcional) a chave de tag aplicada às suas instâncias de destino cujo valor contém o tipo de instância para a qual você deseja alterar. Se você não especificar um valor para esse parâmetro, ele substitui qualquer valor que você especificar para esse parâmetro TargetInstanceTypeFromParameter.

Permissões obrigatórias do IAM

O parâmetro AutomationAssumeRole requer as seguintes ações para usar o runbook com êxito.

  • autoscaling:DescribeAutoScalingInstances

  • cloudformation:DescribeStackResources

  • ssm:GetAutomationExecution

  • ssm:DescribeAutomationExecutions

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

Etapas do documento

  1. aws:assertAwsResourceProperty: garante que a instância do Amazon EC2 não seja marcada com a chave de tag de recurso especificada no parâmetro SkipInstancesWithTagKey. Se a chave de tag for encontrada aplicada à instância, a etapa falhará e a automação será encerrada.

  2. aws:assertAwsResourceProperty: confirma que o status da instância de destino do Amazon EC2 é running, pending, stopped ou stopping. Caso contrário, a automação termina.

  3. aws:executeAwsApi: reúne propriedades da instância do Amazon EC2.

  4. aws:executeAwsApi: reúne detalhes sobre o tipo de instância atual do Amazon EC2.

  5. aws:branch: verifica se o tipo de instância atual e o tipo de instância especificado no parâmetro TargetInstanceTypeFromParameter são iguais. Se forem iguais, a automação termina.

  6. aws:assertAwsResourceProperty: garante que a instância esteja em execução no sistema Nitro.

  7. aws:branch: garante que o tipo de volume raiz da instância do Amazon EC2 seja um volume do Amazon Elastic Block Store (Amazon EBS).

  8. aws:assertAwsResourceProperty: confirma se o comportamento de desligamento da instância é stop, e não terminate.

  9. aws:branch: garante que a instância do Amazon EC2 não seja uma instância spot.

  10. aws:branch: garante que a locação da instância do Amazon EC2 seja padrão e não um host dedicado ou uma instância dedicada.

  11. aws:executeScript: confirma que há apenas uma automação desse runbook direcionada ao ID da instância atual. Se outra automação já estiver em andamento visando a mesma instância, a automação retornará um erro e terminará.

  12. aws:branch: ramifica a automação com base no estado da instância do Amazon EC2.

    1. Se stopped ou stopping, a automação executa aws:waitForAwsResourceProperty até que a instância do Amazon EC2 seja totalmente interrompida.

    2. Se running ou pending, a automação executa aws:waitForAwsResourceProperty até que a instância do Amazon EC2 passe as verificações de status.

  13. aws:assertAwsResourceProperty: confirma que a instância do Amazon EC2 não faz parte de um grupo do Auto Scaling chamando a operação da API DescribeAutoScalingInstances. Se a instância faz parte de um grupo do Auto Scaling, garante que a instância do Amazon EC2 esteja no modo standby.

  14. aws:branch: ramifica a automação dependendo se você deseja que a automação verifique se a instância do Amazon EC2 faz parte de uma pilha do AWS CloudFormation.

    1. aws:executeScript: garante que a instância do Amazon EC2 não faça parte de uma pilha do AWS CloudFormation chamando a operação da API DescribeStackResources.

  15. aws:executeAwsApi: retorna uma lista de tipos de instância com o mesmo tipo de arquitetura de processador, tipo de virtualização, e que suporta o número de interfaces de rede atualmente conectadas à instância de destino.

  16. aws:executeAwsApi: obtém o valor do tipo de instância de destino da chave de tag especificada no parâmetro TargetInstanceTypeFromTagValue.

  17. aws:executeScript: confirma que os tipos de instâncias atual e de destino são compatíveis. Garante que o tipo de instância de destino esteja disponível na mesma sub-rede. Verifica se a entidade principal que iniciou o runbook tem permissões para alterar o tipo de instância e parar e iniciar a instância se ela estiver em execução.

  18. aws:branch: ramifica a automação com base no valor do parâmetro DryRun estar definido como yes. Se yes, a automação termina.

  19. aws:branch: verifica se o tipo de instância original e de destino são iguais. Se forem iguais, a automação termina.

  20. aws:executeAwsApi: obtém o estado atual da instância.

  21. aws:changeInstanceState: interrompe a instância do Amazon EC2.

  22. aws:changeInstanceState: força a instância a parar se ela estiver presa no estado stopping.

  23. aws:executeAwsApi: altera o tipo de instância para o tipo de instância de destino.

  24. aws:sleep: espera três segundos após alterar o tipo de instância para uma eventual consistência.

  25. aws:branch: ramifica a automação com base no estado anterior da instância. Se foi running, a instância é iniciada.

    1. aws:changeInstanceState: inicia a instância do Amazon EC2 se ela estava em execução antes de alterar o tipo de instância.

    2. aws:waitForAwsResourceProperty: espera que a instância do Amazon EC2 passe nas verificações de status. Se a instância não passar nas verificações de status, altere-a de volta para seu tipo original.

      1. aws:changeInstanceState: interrompe a instância do Amazon EC2 antes de alterá-la para seu tipo original.

      2. aws:changeInstanceState: força a instância do Amazon EC2 a parar antes de alterá-la para o tipo de instância original, caso ela fique presa em um estado de parada.

      3. aws:executeAwsApi: altera a instância do Amazon EC2 para seu tipo original.

      4. aws:sleep: espera três segundos após alterar o tipo de instância para uma eventual consistência.

      5. aws:changeInstanceState: inicia a instância do Amazon EC2 se ela estava em execução antes de alterar o tipo de instância.

      6. aws:waitForAwsResourceProperty: espera que a instância do Amazon EC2 passe nas verificações de status.

  26. aws:sleep: espera antes de terminar o runbook.