Najlepsze rozwiązania dotyczące metodyki FinOps dla baz danych

W tym artykule opisano kolekcję sprawdzonych rozwiązań FinOps dotyczących usług baz danych. Zapewnia ona strategie optymalizacji kosztów, poprawy wydajności i używania zapytań usługi Azure Resource Graph (ARG) w celu uzyskania wglądu w zasoby bazy danych. Postępując zgodnie z tymi rozwiązaniami, możesz upewnić się, że usługi bazy danych są opłacalne i dostosowane do celów finansowych organizacji.


Cosmos DB

W poniższych sekcjach znajdują się zapytania ARG dla usługi Cosmos DB. Zapytania te pomagają uzyskać wgląd w konta baz danych Cosmos DB i zapewnić ich prawidłową konfigurację przy użyciu odpowiednich jednostek żądania (RU). Analizując wzorce użycia i przedstawiając zalecenia z usługi Azure Advisor, można zoptymalizować jednostki zasobów (RUs) w celu poprawy efektywności kosztowej.

Zapytanie: Potwierdzanie jednostek żądań usługi Cosmos DB

To zapytanie usługi ARG analizuje konta usługi Cosmos DB w środowisku platformy Azure, aby upewnić się, że są skonfigurowane przy użyciu odpowiednich jednostek RU.

Opis

To zapytanie identyfikuje konta usługi Cosmos DB z zaleceniami dotyczącymi optymalizacji jednostek żądań (RU) na podstawie wzorców użycia. Przedstawia zalecenia usługi Azure Advisor, aby dostosować jednostki RU pod kątem efektywności kosztowej.

Kategoria

Optymalizacja

Zapytanie

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

Zapytanie: kolekcje usługi Cosmos DB, które mogą korzystać z przełączania do innego trybu przepływności

To zapytanie usługi ARG identyfikuje kolekcje usługi Cosmos DB w środowisku platformy Azure, które mogą korzystać z przełączania trybu przepływności na podstawie zaleceń usługi Azure Advisor.

Opis

To zapytanie powoduje wyświetlenie kolekcji Cosmos DB, które mają zalecenia dotyczące przełączania trybu przepustowości (na przykład z ręcznego na autoskalowanie lub odwrotnie), aby zoptymalizować zarówno wydajność, jak i koszty. Używa zaleceń usługi Azure Advisor, aby wyróżnić potencjalne ulepszenia.

Kategoria

Optymalizacja

Korzyści

  • Optymalizacja kosztów: identyfikuje kolekcje usługi Cosmos DB, które mogą zaoszczędzić koszty, przełączając się do bardziej odpowiedniego trybu przepływności na podstawie wzorców użycia i zaleceń.
  • Zarządzanie wydajnością: zapewnia, że kolekcje usługi Cosmos DB są wykorzystywane w optymalnym trybie przepustowości, zwiększając wydajność i unikając nadmiarowego lub niedostatecznego zasobów.

Zapytanie

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

Zapytanie: szczegóły trybu tworzenia kopii zapasowej usługi Cosmos DB

To zapytanie usługi ARG analizuje konta usługi Cosmos DB korzystające z zasad tworzenia kopii zapasowych okresowych i nie mają włączonej wielu lokalizacji zapisu.

Kategoria

Optymalizacja

Zapytanie

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

Bazy danych SQL

Azure SQL Database to w pełni zarządzany aparat bazy danych platformy jako usługi (PaaS), który obsługuje większość funkcji zarządzania bazami danych, takich jak uaktualnianie, stosowanie poprawek, tworzenie kopii zapasowych i monitorowanie bez udziału użytkownika. Pule elastyczne umożliwiają udostępnianie zasobów między wieloma bazami danych w celu optymalizacji kosztów.

Powiązane zasoby:

Zapytanie: bezczynność bazy danych SQL

To zapytanie ARG identyfikuje bazy danych SQL, których nazwy wskazują, że mogą być stare, w fazie rozwoju lub używane do celów testowych.

Kategoria

Optymalizacja

Zapytanie

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

Usuń nieużywane pule elastyczne

Zalecenie: Usuń pule elastyczne, które nie mają skojarzonych baz danych, aby uniknąć niepotrzebnych kosztów.

Informacje o nieużywanych elastycznych pulach

Elastyczne pule SQL umożliwiają wielu bazom danych współużytkowanie wspólnej puli zasobów. Jeśli pula elastyczna nie zawiera żadnych baz danych, nadal są naliczane opłaty zgodnie ze skonfigurowanymi jednostkami eDTU lub rdzeniami wirtualnymi. Usunięcie pustych pul elastycznych eliminuje te niepotrzebne koszty.

Note

Koncentratory FinOps mogą automatycznie identyfikować nieużywane pule elastyczne. Dowiedz się więcej.

Identyfikowanie nieużywanych elastycznych pul

Użyj następującego zapytania usługi ARG, aby zidentyfikować pule elastyczne bez skojarzonych baz danych.

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

Prześlij opinię

Daj nam znać, jak nam idzie, zostawiając krótką opinię. Te recenzje służą do ulepszania i rozszerzania narzędzi i zasobów FinOps.

Jeśli szukasz czegoś konkretnego, zagłosuj na istniejący lub utwórz nowy pomysł. Podziel się pomysłami z innymi osobami, aby uzyskać więcej głosów. Skupiamy się na pomysłach z największą większością głosów.


Powiązane zasoby:

Powiązane rozwiązania: