SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

VM Role 上の SQL Server に SSMS で接続

leave a comment

前回作成した、VM Role 上の SQL Server に SQL Server Management Studio (SSMS) で接続するための方法をまとめてみたいと思います。

■外部からの接続について


外部から Azure の Role に接続をするためには、[InputEndpoint] を定義する必要があります。

Visual Web Developer や Visual Studio を使用すると GUI で設定することができます。
image
設定はサービス定義ファイル (.csdef) に追加されていますので変更をするときはパッケージをデプロイする必要があります。
image

SQL Server の既定のインスタンスの場合、[TCP 1433] で接続を行いますので、
image

以下のようなエンドポイントを作成すればいいのかなと思って試していたのですが、うまく接続ができませんでした…。
image
image

■ネットワークモニターで接続の状態を確認


クライアントの SSMS から VM Role の SQL Server に接続をしようとした際のネットワークの疎通を VM Role にインストールしているネットワークモニタで確認してみたいと思います。
ネットワークモニタのフィルタとしては以下のフィルタを設定しておきます。

Source == "<グローバル IP>"
AND
DestinationPort != 20000

インターネット経由で接続をする際に使用されているグローバル IP を送信元として、送信先の TCP 20000 以外のパケットを表示するようにフィルタを使用しています。
TCP 2000 ですが、RemoteForwarderService で使用されておりこのサービスはリモートデスクトップで接続をする際に使用されています。
グローバル IP から RemoteForwarderService を経由して接続がされているパケットも表示をするとかなり多くの情報が表示されてしまいますので、フィルタで除外をしています。

それでは、SSMS から SQL Server に接続をしてみます。
image

接続ができずにエラーとなってしまいました…。
image

ネットワークモニタを見てもパケットは流れてきていませんでした。
image

 

■パブリックポートを 1433 以外に設定


パブリックポートを 1433 以外に設定して接続の確認を行ってみたいと思います。
# エンドポイントを変更したパッケージでアップグレードをしたのですが、エラーになってしまったので、再デプロイしています…。
image

プライベートポートに関しては 1433 のままとしていますので、VM Role 上の SQL Server は設定を変更せずにそのままの状態となっています。
image

それでは、TCP 10000 を使って接続をしてみます。
image

パブリックポートを 10000 にした場合は正常に接続することができました。
image

ネットワークモニタにもパケットが流れてきています。
# プライベートポートは 1433 なので、VM Role からみると 1433 に対して接続が行われていることになります。
image

この構成でも問題なく接続ができます。
image

image

パブリックポートを 1433 にするとうまく接続ができませんでした…。
エンドポイントを使用して VM Role 上の SQL Server を使用する場合、1433 で公開するということはないと思いますが、なぜ接続ができないのかがいまいちわかりませんでした。
SQL Azure が 1433 を使用しているからとかあるのでしょうか??

Written by masayuki.ozawa

2月 13th, 2011 at 10:51 pm

Posted in SQL Server,Windows Azure

Tagged with ,

Leave a Reply

*