Service Endpoint 便利ですよね
ところが、Azure の VM から Service Endpoint 経由で接続しようとしたところ、超どハマりしたので、備忘録に残します。
今回の構成
何が起きていたか
- VM から Azure Data Studio を経由して SQL Database に繋ぎに行こうとしたところ接続が上手くいかなかった
- NSG を確認しても、Service Tag で Sql.JapanEast からのアクセスをポート 1433 に対して許可していた
原因
- そもそもポート 1433 で繋ぎに行っていなかった
理由
SQL Database の接続モードは、「リダイレクト」と「プロキシ」の二つが用意されていますが、既定で「リダイレクト」モードになっています。 このモード、使用するポートが 1433 では、無いんですね
このモードの場合、ポート 11000 ~ 11999 の範囲のポートを使用するので NSG のアウトバウンド設定でこのポート範囲を指定してあげないと、繋ぎに行けないんですね そのため、NSG でポート範囲などを絞る場合は、SQL Database のゲートウェイが使用するポートの 1433 と、11000 ~ 11999 の範囲でポートを開放しないといけません。
まとめ
しっかりドキュメントを読もう