O blog da AWS

AWS Compute Optimizer: descomplicando a escolha certa da sua EC2

Por Matheus Arrais e Gabriel Costa

 

No ultimo AWS re:Invent 2019, foi lançado o AWS Compute Optimizer, que ajuda com recomendações de recursos computacionais ideais para as suas cargas de trabalho para reduzir custos e melhorar o desempenho usando machine learning para analisar métricas de utilização histórica. O provisionamento excessivo de recursos computacionais pode gerar custos desnecessários e, em contrapartida, o provisionamento insuficiente de recursos computacionais pode gerar um desempenho degradado das suas aplicações.

Além disso, o AWS Compute Optimizer fica disponível para você sem custos adicionais. Para começar a usar, você pode optar pelo serviço no Console do AWS Compute Optimizer.

Como funciona

O AWS Compute Optimizer pode ser integrado com o AWS Organizations, portanto primeiramente é necessário escolher qual modelo do serviço.

Vejamos os modelos abaixo:

1) Standalone AWS Account – uma conta AWS standalone é uma conta AWS que não pertence a nenhuma organização ativa do AWS Organizations. Se você optar pelo Compute Optimizer enquanto estiver conectado a uma conta standalone, o serviço analisará os recursos que estão na conta e irá criar recomendações de otimização para esses recursos.

2) Conta de membro de uma organização – uma conta AWS que é membro de uma organização no AWS Organizations. Se você optar pelo Compute Optimizer enquanto estiver conectado a uma conta membro de uma organização, o serviço analisará os recursos que estão nessa conta membro e criará recomendações de otimização para esses recursos.

3) Conta principal de uma organização – uma conta AWS que administra uma organização no AWS Organizations. Se você ativar o Compute Optimizer enquanto estiver conectado a uma conta principal de uma organização, o serviço oferecerá a opção de ativar apenas a conta principal ou todas as contas da sua organização. Se optarmos por utilizar esse modelo, é necessário que todas as features no AWS Organizations estejam ativadas.

Depois de optar por um desses modelos, o AWS Compute Optimizer começa a analisar as especificações (vCPUs, memória, armazenamento etc.) e as métricas de utilização de seus recursos em execução no período dos últimos 14 dias. Os recursos são analisados se estiverem em execução por pelo menos 30 horas. Em alguns casos, o AWS Compute Optimizer pode exigir a execução de certos recursos por até 60 horas para receber uma recomendação.

Após a conclusão da análise, que pode levar até 12 horas, o Compute Optimizer apresenta suas descobertas na página do painel. Para obter mais informações, consulte Exibindo o painel do AWS Compute Optimizer.

O AWS Compute Optimizer analisa as seguintes métricas do Amazon CloudWatch de suas instâncias EC2 por padrão:

Utilização da CPU – a porcentagem de unidades de computação EC2 alocadas que estão em uso na instância. Essa métrica identifica a capacidade de processamento necessária para executar um aplicativo em uma instância selecionada.

Utilização da memória – A quantidade de memória que foi usada de alguma forma durante o período de amostra. Essa métrica identifica a memória necessária para executar um aplicativo em uma instância selecionada. A utilização da memória é analisada apenas para recursos que possuem o agente do CloudWatch unificado instalado. Para obter mais informações, consulte Habilitando a utilização de memória com o CloudWatch Agent.

Entrada Rede – O número de bytes recebidos em todas as interfaces de rede pela instância. Essa métrica identifica o volume do tráfego de rede recebido em uma única instância.

Saída de rede – O número de bytes enviados em todas as interfaces de rede pela instância. Essa métrica identifica o volume do tráfego de rede de saída de uma única instância.

E/S de disco – O número de operações de entrada / saída para o disco local. Essa métrica identifica o desempenho do volume raiz de uma instância.

Com base nas métricas mencionadas acima, o AWS Compute Optimizer identifica a caracteristica do workload e então é gerado um profile com os dados obtidos. Esse profile é combinado com um dos milhares de modelo já treinados de machine learning e, através de um dashboard, recomendações são geradas para suas instâncias Amazon EC2 e/ou Amazon EC2 AutoScaling Groups.

 

Segue abaixo um passo a passo de como utilizar o AWS Compute Optimizer para receber recomendações dos seus recursos computacionais:

1) Navegue para AWS Management Console, selecione AWS Compute Optimizer e ative o serviço. Imediatamente, o serviço começa a analisar o utilização dos recursos dos últimos 14 dias (utilizando métricas de Amazon CloudWatch e entrega as primeiras recomendações em até 12 horas). Os recursos de EC2 e de Amazon EC2 AutoScaling Groups não recebem recomendações até que tenham se mantido ligados por pelo menos 30 horas.

