Udostępnij przez


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 - baza danych

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

W poniższych sekcjach przedstawiono zapytania usługi ARG dla baz danych SQL Database. Te zapytania pomagają w znajdowaniu baz danych SQL, które mogą być bezczynne, stare, w trakcie tworzenia lub używane do celów testowych. Analizując te bazy danych, można zoptymalizować koszty i zwiększyć wydajność, likwidując lub ponownie stosując nie w pełni wykorzystywane 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

Zapytanie: Analiza nieużywanych elastycznych pul

To zapytanie ARG identyfikuje potencjalnie bezczynne elastyczne pule w środowisku Azure SQL, analizując liczbę baz danych skojarzonych z każdą pulą elastyczną.

Kategoria

Optymalizacja

Zapytanie

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: