次の方法で共有


拡張ゾーンに Arc 対応ワークロードをデプロイする: マネージド SQL インスタンス

この記事では、Arc 対応マネージド SQL インスタンスを拡張ゾーンにデプロイする方法について説明します。 「Azure Extended Zones とは」を参照してください。 |現在サポートされている PaaS ワークロードのサービス。

[前提条件]

目的の拡張場所を場所変数として使用します。

作業の開始

既に件名に慣れている場合は、この段落をスキップできます。 作成を続行する前に読みたい重要なトピックを次に示します。

Extended Zones に Azure Arc 対応 ManagedSQL インスタンスを作成する

Arc 対応 AKS クラスターが作成されたので、次の PowerShell スクリプトを使用して、拡張ゾーン内の AKS クラスターに ManagedSQL インスタンスを作成し、それを Azure Arc 対応 Kubernetes に接続できます。

Arc 対応 AKS ステップからパラメーターをスクリプトに正しく転送してください。

. "./CreateArcEnabledAksOnEZ"

function CreateManagedSqlOnArcEnabledAksEz {
    param(
        [string] $ManagedInstanceName,
        [string] $dbname,
        [string] $SubscriptionId,
        [string] $AKSClusterResourceGroupName,
        [string] $location = "westus",
        [string] $AKSName,
        [string] $edgeZone,
        [int] $nodeCount = 2,
        [string] $vmSize = "standard_nv12ads_a10_v5",
        [string] $ArcResourceGroupName,
        [string] $DataControllerName,
        [string] $CustomLocationName,
        [string] $Namespace,
        [string] $DataControllerConfigProfile,
        [string] $KeyVaultName,
        [string] $VaultSecretUser,
        [string] $VaultSecretPass,
        [switch] $Debug
    )

    try {
        # Set the subscription
        az account set --subscription $SubscriptionId

        # Create the ARC-enabled EZ AKS cluster
        createArcEnabledAksOnEz -SubscriptionId $SubscriptionId -AKSClusterResourceGroupName $AKSClusterResourceGroupName -location $location -AKSName $AKSName -edgeZone $edgeZone -nodeCount $nodeCount -vmSize $vmSize -ArcResourceGroupName $ArcResourceGroupName -Debug:$Debug
        
        # Define name of the connected cluster resource
        $CLUSTER_NAME = "$ArcResourceGroupName-cluster"

        # Create a key vault and store login
        $AZDATA_USERNAME = az keyvault secret show --vault-name $KeyVaultName --name $VaultSecretUser --query value -o tsv
        $AZDATA_PASSWORD = az keyvault secret show --vault-name $KeyVaultName --name $VaultSecretPass --query value -o tsv
        
        # Define login for data controller and metrics
        $ENV:AZDATA_LOGSUI_USERNAME = $AZDATA_USERNAME
        $ENV:AZDATA_LOGSUI_PASSWORD = $AZDATA_PASSWORD
        $ENV:AZDATA_METRICSUI_USERNAME = $AZDATA_USERNAME
        $ENV:AZDATA_METRICSUI_PASSWORD = $AZDATA_PASSWORD

        # Define the connected cluster and extension for the custom location
        $CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $ArcResourceGroupName --name $CLUSTER_NAME --query id --output tsv)
        $EXTENSION_ID=$(az k8s-extension show `
        --cluster-type connectedClusters `
        --name 'my-data-controller-custom-location-ext' `
        --cluster-name $CLUSTER_NAME `
        --resource-group $ArcResourceGroupName `
        --query id `
        --output tsv)

        # Create a custom location for the data controller
        Write-Output "Creating data controller custom location..."
        az customlocation create `
        --resource-group $ArcResourceGroupName `
        --name $CustomLocationName `
        --host-resource-id $CONNECTED_CLUSTER_ID `
        --namespace $Namespace `
        --cluster-extension-ids $EXTENSION_ID

        # Create data controller on Arc-enabled AKS cluster
        Write-Output "Creating Arc Data Controller..."
        az arcdata dc create --name $DataControllerName --subscription $SubscriptionId --cluster-name $CLUSTER_NAME --resource-group $ArcResourceGroupName --connectivity-mode direct --custom-location $CustomLocationName --profile-name $DataControllerConfigProfile

        # Create a managed instance in the custom location
        Write-Output "Creating managed instance..."
        az sql mi-arc create --name $ManagedInstanceName --resource-group $ArcResourceGroupName --custom-location $CustomLocationName 
    }
    catch {
        # Catch any error
        Write-Error "An error occurred"
        Write-Error $Error[0]
    }

}

CreateManagedSqlOnArcEnabledAksEz -ManagedInstanceName "my-managed-instance" `
                        -dbname "myDB" `
                        -SubscriptionId "<your subscription>" `
                        -AKSClusterResourceGroupName "my-aks-cluster-group" `
                        -location "westus" `
                        -AKSName "my-aks-cluster" `
                        -edgeZone "losangeles" `
                        -nodeCount 2 `
                        -vmSize "standard_nv12ad-DataControllerConfigProfiles_a10_v5" `
                        -ArcResourceGroupName "myArcResourceGroup" `
                        -DataControllerName "myDataController" `
                        -CustomLocationName "dc-custom-location" `
                        -Namespace "my-data-controller-custom-location" `
                        -DataControllerConfigProfile "azure-arc-aks-premium-storage" `
                        -KeyVaultName "ezDataControllerConfig" `
                        -VaultSecretUser "AZDATA-USERNAME" `
                        -VaultSecretPass "AZDATA-PASSWORD"

Azure Arc でインスタンスを表示する

インスタンスを表示するには、次のコマンドを使用します:

az sql mi-arc list --k8s-namespace <namespace> --use-k8s

ここから外部 IP とポート番号をコピーし、Azure Arc で有効になっている SQL Managed Instance に接続できます。現時点では、 Azure Data Studio の Insider ビルドを使用します。

リソースをクリーンアップする

不要になったら、az group delete コマンドを使用して、my-aks-cluster-group リソース グループとそのリソースに含まれるすべてのリソースを削除します。

az group delete --name my-aks-cluster-group