概要
PCあるいはオンプレサーバから、Azure SQLにつながらない場合やデータ転送が遅い場合のポイントです。
参考
前提知識
Azure外からのAzure SQLへの接続の際、AzureのGWに対しての接続は以下の2方式のいずれかで実施されます。
Redirect
Azure SQLのPort 1433 + 11000~11999に対して送信接続します。
この際、GWへの接続確立後は直接Azure SQLと接続してデータをやりとりするため、高速となります。
Azure内からの接続は既定でこちらの方式です。
Proxy
Azure SQLのPort 1433に対して送信接続します。
全てのデータはGWを介してやりとりされるため、Redirectに比べて低速です。
Azure外からの接続は既定でこちらの方式です。
接続できない場合
現状接続できるかを確認するには
そもそも接続できるかがわからない場合は、下記のコマンドで確認ができます。この場合、宛先は東日本のAzure SQLが利用するGWのIPです。他リージョンについては参考リンクに記載があります。
ちなみに一部現在はつながらないGWのIP(13.78.106.224)が記載されています。GW側の事情もあるので、どれかで接続ができれば確認としてはOKです。※2020/4月時点
Test-NetConnection 13.78.61.196 -port 1433 #東日本
Test-NetConnection 40.79.184.8 -port 1433 #東日本
Test-NetConnection 191.237.240.43 -port 1433 #東日本
Test-NetConnection 40.79.192.5 -port 1433 #東日本
Test-NetConnection 13.78.106.224 -port 1433 #東日本
開通させるには
企業によっては送信規則を一部制限しており、SQLとの接続ができない場合があります。
そのため、クライアント側のファイアウォールで送信許可を設定します。
ドメインネームで送信許可が可能な場合には*.database.windows.net が利用可能です。
IP範囲での設定を行う場合、上記のようなリージョン内のGWのIPのすべてにおけるPort1433に対する送信許可を設定します。
また、Redirectで接続させたい場合はAzure SQLがとるIP範囲におけるPort11000~11999に対する送信許可を設定する必要があります。
ただし、基本的に更新はないGWのIPに対して、Azure SQLがとるIP範囲は更新されていくので注意
転送が遅い場合
接続ポリシーの違いにより、Azure上と外側とではデータ転送のスピードが異なります。
この場合、Azure SQL側の接続ポリシーを変更することで、Azure外からもRedirect方式で接続され、転送が高速化する可能性があります。
ただし、Azure SQLがとるIP範囲(or *.database.windows.net)のPort11000~11999に対する送信許可がされていない場合Redirect方式で接続できないため、Proxy方式の接続となります。
変更方法
Azure Portalから変更可能になっています。Connection Policyを変更しましょう。