fbpx

Escala automática (Auto Scaling)

Auto Scaling
Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp

Uma vantagem distinta da implantação de aplicativos na nuvem é a capacidade de iniciar e liberar servidores em resposta a cargas de trabalho variáveis.

Provisionar servidores sob demanda e liberá-los quando não forem mais necessários pode proporcionar uma economia significativa de custos para cargas de trabalho que não são estáveis.

Os exemplos incluem um site para um evento esportivo específico, um sistema de entrada de dados no final do mês, um site de compras de varejo com suporte a vendas instantâneas, um site de artistas da música durante o lançamento de novas músicas, um site da empresa que anuncia ganhos bem-sucedidos ou um evento noturno, ou processamento executado para calcular a atividade diária.

O Auto Scaling é um serviço que permite dimensionar sua capacidade do Amazon EC2 automaticamente, dimensionando e dimensionando de acordo com os critérios definidos por você.

Com o Auto Scaling, você pode garantir que o número de instâncias do Amazon EC2 em execução aumente durante picos de demanda ou períodos de pico de demanda para manter o desempenho do aplicativo e diminua automaticamente durante períodos de pausa ou calha para minimizar os custos.

 

Sem Medo de Picos

Muitos aplicativos da Web têm aumentos de carga não planejados com base em eventos fora do seu controle.

Por exemplo, sua empresa pode ser mencionada em um blog ou programa de televisão popular, levando muito mais pessoas a visitar seu site do que o esperado.

Configurando Auto Scaling com antecedência permitirá que você adote e sobreviva a esse tipo de aumento rápido no número de solicitações. O Auto Scaling aumentará o tamanho do seu site para atender à crescente demanda e, em seguida, reduza a escala quando o evento desaparecer.

 

Planos de Dimensionamento Automático

O Auto Scaling possui vários esquemas ou planos que você pode usar para controlar como deseja que o Auto Scaling execute.

 

Manter os níveis da instância atual

Você pode configurar seu grupo de Auto Scaling para manter um número mínimo ou especificado de instâncias em execução o tempo todo.

Para manter os níveis de instância atuais, o Auto Scaling executa uma verificação periódica da integridade das instâncias em execução em um grupo de Auto Scaling. Quando o Auto Scaling encontra uma instância não íntegra, ele termina essa instância e inicia uma nova.

As cargas de trabalho em estado estacionário que precisam sempre de um número consistente de instâncias do Amazon EC2 podem usar o Auto Scaling para monitorar e manter esse número específico de instâncias do Amazon EC2 em execução.

 

Escala manual

A escala manual é a maneira mais básica de dimensionar seus recursos. Você só precisa especificar a alteração na capacidade máxima, mínima ou desejada do seu grupo de Auto Scaling.

O Auto Scaling gerencia o processo de criação ou encerramento de instâncias para manter a capacidade atualizada.

A expansão manual pode ser muito útil para aumentar os recursos de um evento pouco frequente, como o lançamento de uma nova versão do jogo que estará disponível para download e requer um registro do usuário. Para eventos de escala extremamente grande, mesmo os balanceadores de carga do Elastic Load Balancing podem ser pré-aquecidos trabalhando com suas soluções locais ou suporte da AWS.

 

Escalonamento Agendado

Às vezes, você sabe exatamente quando precisará aumentar ou diminuir o número de instâncias no seu grupo, simplesmente porque essa necessidade surge em um cronograma previsível.

Os exemplos incluem eventos periódicos, como processamento de final de mês, final de trimestre ou final de ano, e outros eventos recorrentes previsíveis. Escalonamento agendado significa que as ações de escalonamento são executadas automaticamente em função da hora e da data.

Eventos recorrentes, como processamento de final de mês, trimestre ou ano, ou testes automáticos agendados e recorrentes de desempenho e carga, podem ser antecipados e o Auto Scaling pode ser aumentado adequadamente no momento do evento agendado.

 

Escala Dinâmica

O dimensionamento dinâmico permite definir parâmetros que controlam o processo de dimensionamento automático em uma política de dimensionamento.

