Benefícios do Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Benefícios do Amazon EC2 Auto Scaling

A adição do Amazon EC2 Auto Scaling à arquitetura da sua aplicação é uma maneira de maximizar os benefícios da Nuvem AWS. Quando o Amazon EC2 Auto Scaling é usado, suas aplicações obtêm os seguintes benefícios:

  • Melhor tolerância a falhas. O Amazon EC2 Auto Scaling pode detectar quando uma instância não está íntegra, terminá-la e iniciar uma instância para substituí-la. Você também pode configurar o Amazon EC2 Auto Scaling para usar várias zonas de disponibilidade. Se uma zona de disponibilidade se tornar indisponível, o Amazon EC2 Auto Scaling poderá iniciar instâncias em outra zona para compensar.

  • Melhor disponibilidade. O Amazon EC2 Auto Scaling ajuda a garantir que a aplicação sempre tenha a capacidade certa para lidar com a demanda de tráfego atual.

  • Melhor gerenciamento de custos. O Amazon EC2 Auto Scaling pode aumentar e reduzir dinamicamente a capacidade, conforme necessário. Como você paga pelas instâncias do EC2 que usa, você pode economizar ativando instâncias quando elas são realmente necessárias e encerrando-as quando não são necessárias.

Exemplo: atender a demanda variável

Para demonstrar alguns dos benefícios do Amazon EC2 Auto Scaling, considere uma aplicação Web básica em execução na AWS. Essa aplicação permite que os funcionários pesquisem salas de conferência que podem usar para reuniões. Durante o início e o fim da semana, o uso dessa aplicação é mínimo. Durante o meio da semana, mais funcionários agendam reuniões, de forma que a demanda sobre a aplicação aumenta significativamente.

O gráfico a seguir mostra quanto da capacidade da aplicação é usado durante o período de uma semana.


					Um exemplo da demanda da capacidade em uma aplicação.

Tradicionalmente, há duas maneiras de planejar essas alterações na capacidade. A primeira opção é adicionar servidores suficientes para que a aplicação sempre tenha capacidade suficiente para atender à demanda. A desvantagem dessa opção, no entanto, é que há dias em que a aplicação não precisa de toda essa capacidade. A capacidade extra permanece não utilizada e, em essência, aumenta o custo de manutenção da aplicação em execução.


					Um exemplo que mostra como a compra de mais capacidade que a necessária pode ser ineficiente de uma perspectiva de custo.

A segunda opção é ter capacidade suficiente para lidar com a demanda média na aplicação. Essa opção é mais barata, porque você não está comprando equipamento que usará apenas ocasionalmente. No entanto, você corre o risco de criar uma experiência do cliente insatisfatória quando a demanda na aplicação exceder sua capacidade.


					Um exemplo que mostra como a compra de menos capacidade do que a necessária pode provocar uma experiência inadequada para o cliente.

Ao adicionar o Amazon EC2 Auto Scaling a essa aplicação, você passa a ter uma terceira opção disponível. Você pode adicionar novas instâncias à aplicação somente quando necessário e encerrá-las quando não forem mais necessárias. Como o Amazon EC2 Auto Scaling usa instâncias do EC2, você só precisa pagar pelas instâncias que usa, quando as usa. Você agora tem uma arquitetura econômica que fornece a melhor experiência ao cliente e, ao mesmo tempo, minimiza os custos.


					Um exemplo que mostra como o Amazon EC2 Auto Scaling pode ajustar a capacidade conforme necessário.

Exemplo: arquitetura de aplicação Web

Em um cenário comum de aplicação Web, você pode executar várias cópias da sua aplicação simultaneamente para cobrir o volume de tráfego de clientes. Essas várias cópias da aplicação são hospedadas em instâncias do EC2 idênticas (servidores de nuvem), cada uma lidando com solicitações de clientes.


					Uma arquitetura básica de três camadas.

O Amazon EC2 Auto Scaling gerencia a ativação e o encerramento dessas instâncias do EC2 em seu nome. Você define um conjunto de critérios (como um alarme do Amazon CloudWatch) que determina quando o grupo do Auto Scaling inicia ou termina instâncias do EC2. A adição de grupos do Auto Scaling à sua arquitetura de rede ajuda a tornar a aplicação mais disponível e tolerante a falhas.


					Uma arquitetura básica de três camadas com um grupo do Auto Scaling.

Você pode criar tantos grupos do Auto Scaling quanto necessários. Por exemplo, você pode criar um grupo do Auto Scaling para cada camada.

Para distribuir o tráfego entre as instâncias em seus grupos do Auto Scaling, você pode inserir um balanceador de carga em sua arquitetura. Para mais informações, consulte Elastic Load Balancing.

Exemplo: distribuir instâncias entre zonas de disponibilidade