Ao clicar em “Over-provisioned: 1 instance”, é possível verificar os detalhes das instâncias que estão com recursos computacionais acima do necessário para as aplicações instaladas na instância.

Ao clicar no link é possível verificar quais as descobertas do serviço sobre os dados da instância.

AWS Compute Optimizer oferece mais de uma opção de recomendação. Ao rolar a página para baixo é possível verificar o impacto previsto de uso da instância para cada opção de recomendação.

Também é possível acessar as recomendações através da AWS Command Line Interface (CLI).

O AWS Compute Optimizer usa métricas de Amazon CloudWatch como base de recomendação. Por padrão, as métricas de CloudWatch que podem ser analisadas são as métricas de hypervisor, como CPU utilization, disk IO, e network IO.

Se houver interesse para que o AWS Compute Optimizer considere para sua análise métricas de sistema operacional como uso de memória, é necessário instalar o agente de CloudWatch nas instâncias EC2. O AWS Compute Optimizer reconhece automaticamente essas métricas quando disponíveis e leva elas em conta para criar a recomendação, caso contrário é a mensagem “Data Unavailable” é apresentada na console.

Os clientes AWS expressaram que métricas de performance não são as únicas que são avaliadas para se escolher a instância correta para seus workloads, mas também a proporção preço vs performance. Por exemplo, pode fazer sentido usar uma nova família de instância, como m5 ao invés de uma família mais antiga (m3 ou m4), até mesmo quando a nova geração pode ser superestimada para o workload em questão. Isso porque, depois que o AWS Compute Optimizer identifica uma lista de recursos otimizados para seu workload, ele apresenta preço sob demanda, preço de instância reservada, utilização da reserva de instância, cobertura da reserva de instância, em conjunto com eficiência esperada do recurso para as suas recomendações.

Na tela de recomendações, é possível selecionar a configuração desejada de opção de compra (sob demanda, reserva de instância de 1 ano no-upfront e reserva de instância de 3 anos no-upfront).

A recomendação será atualizada com a visão de opção de compra selecionada e com as informações de preço de reserva de instância, diferenças de preço com relação ao preço sob demanda, percentuais de diferença, além de informações de cobertura e de utilização da reserva de instância considerada.

Importante: vale ressaltar que as recomendações fornecidas pelo AWS Compute Optimizer não levam em conta compras de reserva de instância que já tenham sido feitas para as instâncias, por isso é necessário fazer essa verificação em conjunto com as opções recomendadas antes de fazer uma alteração nas instâncias.

O serviço do AWS Compute Optimizer torna mais fácil uma prática necessária de right-sizing nos ambientes em nuvem. É importante contudo ter atenção com aplicações legadas que podem não executar corretamente em arquiteturas de hardware diferentes, devido a drivers diferentes ou apenas por não serem suportadas pelo fornecedor do software. Verifique antes de otimizar recursos de cloud para esses tipos de aplicações testando nas novas instâncias recomendadas antes de aplicar as mudanças em ambientes produtivos.

O AWS Compute Optimizer é gratuito para uso e está disponível nas regiões AWS de: US East (N. Virginia, Ohio), US West (Oregon, N. California), Europe (Ireland, Frankfurt, Londres, Paris, Estocolmo), Asia (Singapura, Toquio, Sydney, Seoul, Mumbai), Canada Central, South America (São Paulo).

Neste post, discutimos como utilizar o AWS Compute Optimizer para escolher o tamanho certo da sua EC2 com bases em métricas. Esse serviço recomenda recursos ideias para a sua carga de trabalho, fazendo com que você consiga reduzir custos e melhorar o desempenho.

Entre na AWS Management Console hoje e descubra quanto se pode economizar no seu ambiente escolhendo a o recurso correto para suas aplicações cloud.


Sobre os autores

 

Matheus Arrais é Arquiteto de Soluções para Parceiros. Seu foco é em ferramentas de governanças e estratégia de múltiplas contas. Trabalha junto com parceiros de todo o Brasil ajudando-os a trilharem uma jornada de sucesso dentro da parceria da AWS e a entregar a melhor solução para seus clientes.

Gabriel Costa é Arquiteto de Soluções para Parceiros. Entusiasta de tecnologia, música e convicto da capacidade de colaboração humana.
Trabalha em conjunto com parceiros integradores de sistemas na construção de ofertas que utilizam a Cloud para entregar soluções de alto valor para os clientes.