この記事では、Azure Arc 有効な SQL Managed Instance に接続する方法について説明します。
Azure Arc で有効な SQL Managed Instance を表示する
インスタンスと外部エンドポイントを表示するには、次のコマンドを使用してください。
az sql mi-arc list --k8s-namespace <namespace> --use-k8s -o table
出力は次のようになります。
Name PrimaryEndpoint Replicas State
--------- ------------------- ---------- -------
sqldemo 10.240.0.107,1433 1/1 Ready
AKS、kubeadm、OpenShift などを使用している場合は、ここから外部 IP とポート番号をコピーし、Azure Data Studio や SQL Server Management Studio などの SQL Server/Azure SQL インスタンスに接続するためのお気に入りのツールを使用して接続できます。 ただし、クイック スタート VM を使用している場合は、Azure の外部からその VM に接続する方法に関する特別な情報について、以下を参照してください。
注
特にパブリック クラウドに作成されている場合は、企業ポリシーによって IP やポートへのアクセスがブロックされる場合があります。
接続
Azure Data Studio または SQL Server Management Studio、または SQLCMD を使用して接続する
Azure Data Studio を開き、上記の外部エンドポイント IP アドレスとポート番号を使用してインスタンスに接続します。 Azure VM を使用している場合は、パブリック IP アドレスが必要になります。これを識別する方法については、「Azure 仮想マシンのデプロイに関する特別な注意事項」を参照してください。
次に例を示します。
- サーバー: 52.229.9.30,30913
- ユーザー名: sa
- パスワード: プロビジョニング時に指定した SQL パスワード
メモ
Azure Data Studio を使用して、SQL Managed Instance ダッシュボードを表示することができます。
注
Kubernetes マニフェストを使用して作成されたマネージド インスタンスに接続するには、ユーザー名とパスワードを base64 のエンコード形式で sqlcmd に提供する必要があります。
SQLCMD、Linux、または Windows を使用して接続するには、次のようなコマンドを使用できます。 SQL パスワードの入力を求められたら、入力します。
sqlcmd -S 52.229.9.30,30913 -U sa
Azure 仮想マシンのデプロイに関する特別な注意事項
Azure 仮想マシンを使用している場合は、エンドポイントの IP アドレスにパブリック IP アドレスが表示されません。 外部の IP アドレスを検索するには、次のコマンドを使用します。
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
その後、パブリック IP アドレスとポートを組み合わせて接続できます。
また、ネットワーク セキュリティ ゲートウェイ (NSG) を使用して SQL インスタンスのポートを公開する必要がある場合もあります。 NSG 経由のトラフィックを許可するには、次のコマンドを使用して実行できる規則を追加する必要があります。
規則を設定するには、次のコマンドを使用して確認できる NSG の名前を把握しておく必要があります。
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
NSG の名前を取得したら、次のコマンドを使用してファイアウォール規則を追加できます。 この例の値は、ポート 30913 に対する NSG 規則を作成し、任意のソース IP アドレスからの接続を許可します。 これは、セキュリティ上、ベスト プラクティスとはいえません。 クライアントの IP アドレスや、チームまたは組織の IP アドレスが含まれる IP アドレス範囲に固有の -source-address-prefixes 値を指定すると、適切にロックダウンできます。
次の --destination-port-ranges
パラメーターの値を、上記の az sql mi-arc list
コマンドから受け取ったポート番号に置き換えます。
az network nsg rule create -n db_port --destination-port-ranges 30913 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'