none
Windows Azure(PaaS)上のWindows Server 2008 R2 サーバと外部のサーバとの通信について RRS feed

  • 質問

  • Windows Azure(PaaS)上のWindows Server 2008 R2 サーバと外部のサーバと通信させるために

    1.ファイアウォールの設定は可能ですか? (外部に対し10050ポートを開放することは可能ですか?)

    2.1が可能であればその設定方法を教えてください。

    3.NW設定は可能ですか?

    4.3が可能であればその設定方法を教えてください。

    2014年10月26日 8:10

回答

  • こんにちは。日山です。

    1, 2 についてですが、可能です。インスタンスから外部サーバへの通信は、設定しなくても可能です。外部サーバからインスタンスへの通信については、エンドポイント設定が必要です。
    エンドポイント設定ですが、クラウド定義ファイル(.csdef) において対象とするロールに対してEndpoints/InputEndpointタグを定義することで行います。以下に例を記載します。

    <ServiceDefinition name="AzureCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
      <WebRole name="WebRole1" vmsize="Small">
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="Endpoint2" protocol="tcp" port="8080" localPort="33333" />
        </Endpoints>
      </WebRole>
    </ServiceDefinition>

    この例だと、WebRole1に対して、80番と8080番のエンドポイント設定をしています。80番と8080番を外部に対して公開している形になります。8080番ポート(port)については、内部で33333番ポート(localPort)にポート変換されます。

    VisualStudioだと、クラウドプロジェクト内の対象ロールを右クリックし、「プロパティ」を選択、ロールの構成画面が表示されます。そこでエンドポイントタブを選択すると、エンドポイント設定画面が表示され、設定することができます。

    詳しくは以下のMSDNを参照ください。
    http://msdn.microsoft.com/en-us/library/azure/hh124108.aspx

    • 編集済み hiiyan0402 2014年10月26日 12:36
    • 回答の候補に設定 星 睦美 2014年10月28日 2:46
    • 回答としてマーク h-mori 2014年10月29日 23:48
    2014年10月26日 12:31
  • 3, 4 はロールを仮想ネットワークに所属させる場合の設定でしょうか?
    それであれば可能です。以下のブログポストをご参照いただくとできると思います。

    Connecting Web or Worker Roles to a Simple Virtual Network in Windows Azure
    http://michaelwasham.com/2012/08/06/connecting-web-or-worker-roles-to-a-simple-virtual-network-in-windows-azure/

    • 回答としてマーク h-mori 2014年10月29日 23:48
    2014年10月26日 12:41
  • >1.ファイアウォールの設定は可能ですか? (外部に対し10050ポートを開放することは可能ですか?)

    ポートの開放であればエンドポイントの設定になります。
    使用するポートが各インスタンスを指定して行う必要があれば(監視の用途とかでしょうか)、InstanceInputEndpointを使用してください。
    どちらのインスタンスに接続してもよいのであればhiiyan0402さんの記述にあるようにInputEndpointの記述で大丈夫です。
    ※InputEndpointですとAzureのロードバランサにより、どちらのインスタンスに接続するかわからないためです。

    InstanceInputEndpointの記述は以下の様になります。

         <InstanceInputEndpoint name="hoge" localPort="10050" protocol="tcp">
             <AllocatePublicPortFrom>
                <FixedPortRange min="10050" max="10051"/>
             </AllocatePublicPortFrom>
          </InstanceInputEndpoint>
    インスタンスが2つ存在する場合で、上記設定を行った場合、10050ポートで接続した場合にはインスタンス1の10050ポートに接続、10051で接続した場合にはインスタンス2の10050ポートに接続といった感じに動作します。

    ちなみに、FixedPortRangeのminとmaxはローカルポートに合わせる必要がありませんので好きに割り当ててください。

    ※ブチザッキさんの「Windows Azure SDK 1.7時代のネットワーク」が参考になると思います。

    >3.NW設定は可能ですか?

    ネットワークの何の設定でしょうか?


    • 編集済み r-cap 2014年10月27日 2:56 内容の追記
    • 回答の候補に設定 星 睦美 2014年10月28日 2:46
    • 回答としてマーク h-mori 2014年10月29日 23:49
    2014年10月27日 1:43

