Este documento no Framework da arquitetura do Google Cloud fornece recomendações para ajudar você a otimizar o custo de seus bancos de dados e cargas de trabalho de análise no Google Cloud.
As orientações nesta seção são destinadas a arquitetos, desenvolvedores e administradores responsáveis por provisionar e gerenciar bancos de dados e cargas de trabalho de análise na nuvem.
Esta seção inclui recomendações de otimização de custos para os seguintes produtos:
Cloud SQL
O Cloud SQL é um banco de dados relacional totalmente gerenciado para MySQL, PostgreSQL e SQL Server.
Monitorar o uso
Revise as métricas no painel de monitoramento e valide se a implantação atende aos requisitos da carga de trabalho.
Otimizar recursos
Veja a seguir recomendações para otimizar seus recursos do Cloud SQL:
- Crie uma estratégia de alta disponibilidade e recuperação de desastres que se alinhe com o objetivo de tempo de recuperação (RTO, na sigla em inglês) e o objetivo de ponto de recuperação (RPO, na sigla em inglês).
Dependendo da sua carga de trabalho, recomendamos o seguinte:
- Para cargas de trabalho que precisam de um RTO e RPO curtos, use a configuração de alta disponibilidade e as réplicas para failover regional.
- Para cargas de trabalho que resistam a um RTO e RPO mais longos, use backups automatizados e sob demanda, que podem demorar um pouco mais para serem restaurados após uma falha.
- Provisione o banco de dados com a capacidade mínima de armazenamento necessária.
- Para escalonar automaticamente a capacidade de armazenamento conforme seus dados aumentam, ative o recurso de aumento de armazenamento automático.
- Escolha um tipo de armazenamento, unidades de estado sólido (SSD, na sigla em inglês) ou unidades de disco rígido (HDD, na sigla em inglês), adequado para seu caso de uso. O SSD é a escolha mais eficiente e econômica para a maioria dos casos de uso. O HDD é apropriado para grandes conjuntos de dados (> 10 TB) que não são sensíveis à latência ou são acessados com pouca frequência.
Otimizar taxas
Considere comprar descontos por uso contínuo para cargas de trabalho com necessidades previsíveis de recursos. Você pode economizar 25% dos preços sob demanda para um compromisso de um ano e 52% para um de três anos.
Spanner
O Spanner é um banco de dados nativo da nuvem, em escala ilimitada e com consistência forte, que oferece até 99,999% de disponibilidade.
Monitorar o uso
Veja a seguir recomendações para ajudar a rastrear o uso dos recursos do Spanner:
- Monitore a implantação e configure a contagem de nós com base nas recomendações da CPU.
- Defina alertas nas suas implantações para otimizar os recursos de armazenamento. Para determinar a configuração apropriada, consulte os limites por nó recomendados.
Otimizar recursos
Veja a seguir recomendações para otimizar seus recursos do Spanner:
- Execute cargas de trabalho menores no Spanner a um custo muito menor ao provisionar recursos com unidades de processamento (PUs,na sigla em inglês) em comparação com nós. um nó do Spanner é igual a 1.000 PUs.
- Melhore o desempenho da execução de consultas usando o otimizador de consultas (em inglês).
- Crie instruções SQL usando práticas recomendadas para criar planos de execução eficientes.
- Gerencie o uso e o desempenho das implantações do Spanner usando a ferramenta escalonador automático. A ferramenta monitora instâncias, adiciona ou remove nós automaticamente e ajuda a garantir que as instâncias permaneçam dentro dos limites recomendados de CPU e armazenamento.
- Proteger contra exclusão acidental ou gravações usando a recuperação pontual (PITR, na sigla em inglês) Bancos de dados com períodos de armazenamento de versão mais longos, especialmente aqueles que substituem os dados com frequência, usam mais recursos do sistema e precisam de mais nós.
- Analise sua estratégia de backup e escolha uma das seguintes opções:
- Backup e restauração
- Exportar e importar
Otimizar taxas
Ao decidir o local dos nós do Spanner, considere as diferenças de custo entre as regiões do Google Cloud. Por exemplo, um nó
implantado na região us-central1
custa consideravelmente menos por hora do que um
nó na região southamerica-east1
.
Bigtable
O Bigtable é um armazenamento NoSQL de colunas largas e nativo da nuvem para cargas de trabalho em grande escala e de baixa latência.
Monitorar o uso
Veja a seguir recomendações para ajudar a rastrear o uso dos recursos do Bigtable:
- Analise as métricas de uso para identificar oportunidades de otimização de recursos.
- Identifique os pontos de acesso e as teclas de atalho no cluster do Bigtable com a ferramenta de diagnóstico Key Visualizer.
Otimizar recursos
Veja a seguir recomendações para otimizar seus recursos do Bigtable:
- Para ajudar a garantir o uso da CPU e do disco que ofereça um equilíbrio entre latência e capacidade de armazenamento, avalie e ajuste a contagem de nós e o tamanho do cluster do Bigtable.
- Para manter o desempenho com o menor custo possível, escalone programaticamente o cluster do Bigtable para ajustar automaticamente a contagem de nós.
Avalie o tipo de armazenamento (HDD ou SSD) mais econômico para seu caso de uso, com base nas seguintes considerações:
- O armazenamento HDD custa menos que o SSD, mas apresenta desempenho inferior.
- O armazenamento SSD custa mais do que o HDD, mas oferece desempenho mais rápido e previsível.
As economias de custo com HDD são mínimas em relação ao custo dos nós no cluster do Bigtable, a menos que você armazene grandes quantidades de dados. Às vezes, o armazenamento HDD é apropriado para conjuntos de dados grandes (mais de 10 TB) não sensíveis à latência ou pouco acessados.
Remover dados expirados e obsoletos usando a coleta de lixo.
Para evitar pontos de acesso, aplique as práticas recomendadas para o design da chave de linha.
Crie um plano de backup econômico que se alinhe ao seu RPO.
Para diminuir o uso do cluster e reduzir a contagem de nós, adicione um cache de capacidade para consultas armazenáveis em cache usando o Memorystore.
Mais informações
- Blog: Uma introdução à otimização de custos do Bigtable.
- Blog: Práticas recomendadas para desempenho do Bigtable e otimização de custos
BigQuery
O BigQuery é um data warehouse em várias nuvens sem servidor, altamente escalonável e econômico projetado para a agilidade dos negócios
Monitorar o uso
Veja a seguir recomendações para ajudar a rastrear o uso dos recursos do BigQuery:
- Visualize os custos do BigQuery segmentados por projetos e usuários. Identifique as consultas mais caras e otimize-as.
- Analise a utilização de slots em projetos, jobs e reservas usando tabelas de metadados
INFORMATION_SCHEMA
.
Otimizar recursos
Veja a seguir recomendações para otimizar seus recursos do BigQuery:
- Defina expirações de dados no nível do conjunto de dados, da tabela ou da partição com base na sua estratégia de conformidade.
- Limite os custos de consulta restringindo o número de bytes faturados por consulta. Para evitar erros humanos acidentais, ative o controle de custo no nível do usuário e do projeto.
- Consulte apenas os dados necessários. Evite verificações de consulta completas. Para explorar e entender a semântica de dados, use as opções gratuitas de visualização de dados.
- Para reduzir o custo de processamento e melhorar o desempenho, particione e faça cluster de suas tabelas quando possível.
- Filtre sua consulta o quanto antes.
- Ao processar dados de várias fontes (como Bigtable, Cloud Storage, Google Drive e Cloud SQL), evite duplicar dados usando um modelo de dados de acesso federado e consulta de dados diretamente das origens.
- Aproveite o backup do BigQuery emvez de duplicar os dados. Consulte Cenários de recuperação de desastres para dados.
Otimizar taxas
Veja a seguir recomendações para ajudar a reduzir as taxas de faturamento dos recursos do BigQuery:
- Avalie como você edita os dados e aproveite os preços de armazenamento de longo prazo mais baixos.
- Analise as diferenças entre os preços de taxa fixa e sob demanda, e escolha uma opção que seja adequada aos seus requisitos.
- Avalie se é possível usar o carregamento em lote em vez de inserções de streaming para fluxos de trabalho de dados. Use inserções de streaming se os dados carregados no BigQuery são consumidos imediatamente.
- Para aumentar o desempenho e reduzir o custo da recuperação de dados, use os resultados da consulta em cache.
Mais informações
- Como controlar custos do BigQuery
- Práticas recomendadas de otimização de custos para o BigQuery.
- Noções básicas sobre os princípios de otimização de custos (PDF)
Dataflow
O Dataflow é um serviço rápido e econômico sem servidor para processamento unificado de dados de stream e lote.
Monitorar o uso
Veja a seguir recomendações para ajudar a rastrear o uso dos recursos do Dataflow:
- Preveja o custo dos jobs do Dataflow ao executar pequenos experimentos de carga, identificar o desempenho ideal do seu job e extrapolar o fator de capacidade.
- Aumente a visibilidade da capacidade e do uso da CPU usando painéis de observabilidade.
- Depois de criar um job, confira o custo estimado dos recursos que job usa e definir alertas para receber notificações quando o uso do recurso excede os limites especificados. Para mais informações, consulte Monitoramento de custos do Dataflow.
Otimizar recursos
Veja a seguir recomendações para otimizar seus recursos do Dataflow:
- Pense no Dataflow Prime para processar Big Data de maneira eficiente.
- Para pipelines em lote, reduza os recursos (CPU, memória e armazenamento em disco permanente) consumidos nas VMs de worker usando o Dataflow Shuffle.
- Reduza os custos de processamento em lote usando o recurso de programação flexível (FlexRS, na sigla em inglês) para pipelines em lote com escalonamento automático. O FlexRS usa a programação avançada, o Shuffle do Dataflow e uma combinação de VMs preemptivas e regulares para reduzir o custo de pipelines em lote.
- Para ter um escalonamento automático mais responsivo e reduzir o consumo de recursos, use o Streaming Engine, que move a execução do pipeline das VMs de worker para o back-end do serviço do Dataflow.
- Se o pipeline não precisar de acesso à Internet e a outras redes do Google Cloud, desative os endereços IP públicos. A desativação do acesso à Internet ajuda a reduzir os custos de rede e melhorar a segurança do pipeline.
- Para cargas de trabalho que toleram registros duplicados, é possível reduzir o custo usando o modo de streaming pelo menos uma vez. Para mais informações, consulte Pelo menos uma vez Streaming: economize até 70% em cargas de trabalho de ETL de streaming.
- Para pipelines que processam grandes conjuntos de dados, é possível reduzir o número de workers (VMs do Compute Engine) que precisam de um aumento dinâmico do número de linhas de execução paralelas em cada worker. Para mais informações, consulte Escalonamento dinâmico de linhas de execução:
Dataproc
O Dataproc é um serviço gerenciado do Apache Spark e do Apache Hadoop para processamento em lote, consulta, streaming e machine learning.
Veja a seguir recomendações para otimizar o custo dos recursos do Dataproc:
- Escolha os tipos de máquina ideais para sua carga de trabalho.
- Faça o escalonamento automático para corresponder à demanda usando clusters de escalonamento automático e pague apenas pelos recursos necessários.
- Se um cluster puder ser excluído quando o job for concluído, considere provisionar um cluster temporário usando um modelo de fluxo de trabalho do cluster gerenciado.
- Para evitar cobranças de um cluster inativo, use a exclusão programada, que permite excluir um cluster após um período de inatividade especificado, em um momento determinado ou após um período especificado. de dados.
- Siga as práticas recomendadas para criar clusters de longa duração no Dataproc.
- Adquira descontos por compromisso de uso para cargas de trabalho sempre ativas.
A seguir
- Otimize o custo de serviços de computação, armazenamento, rede e operações:
- Explore as outras categorias do Framework da arquitetura do Google Cloud