Tutorial: Dimensionar instâncias de contêiner comCloudWatchAlarmes de do - Amazon Elastic Container Service

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

Tutorial: Dimensionar instâncias de contêiner comCloudWatchAlarmes de do

nota

Em dezembro de 2019, o Amazon ECS lançou o auto scaling de cluster como um método alternativo para dimensionar instâncias de contêiner. Para obter mais informações, consulte Auto Scaling de cluster do Amazon ECS.

Os procedimentos a seguir ajudam a criar um grupo do Auto Scaling para um cluster do Amazon ECS. O grupo do Auto Scaling contém instâncias de contêiner que você pode expandir (e reduzir) usando alarmes do CloudWatch.

Dependendo dos tipos de instância do Amazon EC2 usados em seus clusters e da quantidade de instâncias de contêiner que tem em um cluster, as tarefas têm uma quantidade limitada de recursos que elas podem usar quando em execução. O Amazon ECS monitora os recursos disponíveis no cluster para trabalhar com os programadores para designar tarefas. Se o cluster for executado lentamente em qualquer um desses recursos, como memória, eventualmente, você não poderá iniciar mais tarefas até adicionar mais instâncias de contêiner, reduzir o número de tarefas desejadas em um serviço ou parar algumas das tarefas em execução no cluster para liberar o recurso restrito.

Neste tutorial, você cria um alarme do CloudWatch e uma política de escalabilidade em etapas usando a métrica do MemoryReservation para o cluster. Quando a reserva de memória do cluster ficar acima de 75% (o que significa que apenas 25% da memória no cluster estão disponíveis para novas tarefas serem reservadas), o alarme acionará o grupo do Auto Scaling para adicionar outra instância e fornecer mais recursos para as tarefas e os serviços.

Prerequisites

Este tutorial pressupõe que você tenha habilitado as métricas do CloudWatch para os clusters e os serviços. As métricas não estarão disponíveis até os clusters e os serviços enviarem as métricas para CloudWatch, e você não pode criar alarmes do CloudWatch para métricas ainda não existentes. Para obter mais informações, consulte HabilitarCloudWatchmétricas.

Etapa 1: Criar umCloudWatchAlarme para uma métrica

Assim que tiver habilitado as métricas do CloudWatch para os clusters e os serviços e as métricas do cluster estiverem visíveis no console do CloudWatch, você poderá definir alarmes para as métricas. Para obter mais informações, consulte Criar alarmes do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.

Neste tutorial, você cria um alarme na métrica MemoryReservation do cluster para alertar quando a reserva de memória do cluster está acima de 75%.

Para criar um alarme do CloudWatch em uma métrica

  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação à esquerda, escolha Alarms (Alarmes), Create Alarm (Criar alarme).

  3. Na seção CloudWatch Metrics by Category, escolha ECS Metrics > ClusterName.

  4. Na página Modify Alarm, escolha a métrica MemoryReservation para o cluster padrão e escolha Next.

  5. Na seção Limite de alarme, insira um nome e uma descrição para o alarme.

    • Nome: memory-above-75-pct

    • Descrição: Cluster memory reservation above 75%

  6. Defina o limite e o requisito de período para MemoryReservation mais de 75% para 1 período.

    
                                CloudWatchLimite de alarmes do
  7. (Opcional) Configure uma notificação a ser enviada quando o alarme é disparado. Você também pode optar por excluir a notificação se você não desejar configurar uma agora.

  8. Escolha Create Alarm. Agora você pode usar esse alarme para acionar o seu grupo do Auto Scaling para adicionar uma instância de contêiner quando a reserva de memória estiver acima de 75%.

  9. (Opcional) Você também pode criar outro alarme que seja disparado quando a reserva de memória for inferior a 25%, que você pode usar para remover uma instância de contêiner de seu grupo do Auto Scaling.

Etapa 2: Crie uma configuração de ativação para umAuto Scalinggrupo do

Agora que habilitou as métricas do CloudWatch e criou um alarme com base em uma dessas métricas, você pode criar uma configuração de execução e um grupo do Auto Scaling para o cluster. Para obter mais informações e outras opções de configuração, consulte as Configurações de execução no Guia do usuário do Amazon EC2 Auto Scaling.

