Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve uma coleção de práticas comprovadas de FinOps para serviços de banco de dados. Ele fornece estratégias para otimizar custos, melhorar a eficiência e usar consultas ARG (Azure Resource Graph) para obter insights sobre seus recursos de banco de dados. Seguindo essas práticas, você pode garantir que seus serviços de banco de dados sejam econômicos e alinhados com as metas financeiras de sua organização.
Cosmos DB
As seções a seguir fornecem consultas ARG para o Cosmos DB. Essas consultas ajudam você a obter insights sobre suas contas do Cosmos DB e garantir que elas estejam configuradas com as RUs (Unidades de Solicitação) apropriadas. Ao analisar os padrões de uso e exibir recomendações do Assistente do Azure, você pode otimizar as RUs para eficiência de custos.
Consulta: Confirmação das unidades de solicitação do Cosmos DB
Essa consulta ARG analisa as contas do Cosmos DB em seu ambiente do Azure para garantir que elas estejam configuradas com as RUs apropriadas.
Descrição
Essa consulta identifica contas do Cosmos DB com recomendações para otimizar suas RUs com base em padrões de uso. Ele apresenta recomendações do Assistente do Azure para ajustar as RUs para eficiência de custos.
Categoria
Otimização
Consulta
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId == '8b993855-1b3f-4392-8860-6ed4f5afd8a7'
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
Consulta: coleções do Cosmos DB que se beneficiariam ao mudar para outro modo de throughput
Essa consulta ARG identifica coleções do Cosmos DB em seu ambiente do Azure que se beneficiariam da alternância do modo de taxa de transferência, com base nas recomendações do Assistente do Azure.
Descrição
Essa consulta apresenta coleções do Cosmos DB que têm recomendações para alternar seu modo de taxa de transferência (por exemplo, de dimensionamento manual para automático ou vice-versa) para otimizar o desempenho e o custo. Ele usa as recomendações do Assistente do Azure para realçar possíveis melhorias.
Categoria
Otimização
Benefícios
- Otimização de custos: identifica coleções do Cosmos DB que podem economizar custos alternando para um modo de taxa de transferência mais apropriado com base em padrões de uso e recomendações.
- Gerenciamento de desempenho: garante que as coleções do Cosmos DB estejam usando o modo de taxa de transferência ideal, aprimorando o desempenho e evitando o provisionamento excessivo ou insuficiente.
Consulta
advisorresources
| where type =~ 'microsoft.advisor/recommendations'
| where properties.impactedField == 'microsoft.documentdb/databaseaccounts'
and properties.recommendationTypeId in (
' cdf51428-a41b-4735-ba23-39f3b7cde20c',
' 6aa7a0df-192f-4dfa-bd61-f43db4843e7d'
)
| order by id asc
| project
id, subscriptionId, resourceGroup,
CosmosDBAccountName = properties.extendedProperties.GlobalDatabaseAccountName,
DatabaseName = properties.extendedProperties.DatabaseName,
CollectionName = properties.extendedProperties.CollectionName,
EstimatedAnnualSavings = bin(toreal(properties.extendedProperties.annualSavingsAmount), 1),
SavingsCurrency = properties.extendedProperties.savingsCurrency
Consulta: Detalhes do modo de backup do Cosmos DB
Essa consulta ARG analisa contas do Cosmos DB que usam a política de backup 'Periódico' e não têm vários locais de gravação habilitados.
Categoria
Otimização
Consulta
resources
| where type == "microsoft.documentdb/databaseaccounts"
| where resourceGroup in ({ResourceGroup})
| where properties.backupPolicy.type == 'Periodic'
and tobool(properties.enableMultipleWriteLocations) == false
| extend BackupCopies = toreal(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours)
/ (toreal(properties.backupPolicy.periodicModeProperties.backupIntervalInMinutes) / real(60))
| where BackupCopies >= 10
or (BackupCopies > 2
and toint(properties.backupPolicy.periodicModeProperties.backupRetentionIntervalInHours) <= 168)
| order by id asc
| project id, CosmosDBAccountName=name, resourceGroup, subscriptionId, BackupCopies
Bancos de dados SQL
Banco de Dados SQL do Azure é um mecanismo de banco de dados paaS (plataforma totalmente gerenciada como serviço) que lida com a maioria das funções de gerenciamento de banco de dados, como atualização, aplicação de patch, backups e monitoramento sem envolvimento do usuário. Os Pools Elásticos permitem compartilhar recursos entre vários bancos de dados para otimizar o custo.
Recursos relacionados:
- Página de produto do Banco de Dados SQL do Azure
- Preços do Banco de Dados SQL do Azure
- Documentação do Banco de Dados SQL do Azure
- Diretrizes de desempenho do Banco de Dados SQL
Consulta: Banco de dados SQL ocioso
Essa consulta ARG identifica bancos de dados SQL com nomes que indicam que eles podem ser antigos, em desenvolvimento ou usados para fins de teste.
Categoria
Otimização
Consulta
resources
| where type == "microsoft.sql/servers/databases"
| where name contains "old" or name contains "Dev"or name contains "test"
| where resourceGroup in ({ResourceGroup})
| extend SQLDBName = name, Type = sku.name, Tier = sku.tier, Location = location
| order by id asc
| project id, SQLDBName, Type, Tier, resourceGroup, Location, subscriptionId
Remover pools elásticos não utilizados
Recomendação: remova pools elásticos que não têm bancos de dados associados para evitar custos desnecessários.
Sobre Pools Elásticos não utilizados
Os Pools Elásticos do SQL permitem que vários bancos de dados compartilhem um pool comum de recursos. Quando um Pool Elástico não possui bancos de dados, ele ainda gera cobranças com base nos eDTUs ou vCores configurados. A remoção de pools elásticos vazios elimina esses custos desnecessários.
Note
Os hubs FinOps podem identificar automaticamente pools elásticos não utilizados. Saiba mais.
Identificar pools elásticos não utilizados
Use a consulta ARG a seguir para identificar pools elásticos sem bancos de dados associados.
resources
| where type == "microsoft.sql/servers/elasticpools"
| extend elasticPoolId = tolower(tostring(id))
| extend elasticPoolName = name
| extend elasticPoolRG = resourceGroup
| extend skuName = tostring(sku.name)
| extend skuTier = tostring(sku.tier)
| extend skuCapacity = tostring(sku.capacity)
| join kind=leftouter (
resources
| where type == "microsoft.sql/servers/databases"
| extend elasticPoolId = tolower(tostring(properties.elasticPoolId))
) on elasticPoolId
| summarize databaseCount = countif(isnotempty(elasticPoolId1)) by
elasticPoolId,
elasticPoolName,
serverResourceGroup = resourceGroup,
name,
skuName,
skuTier,
skuCapacity,
elasticPoolRG
| where databaseCount == 0
| project elasticPoolId,
elasticPoolName,
databaseCount,
elasticPoolRG,
skuName,
skuTier,
skuCapacity
Fornecer comentários
Deixe-nos saber como estamos indo com uma avaliação rápida. Usamos essas revisões para melhorar e expandir ferramentas e recursos do FinOps.
Se você estiver procurando algo específico, vote em um existente ou crie uma ideia. Compartilhe ideias com outras pessoas para obter mais votos. Nós nos concentramos nas ideias com mais votos.
Conteúdo relacionado
Recursos relacionados:
Soluções relacionadas:
- Relatórios do Power BI do kit de ferramentas FinOps
- Centros FinOps
- Planilhas FinOps
- Mecanismo de otimização