Procedimientos recomendados de FinOps para bases de datos
En este artículo se describe una colección de prácticas probadas de FinOps para los servicios de base de datos. Proporciona estrategias para optimizar los costos, mejorar la eficacia y usar consultas de Azure Resource Graph (ARG) para obtener información sobre los recursos de la base de datos. Al seguir estos procedimientos, puede asegurarse de que los servicios de base de datos son rentables y se alinean con los objetivos financieros de su organización.
Cosmos DB
En las secciones siguientes se proporcionan consultas ARG para Cosmos DB. Estas consultas le ayudan a obtener información sobre las cuentas de Cosmos DB y a asegurarse de que están configuradas con las unidades de solicitud (RU) adecuadas. Mediante el análisis de patrones de uso y recomendaciones de superficie de Azure Advisor, puede optimizar las RU para la rentabilidad.
Consulta: Confirmación de unidades de solicitud de Cosmos DB
Esta consulta de ARG analiza las cuentas de Cosmos DB dentro del entorno de Azure para asegurarse de que están configuradas con las RU adecuadas.
Descripción
Esta consulta identifica las cuentas de Cosmos DB con recomendaciones para optimizar sus RU en función de los patrones de uso. Muestra recomendaciones de Azure Advisor para ajustar las RU para la eficiencia de los costos.
Categoría
Optimization
Consultar
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: colecciones de Cosmos DB que se beneficiarían de cambiar a otro modo de rendimiento
Esta consulta de ARG identifica las colecciones de Cosmos DB dentro del entorno de Azure que se beneficiarían de cambiar el modo de rendimiento, en función de las recomendaciones de Azure Advisor.
Descripción
Esta consulta expone colecciones de Cosmos DB que tienen recomendaciones para cambiar su modo de rendimiento (por ejemplo, desde el escalado manual al automático o viceversa) para optimizar el rendimiento y el costo. Usa recomendaciones de Azure Advisor para resaltar posibles mejoras.
Categoría
Optimization
Ventajas
- Optimización de costos: identifica colecciones de Cosmos DB que pueden ahorrar costos cambiando a un modo de rendimiento más adecuado en función de los patrones de uso y las recomendaciones.
- Administración del rendimiento: garantiza que las colecciones de Cosmos DB usan el modo de rendimiento óptimo, lo que mejora el rendimiento y evita el aprovisionamiento excesivo o el aprovisionamiento insuficiente.
Consultar
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: detalles del modo de copia de seguridad de Cosmos DB
Esta consulta de ARG analiza las cuentas de Cosmos DB que usan la directiva de copia de seguridad "Periódica" y no tienen habilitadas varias ubicaciones de escritura.
Categoría
Optimization
Consultar
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
Bases de datos SQL Database
En las secciones siguientes se proporcionan consultas ARG para bases de datos SQL. Estas consultas le ayudan a identificar las bases de datos SQL que pueden estar inactivas, antiguas, en desarrollo o que se usan con fines de prueba. Mediante el análisis de estas bases de datos, puede optimizar los costos y mejorar la eficacia mediante la retirada o la reutilización de recursos infrautilizados.
Consulta: SQL DB inactiva
Esta consulta de ARG identifica las bases de datos SQL con nombres que indican que pueden ser antiguas, en desarrollo o que se usan con fines de prueba.
Categoría
Optimization
Consultar
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
Consulta: análisis de grupos elásticos sin usar
Esta consulta de ARG identifica grupos elásticos potencialmente inactivos en el entorno de Azure SQL mediante el análisis del número de bases de datos asociadas a cada grupo elástico.
Categoría
Optimization
Consultar
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
¿Buscas más?
¿Perdimos algo? ¿Desea ver algo agregado? Nos encantaría conocer las preguntas, problemas o soluciones que le gustaría ver aquí. Cree un nuevo problema con los detalles que le gustaría ver aquí.
Contenido relacionado
Recursos relacionados
Soluciones relacionadas:
- Informes de Power BI del kit de herramientas de FinOps
- Centros de FinOps
- Libros de FinOps
- Motor de optimización