Por exemplo, você pode criar uma política que adicione mais instâncias do Amazon EC2 à camada da Web quando a largura de banda da rede, medida pelo Amazon CloudWatch, atingir um determinado limite.

 

Componentes de Dimensionamento Automático

O Auto Scaling possui vários componentes que precisam ser configurados para funcionar corretamente: uma configuração de inicialização, um grupo de Auto Scaling e uma política de dimensionamento opcional.

 

Configuração de Inicialização

Uma configuração de inicialização é o modelo usado pelo Auto Scaling para criar novas instâncias e é composto pelo nome da configuração, AMI (Amazon Machine Image), tipo de instância do Amazon EC2, grupo de segurança e par de chaves da instância. Cada grupo do Auto Scaling pode ter apenas uma configuração de inicialização por vez.

Grupos de segurança para instâncias iniciadas no EC2-Classic podem ser referenciados pelo nome do grupo de segurança, como “SSH” ou “Web”, se é assim que eles são nomeados, ou você pode fazer referência aos IDs do grupo de segurança, como sg-f57cde9d.

Se você iniciou as instâncias no Amazon VPC, recomendado, você deve usar os IDs do grupo de segurança para fazer referência aos grupos de segurança que deseja associar às instâncias em uma configuração de inicialização do Auto Scaling.

O limite padrão para configurações de inicialização é de 100 por região. Se você exceder esse limite, a chamada para create-launch-configuration falhará. Você pode visualizar e atualizar esse limite executando a descrição-conta-limites na linha de comando, conforme mostrado aqui.

 

> aws autoscaling describe-account-limits

 

O Auto Scaling pode fazer com que você alcance limites de outros serviços, como o número padrão de instâncias do Amazon EC2 que você pode iniciar atualmente em uma região, que é 20. Ao criar arquiteturas mais complexas com a AWS, é importante ter em mente os limites de serviço para todos os serviços da AWS Cloud que você está usando.

Quando você executa um comando usando a CLI e ele falha, verifique sua sintaxe primeiro. Se isso ocorrer, verifique os limites do comando que você está tentando e verifique se você não excedeu um limite.

Alguns limites podem ser aumentados e geralmente têm um valor razoável para limitar uma condição de corrida, um script incorreto em execução em um loop ou outra automação semelhante que pode causar alto uso não intencional e cobrança dos recursos da AWS.

Os limites de serviço da AWS podem ser visualizados no Guia de referência geral da AWS, em Limites de serviço da AWS.

 

Grupo de Dimensionamento Automático

Um grupo de Auto Scaling é uma coleção de instâncias do Amazon EC2 gerenciadas pelo serviço Auto Scaling. Cada grupo do Auto Scaling contém opções de configuração que controlam quando o Auto Scaling deve iniciar novas instâncias e encerrar instâncias existentes.

Um grupo de dimensionamento automático deve conter um nome e um número mínimo e máximo de instâncias que possam estar no grupo. Opcionalmente, você pode especificar a capacidade desejada, que é o número de instâncias que o grupo deve ter o tempo todo.

Se você não especificar uma capacidade desejada, a capacidade desejada padrão será o número mínimo de instâncias que você especificar.

Um grupo de Auto Scaling pode usar Instâncias sob demanda ou Spot como as instâncias do Amazon EC2 que gerencia.

On-Demand é o padrão, mas as Instâncias Spot podem ser usadas referenciando um preço máximo de oferta na configuração de inicialização (—spot-price “0,15”) associada ao grupo Auto Scaling.

Você pode alterar o preço da oferta criando uma nova configuração de lançamento com o novo preço da oferta e associando-a ao seu grupo de Auto Scaling.

Se houver instâncias disponíveis no preço do lance ou abaixo dele, elas serão lançadas no seu grupo Auto Scaling.

As Instâncias Spot em um grupo de Auto Scaling seguem as mesmas diretrizes das Instâncias Spot fora de um grupo de Auto Scaling e exigem aplicativos flexíveis e que possam tolerar instâncias do Amazon EC2 encerradas com aviso prévio, por exemplo, quando o preço Spot subir acima do preço da oferta você define na configuração de inicialização.

 

