2015/02/10

エンドポイントのルール

エンドポイントは、仮想マシンに紐付く。
1つのエンドポイントは、複数の仮想マシンに紐付けることもできる。

■エンドポイントは2種類
スタンドアロン:vNet標準のNATでインターネットから着信したパケットを、仮想マシンにポートフォワーディングする用。
負荷分散:vNet標準の負荷分散セットで着信したパケットを、仮想マシンに負荷分散する用。厳密には、パブリック負荷分散と、内部負荷分散があるが、エンドポイントとしての働きは同じ。

===「スタンドアロン」か「負荷分散」かは、
Add-AzureEndpoint
で仮想マシンにエンドポイントを割り当てる時に決まってしまう。後から変更はできない。変更するには、Remove-AzureEndpoint でいったん削除してから、Add-AzureEndpoint を再度実行する。
-LBSetName (Load Balanced Set Name) オプションが指定されていないと「スタンドアロン」に。指定されていると「負荷分散」になる。

===「パブリック負荷分散」か「内部負荷分散」かは、
-LBSetName オプションが指定されたうえで、
-InternalLoadBalancerName オプションが指定されていないと「パブリック負荷分散」に。指定されていると「内部負荷分散」になる。


■骨格となるパラメータは4つ
Name(エンドポイント名):任意
Protocol:TCP or UDP
PublicPort:上述のNATか負荷分散セットにおける、着信ポート番号
LocalPort:このエンドポイントを設定する仮想マシンで受け付ける、着信ポート番号

※「負荷分散」の場合は、上記に加えてコレも骨格の1つ
LBSetName(負荷分散セット名):任意 今回設定するエンドポイントを、どの負荷分散セットに所属させるかが、ココで決まる。逆説的に言うと、指定されたPublicPortに着信したパケットは、同じ負荷分散セット名に所属しているエンドポイント宛てに負荷分散される。
どのLBSetNameに、どのエンドポイント名が所属しているかは、
===例:Cloud Service Name が web、LBSetName が LBset の場合
> get-azurevm -ServiceName web | Get-AzureEndpoint | Where-Object {$_.LBSetName -eq "LBset"}
=
もしくは、
https://portal.azure.com
の中で確認できる。

■ルール
仮想マシンごとに・・・
エンドポイント名の重複はNG
ProtocolとPublicPortの対、の重複はNG
ProtocolとLocalPortの対、の重複はNG

例えば、
PublicPortで、TCP:80 を着信するエンドポイントは、1つの仮想マシンに1つまで設定できる。
同様に、LocalPortで、TCP:80 を着信するエンドポイントは、1つの仮想マシンに1つまで設定できる。



#EndPoint、LoadBalancer



負荷分散、まとめ
http://taleofazure.blogspot.jp/2015/03/blog-post_4.html