Os recursos da AWS, como instâncias do EC2, são hospedados em datacenters de alta disponibilidade. Para fornecer escalabilidade e confiabilidade adicionais, esses datacenters estão em diferentes locais físicos. As regiões são localizações geográficas grandes e amplamente dispersas. Cada região contém vários locais distintos conhecidos como zonas de disponibilidade, que são feitas para serem isoladas das falhas em outras zonas de disponibilidade. Elas fornecem conectividade de rede de baixa latência e custo reduzido para outras zonas de disponibilidade na mesma região da .

O Amazon EC2 Auto Scaling permite aproveitar a segurança e a confiabilidade da redundância geográfica distribuindo grupos do Auto Scaling entre várias zonas de disponibilidade dentro de uma região. Quando uma zona de disponibilidade se torna não íntegra ou indisponível, o Amazon EC2 Auto Scaling inicia novas instâncias em uma zona de disponibilidade não afetada. Quando a zona de disponibilidade não íntegra retornar para um estado saudável, o Amazon EC2 Auto Scaling redistribuirá automaticamente as instâncias da aplicação uniformemente entre todas as zonas de disponibilidade designadas.

Um grupo do Auto Scaling pode conter instâncias do EC2 em uma ou mais zonas de disponibilidade dentro da mesma região. No entanto, os grupos do Auto Scaling não podem abranger várias regiões.

Para grupos do Auto Scaling em uma VPC, as instâncias do EC2 são ativadas em sub-redes. Você seleciona as sub-redes para suas instâncias do EC2 quando cria ou atualiza o grupo do Auto Scaling. Você pode selecionar uma ou mais sub-redes por Zona de disponibilidade. Para obter mais informações, consulte VPCs e sub-redes no Manual do usuário da Amazon VPC.

Distribuição de instâncias

O Amazon EC2 Auto Scaling tenta distribuir as instâncias uniformemente entre as zonas de disponibilidade que estão habilitadas para seu grupo do Auto Scaling. O Amazon EC2 Auto Scaling faz isso tentando iniciar novas instâncias na zona de disponibilidade com o menor número de instâncias. No entanto, se a tentativa falhar, o Amazon EC2 Auto Scaling tentará iniciar as instâncias em outra zona de disponibilidade até obter êxito. Para grupos do Auto Scaling em uma VPC, se houver várias sub-redes em uma zona de disponibilidade, o Amazon EC2 Auto Scaling selecionará aleatoriamente uma sub-rede na zona de disponibilidade.


						Um grupo do Auto Scaling típico que abrange duas zonas de disponibilidade.

Atividades de rebalanceamento

As atividades de rebalanceamento dividem-se em duas categorias: rebalanceamento de zona de disponibilidade e rebalanceamento de capacidade.

Rebalanceamento de zona de disponibilidade

Após determinadas ações ocorrerem, seu grupo do Auto Scaling poderá se tornar desbalanceado entre as zonas de disponibilidade. O Amazon EC2 Auto Scaling compensará rebalanceando as zonas de disponibilidade. As ações a seguir podem levar a atividade de rebalanceamento:

  • Você pode alterar as Zonas de disponibilidade de seu grupo.

  • Você encerra ou desanexa instâncias explicitamente, e o grupo fica desbalanceado.

  • Uma zona de disponibilidade que tinha capacidade insuficiente se recupera e tem capacidade adicional disponível.

  • Uma zona de disponibilidade que tinha um preço spot acima do seu preço spot máximo agora tem um preço spot abaixo do seu preço máximo.

No rebalanceamento, o Amazon EC2 Auto Scaling ativa novas instâncias antes de terminar as antigas, para que o processo não comprometa a performance nem a disponibilidade da sua aplicação.

Como o Amazon EC2 Auto Scaling tenta ativar novas instâncias antes de terminar as antigas, estar na capacidade máxima especificada ou próximo a ela pode impedir ou parar completamente as atividades de rebalanceamento. Para evitar esse problema, o sistema pode exceder temporariamente a capacidade máxima especificada de um grupo em uma margem de 10% (ou em uma margem de 1 instância, a que for maior) durante uma atividade de rebalanceamento. A margem é estendida somente se o grupo estiver na capacidade máxima ou próximo a ela e precisar de rebalanceamento, seja devido ao rezoneamento solicitado pelo usuário ou para compensar os problemas de disponibilidade da zona. A extensão dura somente o tempo necessário para rebalancear o grupo (em geral, alguns minutos).

Rebalanceamento de capacidade

Você pode habilitar o rebalanceamento de capacidade em seus grupos do Auto Scaling ao usar instâncias spot. Quando você ativa o rebalanceamento de capacidade, o Amazon EC2 Auto Scaling tenta iniciar uma instância spot sempre que o Amazon EC2 notifica que uma instância spot está em um risco elevado de interrupção. Depois de iniciar uma nova instância, ele então termina uma instância antiga. Para mais informações, consulte Usar o rebalanceamento de capacidade para lidar com interrupções spot do Amazon EC2.