Überwachen und Skalieren einer Azure Database MySQL – Flexible Server-Instanz mit Azure CLI

GILT FÜR: Azure Database for MySQL – Flexible Server

Dieses CLI-Beispielskript skaliert Compute- und Speicherressourcen sowie IOPS für eine einzelne Instanz von Azure Database for MySQL – Flexible Server nach Abfragen der entsprechenden Metriken. Computeressourcen und IOPS können hoch- oder herunterskaliert werden, Speicher kann hingegen nur hochskaliert werden.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen. Mit einem kostenlosen Azure-Konto können Sie Azure Database for MySQL – Flexible Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Testen Sie Azure Database for MySQL – Flexible Server kostenlos.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Beispielskript

Starten von Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.

Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einem separaten Browsertab starten, indem Sie zu https://shell.azure.com navigieren.

Überprüfen Sie nach dem Öffnen von Cloud Shell, ob Bash für Ihre Umgebung ausgewählt ist. In den folgenden Sitzungen wird die Azure CLI in einer Bash-Umgebung verwendet. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie sie in Cloud Shell ein, und drücken Sie die EINGABETASTE, um sie auszuführen.

Anmelden bei Azure

Cloud Shell wird automatisch unter dem Konto authentifiziert, mit dem die Anmeldung anfänglich erfolgt ist. Verwenden Sie das folgende Skript, um sich mit einem anderen Abonnement anzumelden, und ersetzen Sie <Subscription ID> durch Ihre Azure-Abonnement-ID. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Weitere Informationen finden Sie unter Festlegen der aktiven Subscription oder unter Interaktives Anmelden

Ausführen des Skripts

# Monitor your MySQLFlexible Server and scale compute, storage, and IOPS

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
subscriptionId="$(az account show --query id -o tsv)"
location="East US"
resourceGroup="msdocs-mysql-rg-$randomIdentifier"
tag="monitor-and-scale-mysql"
server="msdocs-mysql-server-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
ipAddress="None"
# Specifying an IP address of 0.0.0.0 allows public access from any resources
# deployed within Azure to access your server. Setting it to "None" sets the server 
# in public access mode but does not create a firewall rule.
# For your public IP address, https://whatismyipaddress.com

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a MySQL Flexible server in the resource group
echo "Creating $server"
az mysql flexible-server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --public-access $ipAddress

# Optional: Add firewall rule to connect from all Azure services
# To limit to a specific IP address or address range, change start-ip-address and end-ip-address
echo "Adding firewall for IP address range"
az mysql flexible-server firewall-rule create --name $server --resource-group $resourceGroup --rule-name AllowAzureIPs --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

# Monitor CPU percent, storage usage and IO percent

# Monitor CPU Usage metric
echo "Monitor CPU usage"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric cpu_percent \
    --interval PT1M

# Monitor Storage usage metric
echo "Monitor storage usage"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric storage_used \
    --interval PT1M

# Monitor IO Percent
echo "Monitor I/O percent"
az monitor metrics list \
    --resource "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DBforMySQL/flexibleservers/$server" \
    --metric io_consumption_percent \
    --interval PT1M

# Scale up the server by provisionining to higher tier from Burstable to General purpose 4vcore
echo "Scale up to Standard_D4ds_v4"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --sku-name Standard_D4ds_v4 \
    --tier GeneralPurpose 

# Scale down to by provisioning to General purpose 2vcore within the same tier
echo "Scale down to Standard_D2ds_v4"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --sku-name Standard_D2ds_v4

# Scale up the server to provision a storage size of 64GB. Note storage size cannot be reduced.
echo "Scale up storage to 64 GB"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --storage-size 64

# Scale IOPS
echo "Scale IOPS to 550"
az mysql flexible-server update \
    --resource-group $resourceGroup \
    --name $server \
    --iops 550

Bereinigen von Ressourcen

Verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle zugehörigen Ressourcen mit dem Befehl az group delete zu entfernen, es sei denn, Sie benötigen diese Ressourcen weiterhin. Bei einigen dieser Ressourcen kann das Erstellen wie auch das Löschen eine Weile dauern.

az group delete --name $resourceGroup

Beispielreferenz

Das Skript verwendet die folgenden Befehle. Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.

Befehl Hinweise
az group create Erstellt eine Ressourcengruppe, in der alle Ressourcen gespeichert sind.
az mysql flexible-server create Erstellt eine Flexible Server-Instanz, die die Datenbanken hostet.
az monitor metrics list Listet den Azure Monitor-Metrikwert für die Ressourcen auf.
az mysql flexible-server update Aktualisiert die Eigenschaften von Flexible Server.
az mysql flexible-server delete Löscht eine Flexible Server-Instanz.
az group delete Löscht eine Ressourcengruppe einschließlich aller geschachtelten Ressourcen.

Nächste Schritte