Uma configuração de ativação pode fazer referência a Instâncias On Demand ou Instâncias Spot, mas não as duas.

 

Vamos de Spot

O Auto Scaling suporta o uso de instâncias spot. Isso pode ser muito útil quando você está hospedando sites nos quais deseja fornecer capacidade de computação adicional, mas com restrições de preço.

Um exemplo é um modelo de site “freemium”, no qual você pode oferecer algumas funcionalidade básica aos usuários gratuitamente e funcionalidade adicional para usuários premium que pagam pelo uso. Instâncias spot podem ser usadas para fornecer a funcionalidade básica quando disponível referenciando um preço máximo de oferta na configuração de lançamento (“preço do ponto” 0,15 “) associado ao grupo Auto Scaling.

 

Política de Dimensionamento

Você pode associar alarmes e políticas de dimensionamento do Amazon CloudWatch a um grupo de dimensionamento automático para ajustar dinamicamente o dimensionamento automático.

Quando um limite é ultrapassado, o Amazon CloudWatch envia alarmes para acionar alterações (aumento ou redução da escala) no número de instâncias do Amazon EC2 atualmente recebendo tráfego atrás de um balanceador de carga.

Depois que o alarme do Amazon CloudWatch envia uma mensagem ao grupo Auto Scaling, o Auto Scaling executa a política associada para dimensionar seu grupo. A política é um conjunto de instruções que informam ao Auto Scaling se deve ser expandido, iniciando novas instâncias do Amazon EC2 referenciadas na configuração de inicialização associada ou se é dimensionado e finalizado.

Existem várias maneiras de configurar uma política de dimensionamento: Você pode aumentar ou diminuir em um número específico de instâncias, como adicionar duas instâncias; você pode segmentar um número específico de instâncias, como no máximo cinco instâncias totais do Amazon EC2, ou você pode ajustar com base em uma porcentagem.

Você também pode escalar por etapas e aumentar ou diminuir a capacidade atual do grupo com base em um conjunto de ajustes de escala que variam com base no tamanho do acionador do limite de alarme.

Você pode associar mais de uma política de dimensionamento a um grupo de dimensionamento automático. Por exemplo, você pode criar uma política usando o gatilho para utilização da CPU, chamado CPULoad, e a métrica CloudWatch CPUUtilization para especificar a expansão se a utilização da CPU for maior que 75% para dois minutos.

Você pode anexar outra política ao mesmo grupo de Auto Scaling para escalar se a utilização da CPU for inferior a 40% por 20 minutos.

Uma prática recomendada é escalar rapidamente e escalar lentamente para que você possa responder a picos ou explosões, mas evite encerrar inadvertidamente instâncias do Amazon EC2 com muita rapidez, apenas tendo que iniciar mais instâncias do Amazon EC2 se a explosão for sustentada.

O Auto Scaling também suporta um período de espera, que é uma configuração configurável que determina quando suspender as atividades de dimensionamento por um curto período de tempo para um grupo de Auto Scaling.

Se você iniciar uma instância do Amazon EC2, será cobrado por uma hora inteira de tempo de execução. As horas parciais da instância consumidas são cobradas como horas completas.

Isso significa que, se você tiver uma política de dimensionamento permissiva que inicie, encerre e reinicie várias instâncias por hora, estará cobrando uma hora inteira para cada instância iniciada, mesmo que encerre algumas dessas instâncias em menos de uma hora.

Uma prática recomendada para rentabilidade é aumentar rapidamente quando necessário, mas diminuir mais lentamente para evitar a necessidade de reiniciar novas e separadas instâncias do Amazon EC2 para um aumento na demanda de carga de trabalho que flutua para cima e para baixo em minutos, mas geralmente continua a precisar de mais recursos dentro de uma hora.

É importante considerar a inicialização de instâncias do Amazon EC2 iniciadas usando o Auto Scaling. Leva tempo para configurar cada instância recém-lançada do Amazon EC2 antes que a instância esteja íntegra e capaz de aceitar tráfego.

Instâncias iniciadas e disponíveis para carregamento mais rápido podem ingressar no pool de capacidade mais rapidamente.

 

Comentários do Facebook

Conteúdos relacionados