Para criar uma configuração de execução do Auto Scaling

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação à esquerda, escolha Auto Scaling Groups (Grupos do &AS;).

  3. Na página Welcome to Auto Scaling (Bem-vindo ao Auto Scaling), escolha Create Auto Scaling Group (Criar grupo do AS).

  4. Na página Create Auto Scaling Group (Criar grupo de Auto Scaling), escolha Create a new launch configuration (Criar uma nova configuração de execução).

  5. Na etapa Choose AMI (Escolher AMI) do assistente Create Auto Scaling Group (Criar grupo de Auto Scaling), escolha Community AMIs (AMIs da comunidade).

  6. Escolha a Amazon ECS-optimized Amazon Linux 2 AMI mais recente para seu grupo de Auto Scaling. Para obter informações sobre como recuperar a Amazon ECS-optimized Amazon Linux 2 AMI mais recente, consulte Recuperar oAmazon ECS-Optimized AMImetadados.

  7. NoEscolha o tipo de instânciaetapa doCriar grupo de Auto Scaling, escolha um tipo de instância para seu tipo de instância doAuto Scalinge escolhaPróximo: Configure details.

  8. Na etapa Configure details do assistente Create Auto Scaling Group, insira as seguintes informações. Os outros campos são opcionais. Para obter mais informações, consulte Criar configurações de execução no Guia do usuário do Amazon EC2 Auto Scaling.

    • Name (Nome): Insira um nome para sua configuração de ativação.

    • Função do IAM: Selecione oecsInstanceRolepara suas instâncias de contêiner. Se você não tiver essa função configurada, consulte Amazon ECSinstância de contêinerIAMfunção do.

    • Tipo de endereço IP: Selecione a opção de tipo de endereço IP para suas instâncias de contêiner. Para permitir que tráfego externo atinja seus contêineres, escolha Assign a public IP address to every instance (Atribuir um endereço IP público a cada instância).

  9. Expanda a seção Advanced Details (Detalhes avançados) para especificar dados do usuário para suas instâncias de contêiner do Amazon ECS. Para obter mais informações, consulte Amazon ECSConfiguração do agente de contê.

    Cole o script a seguir no campo User data (Dados do usuário). Consulte o nome do cluster com o qual você está trabalhando.

    #!/bin/bash echo ECS_CLUSTER=my-cluster >> /etc/ecs/ecs.config
  10. Selecione Next (Próximo): Add Storage.

  11. NoAdd Storageetapa doCriar grupo de Auto Scaling, faça todas as alterações de configuração de armazenamento necessárias para suas instâncias e escolhaPróximo: Configurar o grupo de segurança.

  12. Na etapa Configure Security Group (Configurar grupo de segurança) do assistente Create Auto Scaling Group (Criar grupo de Auto Scaling), selecione um grupo de segurança existente que atenda às necessidades de seus contêineres ou crie um novo grupo de segurança e escolha Review (Rever).

  13. Revise a configuração de execução e escolha Criar configuração de execução.

  14. Selecione uma chave privada a ser usada para conectar-se às suas instâncias com SSH e escolha Create launch configuration (Criar configuração de execução). Continue para criar um grupo do Auto Scaling com sua nova configuração de execução.

Etapa 3: Criar umAuto Scalinggrupo com políticas de escalabilidade em etapas

Depois que a configuração de execução for concluída, continue o procedimento a seguir para criar um grupo do Auto Scaling que use a configuração de execução.

