Tecnologia

Como reduzir custos com a AWS

26/05/20 por Daniel H. Carmo

Veja como a nuvem pode deixar sua infraestrutura mais enxuta e fazer você economizar

Reduzir custo na infraestrutura de um sistema é essencial, sobretudo em um momento como este em que qualquer corte de gastos é muito bem-vindo. Neste cenário, a nuvem entra como uma forma de deixar a sua infraestrutura mais enxuta, desde mecanismos de monitoramento, passando pela possibilidade de desligar o equipamento em momentos ociosos, até reservar máquinas para conseguir descontos. 

A AWS, Amazon Web Services, oferece uma infraestrutura sob demanda, para  que você pague apenas pelo que consumir. Isso quer dizer que você tem uma redução de custos a longo prazo e economiza uma quantidade dinheiro que pode ser usado para investimento em inovação e novas oportunidades.

Pague apenas o que usar

A AWS oferece algumas modalidades de virtualização de máquina. Dentre essas modalidades existe on-demand  que, como o próprio nome já diz, é a modalidade sobre demanda. Isso significa que você vai pagar somente o que tiver utilizando efetivamente. 

Se a sua aplicação precisar de uma visita apenas durante os dias de semana, você pode deixar a sua máquina parada durante o final de semana. Considerando um mês de trinta dias e quatro finais de semana, teríamos oito dias com a máquina parada sem gerar custo. Isso equivaleria a uma economia de aproximadamente 25%. Agora, imagine se sua aplicação ficar online apenas em horário comercial, o desconto seria muito maior e poderia chegar a 70%.

Tabela de redução segundo a AWS. Fonte: aws.amazon.com/pt/economics

Calculadoras de custo total de propriedade da AWS

A calculadora de TCO, Custo Total de Propriedade, da AWS permite que você faça uma estimativa sobre a redução de custo ao usar a plataforma. A AWS oferece relatórios detalhados inclusive para apresentações executivas. A calculadora permite modificações e suposições de acordo com suas necessidades da sua empresa. Neste ambiente você pode comparar o custo da execução das aplicações ou de hospedagem tradicional com o custo da execução na AWS. 

Processo automatizado 

É possível realizar o agendamento de parada e inicialização de recursos automaticamente, sem a necessidade de intervenção manual para realizar o procedimento todos os dias, evitando mão de obra e dando garantias de sempre acontecer, removendo os riscos de possíveis esquecimentos humanos. 

Uma das possibilidades é utilizar o CloudWatch como gatilho, criando uma regra em determinado horário para uma função lambda. Essa função lambda, por sua vez, consome SDK da AWS e oferece todos os comandos para você desligar o EC2 ou RDS. É uma solução bem utilizada e fácil de implementar.

Outra forma, ainda mais fácil, é utilizar uma solução já existente: o AWS Instance Scheduler. Ela facilita as paradas tanto das máquinas EC2 quanto RDS. Internamente o uso não é diferente da função anterior, ele usa o CloudWatch e a lambda, além disso, para armazenar alguns valores ele utiliza o DynamoDB. É uma boa solução caso você não queira fazer sua própria função lambda. Porém, vale ressaltar que você é responsável pelo pagamento de cada serviço utilizado na solução, então haverá aumento de consumo nos serviços mencionados acima.

Uma terceira possibilidade é configurar a instância na hora de criar a máquina dentro de um auto scaling group. Isso dará a possibilidade de configurar a quantidade de instância desejável em um determinado horário. Na hora de configurar você pode usar uma fórmula de cronograma como os usados no gatilho do CloudWatch e determinar dia e horário.

Cuidado para não perder seus dados! 

Alguns cuidados precisam ser tomados ao utilizar um processo automático de desligamento de máquinas EC2. Podem surgir problemas quando aplicações críticas estão rodando algum processo long-running em background e são paradas abruptamente. Se a sua aplicação mantém algum tipo de estado não persistido (deixado em memória, por exemplo), você fatalmente perderá essas informações. Se a sua aplicação não estiver tratando operações como atômicas, ou seja, transacionando no banco de dados, pode acabar gerando inconsistência na base.

Se a sua aplicação usa algum meio de persistência local como o próprio EBS, é importante que você apenas pare a aplicação e não a finalize. Quando você finaliza, acaba perdendo todas as informações do disco local. 

◼️ Leia também: O manual da segurança de dados na AWS e as responsabilidades compartilhadas

Atenção ao limite de dias para parar sua instância RDS

Atualmente existe um limite máximo de sete dias que você pode manter seu banco de dados parado, depois disso ele automaticamente irá iniciar novamente. Como já falamos, quando ele está parado não há cobrança, mas há limitações: no banco de dados postgres, ao usar um banco read replica não é possível parar o banco primário até que seja excluído o banco de réplica. Isso significa um aumento expressivo no tempo de inicialização nestes casos.

Apesar do tempo de inicialização ser maior, financeiramente pode valer a pena. O tempo de inicialização irá aumentar porque será preciso recriar o banco sempre que iniciá-lo novamente. Pode levar dez, vinte minutos, mas caso seu banco fique ocioso durante um longo período, financeiramente pode ser muito vantajoso

Outras formas de reduzir custos com a AWS também são possíveis. Vamos considerar um serviço que roda em background e que a cada 5 horas realização uma operação no banco de dados. Isso significa que ele ficará ocioso por 5 horas, depois irá trabalhar durante alguns segundos, para ficar ocioso novamente durante outras 5 horas.

Considerando a atividade descrita acima, é válida a criação de uma AWS lambda, onde você será cobrado apenas pelo tempo que executar o processamento da rotina.Uma solução bem interessante quando se tem vários serviços que rodam de tempos em tempos.

Presença global por um preço acessível ao bolso

A AWS tem uma presença global que permite repassar a economia para quem compra esse serviço de maneira contínua. São diversas opções de pacotes e serviços que podem oferecer economia de 75% a 90% das taxas sob demanda se for escolhida a capacidade pré-adquirida ou capacidade reserva.

Como já falamos anteriormente, na AWS não é preciso fazer compromissos com gastos mínimos ou contratos de longa duração. Você pode substituir as despesas iniciais por pagamentos que se aplicam apenas àquilo que você necessita. Nada de contratos ou modelos complexos que dificultam seu dia a dia. 

Ficou interessado? A Viceri tem uma equipe pronta para fazer a migração do seu banco e colaborar em tudo que você precisar durante o processo. Fale com a gente!

Tags: economia, aws, reduzir custos