すべての返信

  • こんにちは。日山です。

    1, 2 についてですが、可能です。インスタンスから外部サーバへの通信は、設定しなくても可能です。外部サーバからインスタンスへの通信については、エンドポイント設定が必要です。
    エンドポイント設定ですが、クラウド定義ファイル(.csdef) において対象とするロールに対してEndpoints/InputEndpointタグを定義することで行います。以下に例を記載します。

    <ServiceDefinition name="AzureCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
      <WebRole name="WebRole1" vmsize="Small">
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="Endpoint2" protocol="tcp" port="8080" localPort="33333" />
        </Endpoints>
      </WebRole>
    </ServiceDefinition>

    この例だと、WebRole1に対して、80番と8080番のエンドポイント設定をしています。80番と8080番を外部に対して公開している形になります。8080番ポート(port)については、内部で33333番ポート(localPort)にポート変換されます。

    VisualStudioだと、クラウドプロジェクト内の対象ロールを右クリックし、「プロパティ」を選択、ロールの構成画面が表示されます。そこでエンドポイントタブを選択すると、エンドポイント設定画面が表示され、設定することができます。

    詳しくは以下のMSDNを参照ください。
    http://msdn.microsoft.com/en-us/library/azure/hh124108.aspx

    • 編集済み hiiyan0402 2014年10月26日 12:36
    • 回答の候補に設定 星 睦美 2014年10月28日 2:46
    • 回答としてマーク h-mori 2014年10月29日 23:48
    2014年10月26日 12:31
  • 3, 4 はロールを仮想ネットワークに所属させる場合の設定でしょうか?
    それであれば可能です。以下のブログポストをご参照いただくとできると思います。

    Connecting Web or Worker Roles to a Simple Virtual Network in Windows Azure
    http://michaelwasham.com/2012/08/06/connecting-web-or-worker-roles-to-a-simple-virtual-network-in-windows-azure/

    • 回答としてマーク h-mori 2014年10月29日 23:48
    2014年10月26日 12:41
  • >1.ファイアウォールの設定は可能ですか? (外部に対し10050ポートを開放することは可能ですか?)

    ポートの開放であればエンドポイントの設定になります。
    使用するポートが各インスタンスを指定して行う必要があれば(監視の用途とかでしょうか)、InstanceInputEndpointを使用してください。
    どちらのインスタンスに接続してもよいのであればhiiyan0402さんの記述にあるようにInputEndpointの記述で大丈夫です。
    ※InputEndpointですとAzureのロードバランサにより、どちらのインスタンスに接続するかわからないためです。

    InstanceInputEndpointの記述は以下の様になります。

         <InstanceInputEndpoint name="hoge" localPort="10050" protocol="tcp">
             <AllocatePublicPortFrom>
                <FixedPortRange min="10050" max="10051"/>
             </AllocatePublicPortFrom>
          </InstanceInputEndpoint>
    インスタンスが2つ存在する場合で、上記設定を行った場合、10050ポートで接続した場合にはインスタンス1の10050ポートに接続、10051で接続した場合にはインスタンス2の10050ポートに接続といった感じに動作します。

    ちなみに、FixedPortRangeのminとmaxはローカルポートに合わせる必要がありませんので好きに割り当ててください。

    ※ブチザッキさんの「Windows Azure SDK 1.7時代のネットワーク」が参考になると思います。

    >3.NW設定は可能ですか?

    ネットワークの何の設定でしょうか?


    • 編集済み r-cap 2014年10月27日 2:56 内容の追記
    • 回答の候補に設定 星 睦美 2014年10月28日 2:46
    • 回答としてマーク h-mori 2014年10月29日 23:49
    2014年10月27日 1:43
  • 回答ありがとうございます。

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

    2014年10月27日 8:39
  • 回答ありがとうございます。

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

    2014年10月27日 8:40
  • 回答ありがとうございます。

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

    2014年10月27日 8:40
  • 回答ありがとうございます。

    基本的なことを質問して申し訳ありません。

    回答していただいた方法は、VIP側のポートの開放をする方法でしょうか?

    「クラウドサービス」で作成したサーバ(PaaA?)(①)にリモートデスクトップ接続して

    OS側で確認(ipconfigコマンド実行結果)したIPにVIPは含まれていませんでした。

    この辺の仕組みがよくわかりません。

    例えばAzure上に作成した仮想(VM)マシンと①のサーバの間でアプリケーション通信した場合、

    以下を行なうのでしょうか?

    1.OS側のIPとVIPの両方のアプリケーション用のポートを開放

    2.仮想(VM)マシンと①のサーバ間でVIPを使用してアプリケーション通信。

    以上、よろしくお願いいたします。

    2014年10月30日 0:20
  • フォーラム オペレーターの星 睦美です。

    返信の質問 「例えばAzure上に作成した仮想(VM)マシンと①のサーバの間でアプリケーション通信した場合...」は
    新しく投稿されている以下の質問内容と同じ質問ではないでしょうか。その場合は質問の前提となっている環境(Azure と外部サーバー) が変わりますので新しい質問にまとめていただくと、回答しやすくなると思います。

    クラウドサービスで作成した既存のサーバと新規で作成する仮想(VM)マシンの間での通信について:

    ※「クラウドサービスで作成したサーバ」と表現していただいている点、もしかしたらMicrosoft Azure のサービスで説明したほうが具体的な回答を得ることができるのではと思います。
    例:Azure SQL データベースにAzure 仮想マシンから接続するための設定はどうすればよいですか

    こちらのスレッド(Azure と外部サーバーの通信) の回答に関して疑問な点がありましたら、[回答としてマークの解除] をして遠慮なく質問を続けてくださいね。






    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2014年10月30日 2:54 追記
    2014年10月30日 2:36
  • 別の質問とは聞きたいことが異なります。

    聞きたいのは以下です。

    以下を行なうのでしょうか?

    1.OS側のIPとVIPの両方のアプリケーション用のポートを開放

    2.仮想(VM)マシンと①のサーバ間でVIPを使用してアプリケーション通信

    またクラウドサービスで作成したサーバ(SQLロール/Workderロール)は、
    SQL Databaseではありません。

    2014年10月30日 15:35
  • クラウドサービスで作成した既存のサーバと新規で作成する仮想(VM)マシンの間での通信について
    に返信しました。
    上記の質問の違いが分かりませんでしたので、上記回答で不足している場合は追加で質問してください。

    また、本質問は回答済みとなっていますので、星 睦美さんの返信にもありますように、Azureと外部サーバについての質問であれば、別の回答者さんの目にとまりやすいため、解除をして質問してください。
    本スレッドから外れた内容になるのであれば、新規で質問を作成してください。



    • 編集済み r-cap 2014年10月31日 1:07
    2014年10月31日 1:06