Para criar um grupo do Auto Scaling com políticas de escalabilidade em etapas

  1. NoConfigurar detalhes do grupo de Auto Scalingetapa doCriar grupo de Auto Scaling, insira as seguintes informações e escolhaPróximo: Configurar políticas de escalabilidade:

    • Nome do grupo: Insira um nome para suaAuto Scalinggrupo.

    • Tamanho do grupo: Especifique o número de instâncias de contêiner com as quais seuAuto ScalingO grupo deverá iniciar.

    • Rede de: Selecione uma VPC na qual executar suas instâncias de contêiner.

    • Sub-rede: Selecione as sub-redes nas quais executar suas instâncias de contêiner. Para um cluster altamente disponível, recomendamos habilitar todas as sub-redes na região.

  2. Na etapa Configure scaling policies do assistente Create Auto Scaling Group, escolha Use scaling policies to adjust the capacity of this group.

  3. Insira os números mínimo e máximo de instâncias de contêiner para seu grupo do Auto Scaling.

  4. Escolha Scale the Auto Scaling group using step or simple scaling policies (Escalar o grupo de Auto Scaling usando políticas de escalabilidade simples ou em etapas).

  5. Na seção Increase Group Size (Aumentar tamanho do grupo), insira as informações a seguir:

    • Executar política quando: Selecione omemory-above-75-pct CloudWatchque você configurou anteriormente.

    • Execute a ação: Digite o número de unidades de capacidade (instâncias) a serem adicionadas ao cluster quando o alarme for disparado.

  6. Se você configurou um alarme para acionar a redução do tamanho de um grupo, defina o alarme na seção Reduzir tamanho do grupo e especifique quantas instâncias serão removidas se esse alarme for disparado. Caso contrário, recolha a seção Decrease Group Size (Reduzir tamanho do grupo) escolhendo o X no canto superior direito da seção.

    nota

    Se você configurar seu grupo do Auto Scaling para remover instâncias de contêiner, todas as tarefas em execução nas instâncias de contêiner removidas serão paradas. Se suas tarefas estiverem em execução como parte de um serviço, o Amazon ECS reiniciará essas tarefas em outra instância, se os recursos necessários estiverem disponíveis (CPU, memória, portas). No entanto, as tarefas que foram iniciadas manualmente não serão reiniciadas automaticamente.

  7. Escolha Review (Revisar), Create Auto Scaling Group (Criar grupo do &AS;).

Etapa 4: Verifique e teste suas receitasAuto Scalinggrupo do

Agora que você criou seuAuto Scaling, você deverá ver suas instâncias sendo iniciadas noAmazon EC2consoleInstâncias. Essas instâncias devem ser registradas no cluster do ECS e depois da ativação.

Verifique se as instâncias do EC2 estão registradas no cluster. No console do ECS, selecione o cluster no qual você registrou suas instâncias. Na página Cluster, escolha Instâncias do ECS. Verifique se o valor Agent Connected (Agente conectado) é True (Verdadeiro) para as instâncias exibidas.

Para testar se o grupo do Auto Scaling está configurado corretamente, crie algumas tarefas que consomem uma quantidade considerável de memória e comece a executá-las no cluster. Depois que o cluster exceder a reserva de 75% de memória do alarme do CloudWatch para o número de períodos especificado, você deverá ver a execução de uma nova instância no console do Amazon EC2.

Etapa 5: Limpar

Quando você não precisar mais de uma política de dimensionamento em etapas, poderá excluí-la. Também será necessário excluir os alarmes do CloudWatch. A exclusão de uma política de escalabilidade em etapas excluirá a ação de alarme subjacente, mas não excluirá o alarme do CloudWatch associado à política de escalabilidade, mesmo se ele não tiver mais uma ação associada.

Para excluir uma política de escalabilidade em etapas e seu alarme do CloudWatch associado

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em Auto Scaling, selecione Auto Scaling Groups (Grupos do &AS;).

  3. Selecione o grupo do Auto Scaling.

  4. Na guia Scaling Policies (Políticas de escalabilidade), escolha Actions (Ações), Delete (Excluir).

  5. Quando a confirmação for solicitada, escolha Yes, Delete (Sim, excluir).

  6. Faça o seguinte para excluir o alarme do CloudWatch associado à política.

    1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

    2. No painel de navegação, selecione Alarms (Alarmes).

    3. Selecione o alarme e escolha Action (Ação), Delete (Excluir).

    4. Quando a confirmação for solicitada, escolha Delete (Excluir).

Ao concluir este tutorial, você pode optar por manter o grupo do Auto Scaling e as instâncias do Amazon EC2 em serviço para o cluster. Porém, se não estiver usando ativamente esses recursos, você deverá levar em consideração a remoção deles de maneira que a conta não incorra em cobranças desnecessárias. Você pode excluir o grupo do Auto Scaling para encerrar as instâncias do Amazon EC2 dentro dele, mas sua configuração de execução permanecerá intacta. Você pode criar um novo grupo do Auto Scaling com a configuração de execução mais tarde, se desejar.

Para excluir o grupo do Auto Scaling

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação à esquerda, escolha Auto Scaling Groups (Grupos do &AS;).

  3. Escolha o grupo do Auto Scaling que criou anteriormente.

  4. Escolha Actions, Delete.

  5. Selecione Sim, excluir.