Executando verificação de segurança...
9

Vamos reduzir o custo da sua Cloud!

Custos de Cloud são sempre um calo na vida das empresas. Eu comento, a seguir, algumas ações da qual participei que surtiram efeito na redução deste custo.

Excluir recursos não utilizados

Parece óbvio, mas muitas empresas que cresceram sua Cloud desordenadamente devem possuir recursos que ficaram no limbo e não existe histórico se ainda estão em uso ou não.

Procure por alguma documentação com alguma referência ao recurso. Baseada na documentação procure por pessoas na empresa que possam ter trabalhado no sistema e avalie o desligamento. Em caso de não existir documentação:

  • Verifique nos logs dos recursos por algum registro de atualização por exemplo: número de requests, volume de dados trafegados…

  • Se o recurso parece estar no limbo, desabilite acesso ao recurso na Cloud. Se alguém reclamar que algum serviço parou, reative e faça o levantamento e documente.

  • Caso contrário espere uns 2 meses até excluir o recurso por completo.

Por que dois meses? Pois acho um tempo mínimo para avaliar se esse recurso é usado esporadicamente. Excluir de forma imediata você poderá estar excluindo um recuso que é usado por algum processamento quinzenal… mensal…

Desligar máquinas virtuais (VMs) em momentos noturnos

Já passei por casos onde tínhamos algumas VMs de desenvolvimento que só eram usadas durante horário comercial. Agendamos jobs que usavam a API da Cloud para desligar as VMs em horários não comercias, por exemplo: 20h. E eram religadas as 8h da manhã. A conta aqui é simples se um VMs custa 1 real por hora, ao desligá-las por 12h reduzimos seu custo quase pela metade, 12 reais ao invés de 24.

Número de réplicas mínimas no Kubernetes (k8s)

Já passei por casos onde algumas aplicações estavam super dimensionadas no cluster k8s com o mínimo de réplicas muito alto. Reduzimos o mínimo de réplicas para um valor mais condizente e assim liberamos mais recursos no cluster inclusive diminuindo o número de VMs do cluster que acarretou na diminuição do custo.

Uma dica, se sua empresa não quiser lidar com o gerenciamento de um Kubernetes, eu sugiro usar algum serviço auto gerenciado. Na Azure existe o “Azure Container Instance” que pode ajudar a reduzir os custos de forma significativa, pois esses recursos são cobrados baseado no tempo de uso. Sendo possível configurar um número de replicas mínimas igual a ZERO. E ele faz o autoscale quando necessário. Você também consegue fazer isso no k8s, porém precisa de mais conhecimento…

Tome cuidado o número máximo de réplicas indefinido, sua APP poderá estar sofrendo algum ataque e seu k8s irá escalar até o limite do cluster afetando a performance global. E em casos de cluster auto gerenciados isso poderá afetar o custo do serviço!

Replicação local, regional, global

A replicação permite uma cópia idêntica dos dados e aplicações em outro servidor, garantindo a disponibilidade dos sistemas em caso de falhas. Esse recurso é muito importante quando desejamos garantir uma aplicação com alta disponibilidade, porém o custo aumenta de acordo com tipo de replicação escolhida. A replicação Global é mais cara que Regional que é mais cara que a Local.

Avalie se seu sistema precisa mesmo de uma replicação global. Seu custo pode cair até 30% indo para um replicação local!

Deixo um material da Azure (https://learn.microsoft.com/pt-br/azure/reliability/cross-region-replication-azure) que explica bem a questão de confiabilidade (replicação).

Na Azure meu recurso estava com replicação global e era impossível colocar em replicação local por que a API não permitia esta ação. Só foi possível abrindo chamado no suporte da Azure!

Custos exclusivos para ambientes DEV

Algumas Clouds possuem custos reduzidos para ambientes de desenvolvimento. Por exemplo a Azure oferece custo reduzido para uma subscription 100% de desenvolvimento https://azure.microsoft.com/en-us/pricing/offers/dev-test.

Reservations & Savings Plans

Algumas Clouds oferecem serviços de reserva de recursos que podem dar descontos de até 70%. As reservations permitem que você economize dinheiro ao se comprometer com o uso de recursos por um período de tempo específico.

Você pode comprar Reservations para produtos como máquinas virtuais, bases de dados SQL, Azure Cosmos DB e outros recursos.

Savings plans são planos onde é possível conseguir descontos no uso de computação.

É difícil manter uma nomenclatura pois os nomes dos serviços de desconto podem variar entre as Clouds. O objetivo é dar visibilidade que existem serviços nativos na cloud de desconto.

Crie policies para alguns recursos

É possível gerenciar sua Cloud criando policies que impedem criação de determinados recursos. No meu caso tínhamos um time de cientistas de dados que ficava criando nós no Databricks com GPU e o custo disso era enorme. Resolvemos casos assim com a criação de policies que bloqueavam a criação desgovernada e evoluímos para um processo de aprovação prévia (mais burocrático).

Utilize IAC o máximo que puder

Restrinja acesso “contributor” aos colaboradores pois isso evitará a criação de recursos desgovernada que podem impactar o custo geral do seu ambiente. Garanta que seu ambiente Cloud seja criado por um time especializado em Cloud que irá criar recursos com as melhoras práticas e sempre usando Infrastructure As Code (IAC). O IAC permitirá que você escale rápido além de deixar sua empresa preparada pra uma recuperação em caso de algum desastre.


Essa foi minha experiência quando precisei reduzir custos da Cloud. E você possui outros casos? Comenta ai!

Carregando publicação patrocinada...