AWS Trusted Advisor vs. Azure Advisor vs. Google Cloud Recommender
Ferramentas nativas de recomendação para FinOps
No post anterior comentei sobre estratégias e guias de melhores práticas de arquitetura que são disponibilizados pelas principais clouds. Neste post, vamos apresentar as ferramentas nativas das grandes clouds para otimização de recursos, focando em redução de custos.
Todos os principais provedores de nuvem fornecem ferramentas próprias, a maioria delas gratuitamente, para suportar a otimização de recursos da nuvem. Vamos conhecer alguns detalhes das ferramentas de recomendação da AWS, Azure e GCP.
AWS Trusted Advisor
Ferramenta automatizada que fornece orientação sobre as melhores práticas para os serviços da AWS. O Trusted Advisor examina seu ambiente de arquitetura e oferece recomendações para otimização de custos, melhorar a disponibilidade e o desempenho do sistema ou eliminar vulnerabilidades de segurança.
Otimização de custos
O Trusted Advisor pode ajudá-lo a economizar custos com recomendações acionáveis, analisando o uso, a configuração e os gastos. Os exemplos incluem a identificação de instâncias de banco de dados RDS ociosas, volumes EBS subutilizados, endereços IP elásticos não associados e tempos limite excessivos em funções Lambda.
Desempenho
O Trusted Advisor pode ajudar a melhorar o desempenho de seus serviços com recomendações acionáveis, analisando o uso e a configuração. Os exemplos incluem análise de taxa de transferência e latência do EBS, uso de computação de instâncias do EC2 e configurações no CloudFront.
Segurança
O Trusted Advisor pode ajudar a melhorar a segurança do seu ambiente da AWS, sugerindo práticas recomendadas de segurança fundamentais com curadoria de especialistas em segurança. Os exemplos incluem a identificação do risco de acesso do grupo de segurança RDS, chaves de acesso expostas e permissões desnecessárias do S3 bucket.
Tolerância ao erro
O Trusted Advisor pode ajudar a melhorar a confiabilidade de seus serviços. Os exemplos incluem examinar grupos EC2 de dimensionamento automático, verificações de integridade excluídas no Route 53, zonas de disponibilidade desabilitadas e backups RDS desabilitados.
Cotas de serviço
As cotas de serviço são o número máximo de recursos que você pode criar em uma conta da AWS. A AWS implementa cotas para fornecer um serviço altamente disponível e confiável a todos os clientes e protege você contra gastos não intencionais. O Trusted Advisor notificará você assim que atingir mais de 80% de uma cota de serviço. Você pode seguir as recomendações para excluir recursos ou solicitar um aumento de cota.
Com o Trusted Advisor você pode criar automaticamente um plano de dimensionamento, identificar oportunidades de otimização e selecionar instâncias para realizar um redimensionamento eficaz. No entanto, ele não redimensiona instâncias automaticamente, ou seja, ainda requer trabalho manual do time. Outra funcionalidade interessante são as recomendações do Compute Optimizer para redimensionar os volumes de EBS super provisionados e Lambdas com memória super provisionada.
Azure Advisor
Faça mais com menos. Reduza os custos e aumente a eficiência de seus investimentos na nuvem. O Assistente do Azure oferece recomendações acionáveis para ajudar você a otimizar seus recursos do Azure quanto à confiabilidade, segurança, excelência operacional, desempenho e custo.
O Advisor verifica o uso e a configuração de recursos, além de fornecer mais de 100 recomendações personalizadas. Cada recomendação inclui ações para otimizar os recursos de nuvem de forma rápida e fácil.
Uma particularidade do Azure Advisor é que ele possui um grau de customização. Por exemplo, por padrão, um dos critérios para classificar uma VM como de baixa utilização é que ela tenha consumo de CPU menor que 5%. Entretanto, se quiser ser mais agressivo com suas recomendações, você pode trocar esse limiar para 10, 15, ou 20%.
Outra particularidade é a “soneca”. Se você possui uma recomendação que não pretende endereçar no curto prazo, você pode configurá-la para não aparecer por um determinado período de tempo.
Google Cloud Recommender
O Recommender é um serviço que fornece recomendações e insights para o uso de recursos no Google Cloud. Essas recomendações e insights são gerados por produto ou serviço e gerados com base em métodos heurísticos, aprendizado de máquina e uso atual de recursos.
Um exemplo de recomendação é aquele gerado pelo recomendador de redimensionamento de instância de VM. Neste caso, o recomendador apresenta sugestões com base nas métricas coletadas pelo Cloud Monitoring nos últimos oito dias. Se o recomendador detectar que uma instância de VM está sendo subutilizada, ele sugere alterar o tamanho da máquina para economizar.
No Google Cloud, o Recommender oferece sugestões de Custo, Segurança, Performance, Confiabilidade, Gerenciabilidade e Sustentabilidade.
Por exemplo, ele ajuda a identificar se há IPs não utilizados, VMs superdimensionadas — e sugere VMs personalizadas — e até avaliar se os workloads de BigQuery seriam mais econômicos utilizando Flat-Rate ao invés de On-demand. Nesta documentação do Google Cloud você pode conhecer os recomendadores para todos os pilares da imagem acima.
Além disso, fornece maneiras de atuar em alguns tipos de recomendação com o click de um botão ou executando um comando no gcloud. Também permite ignorar as recomendações que não se aplicam, para que elas não apareçam novamente. Vamos conhecer alguns detalhes.
Gerindo as recomendações e insights via console
O recomendador exibe essas recomendações e insights no Console do Google Cloud quando você visualiza e gerencia os recursos relacionados.
Todas as recomendações e insights fornecidos são armazenados pelo Recommender e aparecem no console quando você visualiza e gerencia os recursos relacionados. É possível aplicar ou dispensar as recomendações e se você optar por aplicar uma recomendação, realize a alteração recomendada e marque-a como concluída.
Gerenciando as recomendações e insights usando a API
Os comandos gcloud
e REST e RPC do Recommender permitem listar de maneira interativa ou programática, reivindicar e marcar recomendações como bem-sucedidas ou com falha. Você também pode listar ou marcar os insights como aceitos. Essas interfaces permitem visualizar e gerenciar recomendações e insights a partir de scripts ou outras automações.
Observação: para recomendações do Compute Engine, as alterações no estado de recomendação por meio da API não são refletidas no Console do Google Cloud e vice-versa.
Como aplicar recomendações
O Recomendador fornece informações sobre impactos diretos em áreas como custo, desempenho ou segurança. Os revisores de recomendações precisam ter um entendimento holístico da sua infraestrutura e processos para que outros impactos específicos de negócios sejam considerados.
Aviso: antes de aplicar recomendações no console do Google Cloud ou usar a API, verifique se os impactos foram avaliados por um revisor. O revisor precisa ter o conhecimento para avaliar os impactos identificados nas recomendações, bem como os impactos específicos da sua infraestrutura e dos seus negócios. Aplicar recomendações sem avaliação adequada pode resultar em mudanças inesperadas, como problemas com o desempenho do sistema, baixa confiabilidade ou perda das permissões necessárias. Se você quiser aplicar recomendações sem revisão humana, verifique se configurou um processo de reversão antes de fazer qualquer alteração.
Conclusão
É importante notar que, embora esses serviços possam ajudar bastante na
identificação de possíveis otimizações de custo, não devem ser aplicadas as
recomendações sem avaliação do time responsável pelos recursos.
É essencial também não se prender apenas às recomendações fornecidas por ferramentas nativas. Por exemplo, se trabalha com EC2, pode avaliar o processador AWS Graviton. Se você trabalha com BigQuery, pode se aproveitar da alteração do Storage Billing Model e da redução da janela de Time Travel.
Use e abuse das recomendações nativas, mas quando o foco é redução de custos, não se restrinja a elas.
Esse artigo foi escrito em conjunto com Rafael Teixeira e Tiago Andrade.
Quer publicar seu conteúdo no blog FinOps Brazil? Convidamos você para dividir sua experiência! Clique aqui e saiba como ajudar na missão de difundir a prática de FinOps. : )