none
VMロール上でSQL Server

    質問

  • お世話になります。

    VMロール上でSQL Serverを動かすことに何か問題はあるでしょうか?
    Java (Tomcat) + SQL Serverを考えています。

    SQL Serverのライセンスはインスタンス分(1つですが)必要かと思いますが、
    他に考慮すべきことがありますでしょうか?

    以上、よろしくお願いします。
    2011年1月12日 4:23

回答

  • どうやらSQL Serverはサポートされないようです。(残念)

     

    Virtual Machine (VM) role: increases flexibility to run software of your choice (stateless server components) on Azure platform. Database server is an example of a stateful server which you can’t run on VM role.

      http://blogs.msdn.com/b/hanuk/archive/2010/10/28/windows-azure-pdc-2010-announcements.aspx

     

    SQL Azureを考えることにします。

     

    • 回答としてマーク megalith0 2011年1月21日 9:18
    2011年1月21日 9:18

すべての返信

  • こんにちは。

    VM Roleでは元のOSイメージを作成する段階でSysprep(システム配布準備ツール)を実行し一般化する必要があります。
    SQL Serverを導入する場合、このSysprepに対応しているバージョンは現状SQL Server 2008 R2のみとなります。
    ※すべてのエディションがサポートされるようです。

    もしSQL Serverも一緒に配布を考えられている場合は、Sysprepを使った配布方法等を確認されると良いかと思います。

    以下のサイトに詳しくまとめられています。

    MSDNにある情報はこちらです。

    また不特定多数のユーザーがSQL Serverを使うので、ライセンスはプロセッサライセンスになると思いますが、Windows Azureではインスタンス数の増減が行えますが、そうなるとライセンスをどうするかといった問題があります。(マイクロソフトに確認する必要があるかと・・・)
    ※1インスタンスしか利用しない、という場合でもアプリケーションの入れ替え(VIP Swap等)の際のライセンスの考え方は不明です…

    ある程度制限はありますがVM Role上でSQL Serverは動かせそうですが、1インスタンスに1SQL Serverとなり、インスタンス間のデータ連携は別途考慮する必要があります。

    機能や要件的に問題が無いのであればSQL Azureを利用するようにTomcatを構成するのも検討頂ければと思います。

     

    2011年1月12日 7:31
    モデレータ
  • 返信ありがとうございます。

    MSDNにある情報はこちらです。

    参考にさせていただきます。

    また不特定多数のユーザーがSQL Serverを使うので、ライセンスはプロセッサライセンスになると思いますが、Windows Azureではインスタンス数の増減が行えますが、そうなるとライセンスをどうするかといった問題があります。(マイクロソフトに確認する必要があるかと・・・)

    今のところ1インスタンスの予定ですが、複数インスタンスの場合は別ライセンスと考えています。 それでも、Staging環境を使ってのVIPの入れ替えは注意が必要ですね。

    機能や要件的に問題が無いのであればSQL Azureを利用するようにTomcatを構成するのも検討頂ければと思います。

    SQL Azureを使う場合も検討していますが、既存のアプリケーションの移行ですので、できれば手を入れたくないと考えSQL Serverの方を検討しています。

    参考になります。ありとうございました。

    2011年1月12日 8:19
  • まず、大前提としてVM Roleの仕様を認識する必要があります。

    VM Role上のデータは永続化保証されていません。

    より正確に言うと、アップロードした段階の VHD、もしくは差分VHDのデータだけが

    確定したデータです。

     

    初期化されるタイミングは、現時点では全部は

    判明していませんが、再起動のタイミングなどで初期化されます。

     

    例えばHyper-V上で用意したVHDVM Roleで、動作させます。

    その後、壁紙を変更します。

    再起動などが、発生すると、壁紙の変更などの変更は反映されず、

    アップロードした段階のVHDのイメージに戻ります。

     

    以上が、VM Role上のデータは永続化しないという仕様です。

    ですので、SQL Serverをデータ格納用途で、

    VM Role上で動作させることは現実的ではありません。

     

    VM Roleは、Azure Storageなどを使用して、データを永続化させるので、

    SQL Serverも、それで動作させられないか検証しようとしている人も

    いますが、現段階では不明です。

     

    以上から2011/1/12段階の情報では、

    VM Roleはアプリケーションの実行環境として使用し、SQL Azureを使用することを検討するか、

    AmazonAWSを使用したほうが良いかと思います。

    2011年1月12日 9:49
    モデレータ
  • こんにちは。

    別の観点から指摘させていただきます。

    ローカルのディスクは保証されていないので、SQL Serverの使用はリスクが高いと思います。

    ホスティング先がハード故障になった場合にデータを救えない可能性があります。

    データが保証されているのはAzureストレージやSQLAzureです。

    その点を含めて再度ご検討されたほうがよいかと思います。

    2011年1月12日 9:50
  • To:みなさま

    こんにちは。

    >VM Role 上のデータは永続化保証されていません (以下略

    そうでした。肝心のポイント抜けてました。補足ありがとうございます。
    SQL Serverが配置できるかどうかだけ見てました。すみません。

     

    他の方が述べられている通り、永続化できないので他の方法のほうが良いですね。

    2011年1月12日 10:40
    モデレータ
  • みなさん、返信ありがとうございます。


    >VM Role 上のデータは永続化保証されていません (以下略


    なるほど。了解しました。

    その他にも永続化が保証されていないと困る部分があるので、Azure Storageも使う必要がありそうです。

     

    # SQL ServerのデータをAzure Driveとかでblobに保存できればいいんですかね。

    # マウントタイミングとか不安ですが。試してダメそうならSQL Azureで。

    2011年1月13日 0:13
  • 「SQL Serverのデータをそのまま移行したい」というのがご意図だと考えていますが、現時点ではSQL Azureに移行するのが一番無難な選択だと思います。VM Role+SQL Serverに移行する方式は、みなさんが指摘しているとおりで永続化の観点から不可能です(インスタンス再起動時に、すべてのデータが初期化されます)。

    また、SQL Azure側にデータを移行する機能としてSQL Azure Datasyncが存在します。こちらも検討して頂ければと思います。

    http://www.microsoft.com/japan/windowsazure/sqlazure/datasync/

    2011年1月13日 5:29
    モデレータ
  • (以下の返信「思います」が多いですが。。。)

     

    クラウドではオンプレミスで利用していた有償製品のライセンスがそもそも利用できないのが普通と考えるのが良いと思います。

    ライセンスに「AzureでインストールしてもOKよ」と書いてあればインストール可能ですが。。。

    AWSも同様です。

    フリーのアプリケーションやサーバーもクラウド想定をしていない時代にライセンスを作成しているので、ライセンス的にはグレーかもしれません。

     

    (このあたりになるとクラウドのサーバーがどの国のどこに設置されているかなどが問題になってきますので。。。)

     

    ということで、技術的な問題より。ライセンス的な問題でSQL Azureにするという流れも。

     

    また、べたなオンプレミスアプリをクラウド化するのであれば、みなさんが提案しているTomcat on AWS + SQL Azureが最適な印象ですね。

    (TomcatとSQL Serverを選択されているのはたぶん政治的な要素が強いかと思いますのでRDSはお勧めしません)

     

    VMRoleはまだ新しい技術ですし、上記構成でしたらあまり環境に悩まされずにアプリが作れるかと思います。

    2011年1月14日 7:33
  • みなさん、コメントありがとうございます。

     

    ライセンスとかはマイクロソフトに確認しています。

    だめだったらSQL Azureになるかと。

    # みなさんのご忠告通りだとは思いますが、今回は「Azure」であることが重要なのでAWSは選択肢にないのです。

    2011年1月14日 7:56
  • どうやらSQL Serverはサポートされないようです。(残念)

     

    Virtual Machine (VM) role: increases flexibility to run software of your choice (stateless server components) on Azure platform. Database server is an example of a stateful server which you can’t run on VM role.

      http://blogs.msdn.com/b/hanuk/archive/2010/10/28/windows-azure-pdc-2010-announcements.aspx

     

    SQL Azureを考えることにします。

     

    • 回答としてマーク megalith0 2011年1月21日 9:18
    2011年1月21日 9:18