2011-04-18 12 views
9

通常、Azureワーカーへのアクセスは、サービス定義で定義されているエンドポイントを介して行われます。これらのエンドポイントは、TCPまたはHTTP(S)でなければなりませんが、ロードバランサを通過してAzureマシンの実際のIP /ポートに接続されます。Azureの作業者に直接アクセスします。ロードバランサをバイパスする

私のアプリケーションは、バイトをカウントするセルラーデバイスから接続し、SYN/ACK/FINのオーバーヘッドが私が送信している8バイトのパケットを矮小化するので、劇的にUDPの使用に恩恵を受けるでしょう。私はICMPメッセージヘッダーに自分のデータを直接入れることも考えました。ただし、これはロードバランサでサポートされていません。

Azure仮想マシンでpingを有効にしてからpingを実行できることがわかっています - http://weblogs.thinktecture.com/cweyer/2010/12/enabling-ping-aka-icmp-on-windows-azure-roles.html

Azure VMアドレスのIPアドレスとポートを単に渡すTCPベースのサービス(ロードバランサを通じて公開されている)を使用できないことがありますか?ワーカーがシャットダウンまたは移動した場合、アプリケーションはスマートになり、TCPエンドポイントに再接続してデータを送信するための新しい場所を要求します。

このコンセプトは機能しますか、このような直接アクセスを防止するための手段がありますか?

答えて

3

入力(外部)エンドポイントを公開し、サービスの内部エンドポイント(同じ役割または別のエンドポイント)にルーティングする独自のルータを実行する必要があります(これは実際にリモートデスクトップの仕組みです) 。選択して特定のインスタンスに直接接続することはできません。

BenjaminGuinebertièreの2部構成のブログシリーズで、スティッキセッション(part 1part 2)を提供するIISアプリケーションリクエストルーティングについて説明しています。これは良い出発点かもしれません。

Ryan Dunnも、クラウド・カバー・ショーのhttpセッション・ルーティングについて、blog postと一緒に話しました。

私は、これらの2つの例がhttpをルーティングしているので、あなたがやっていることとまったく同じではないことを認識していますが、それらは同じ前提を共有しています。

+0

役割は、外部からアクセス可能なIPアドレスを持っていませんか? –

+0

IOW、ロードバランサがUDPをサポートしていなくても、何とかUDPポートを開いて接続することはできますか? (負荷が均衡していなくても) –

+1

Windows Azure Connectを使用しないとUDPはサポートされません。 1)ソケットフォワーダを書く(私のブログの例を参照してください)、2)ARRを使用してください - HTTPのために良い選択、または3)Windows Azure Connectを使用してください。ただし、最後の例だけがUDPをサポートします。 UDPがここの唯一の目標であれば、それが今日の唯一の選択です。 – dunnry

0

InstanceInputEndpointと呼ばれることがあり、特定のVMインスタンスのローカルポートに向けられるパブリックIP上のポートを定義するために使用できます。つまり、特定のVMに直接アクセスできる特定のポート+ IPの組み合わせがあります。

<InstanceInputEndpoint name="HttpInstanceEndpoint" protocol="tcp" localPort="80"> 
    <AllocatePublicPortFrom> 
     <FixedPortRange max="8089" min="8081" /> 
    </AllocatePublicPortFrom> 
    </InstanceInputEndpoint> 

さらに詳しい情報: http://msdn.microsoft.com/en-us/library/windowsazure/gg557552.aspx

関連する問題