Como posso avaliar e corrigir automaticamente o aumento do volume em uma instância do Amazon EC2 quando o espaço livre em disco é baixo?

4 minuto de leitura
0

Quero ver se os volumes anexados às minhas instâncias do Amazon Elastic Compute Cloud (Amazon EC2) precisam ser estendidos. Além disso, estender partições e sistemas de arquivos no nível do sistema operacional (SO) é uma operação demorada. Como posso automatizar todo o processo?

Breve descrição

Você pode usar um conjunto de documentos do AWS Systems Manager Automation para avaliar e ampliar os volumes do Amazon Elastic Block Store (Amazon EBS). Os documentos de automação funcionam em conjunto, permitindo que você investigue e, opcionalmente, corrija o baixo uso do disco em uma instância do Amazon EC2.

O documento de automação AWSPremiumSupport-TroubleshootEC2DiskUsage orquestra a execução dos outros documentos do Systems Manager com base no tipo do sistema operacional.

O primeiro conjunto de documentos realiza diagnósticos básicos e avalia se é possível migrar expandindo o tamanho do volume:

  • AWSPremiumSupport-DiagnoseDiskUsageOnWindows
  • AWSPremiumSupport-DiagnoseDiskUsageOnLinux

O segundo conjunto de documentos obtém a saída do primeiro documento e executa o código Python para realizar a modificação do volume. Em seguida, a automação acessa a instância e estende a partição e o sistema de arquivos dos volumes:

  • AWSPremiumSupport-ExtendVolumesOnWindows
  • AWSPremiumSupport-ExtendVolumesOnLinux

Use as etapas a seguir para configurar as permissões necessárias e executar o documento de automação.

Resolução

Conceder permissões

Você deve conceder as seguintes permissões para usar os documentos de automação.

Se ainda não fez isso, crie um perfil de instância do AWS Identity and Access Management (IAM) para o Systems Manager. Em seguida, anexe-o à instância de destino.

Para configurar AssumeRole, que é necessário para especificar o parâmetro AutomationAssumeRole durante o processo de configuração do documento de automação, siga estas etapas:

1.    Crie uma política na guia JSON usando o seguinte documento de política JSON:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "ec2:DescribeVolumes",
        "ec2:DescribeVolumesModifications",
        "ec2:ModifyVolume",
        "ec2:DescribeInstances",
        "ec2:CreateImage",
        "ec2:DescribeImages",
        "ec2:DescribeTags",
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ssm:StartAutomationExecution",
        "ssm:GetAutomationExecution",
        "ssm:DescribeAutomationStepExecutions",
        "ssm:DescribeAutomationExecutions"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ssm:SendCommand",
        "ssm:DescribeInstanceInformation",
        "ssm:ListCommands",
        "ssm:ListCommandInvocations"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

2.    Crie o perfil de obtenção e anexe a política criada na etapa anterior.

3.    Modifique essa instrução e substitua "Resource": "*" pelo ARN do perfil de obtenção.

{
  "Action": [
      "iam:PassRole"
    ],
    "Resource": "*",
    "Effect": "Allow"
  },

Executar o documento de automação

Para usar o conjunto de documentos do Systems Manager Automation, você precisa executar somente o documento inicial AWSPremiumSupport-TroubleshootEC2DiskUsage. Siga estas etapas:

1.    Abra o console do Systems Manager e escolha Automação no painel de navegação.

2.    Escolha Executar automação.

3.    Selecione o botão de opção para AWSPremiumSupport-TroubleshootEC2DiskUsage e escolha Próximo.

4.    Para Executar documento de automação, selecione Execução simples.

5.    Em Parâmetros de entrada:

Para InstanceId, insira seu ID de instância do Amazon EC2.

Para AutomationAssumeRole, insira o ARN do perfil que permite que a automação execute as ações em seu nome. Esse é o perfil de obtenção que você criou ao conceder permissões.

6.    (Opcional) Em Parâmetros de entrada, especifique as seguintes entradas se seus requisitos forem diferentes dos valores padrão:

VolumeExpansionEnabled: Controla se o documento estenderá os volumes e as partições afetados (padrão: True)

VolumeExpansionUsageTrigger: Porcentagem mínima do espaço de partição usado necessário para acionar a expansão (padrão: 85)

VolumeExpansionCapSize: Tamanho máximo em GiB até o qual o volume do EBS aumentará (padrão: 2048)

VolumeExpansionGibIncrease: Aumento de volume em GiB (padrão: 20)

VolumeExpansionPercentageIncrease: Aumento de volume em porcentagem (padrão: 20)

7.    Escolha Executar.

O console exibe o status da automação.

Exemplo

Seu volume atual é de 30 GB e tem 4 GB livres, o que significa que você tem 26 GB de espaço usado. Você especifica os seguintes parâmetros de entrada:

  • VolumeExpansionUsageTrigger: 85
  • VolumeExpansionGibIncrease: 10
  • VolumeExpansionPercentageIncrease: 15
  • VolumeExpansionCapSize: 2048

Resultado:

O aumento é acionado porque 26 GB de espaço usado estão acima do limite de 85% especificado para VolumeExpansionUsageTrigger.

O volume aumentou em 10 GB. Isso ocorre porque você especificou que o volume deve aumentar em 10 GB, ou 15% do tamanho atual do volume de 4,5 GB. O documento de automação usa o maior aumento líquido entre VolumeExpansionGibIncrease e VolumeExpansionPercentageIncrease.

O novo tamanho do volume é de 40 GB, dentro do VolumeExpansionCapSize de 2048 especificado.


Informações relacionadas

Estender um sistema de arquivos Linux após redimensionar um volume

Estender um sistema de arquivos Windows após redimensionar um volume

Usar o IAM para configurar perfis para automação