基本的に App Service の Inbound と Outbound IP Address はスケーリングによって変化しないものだと理解していましたが、ドキュメントを読むと Outbound IP に関しては変化することがあるらしいです。
以下のドキュメントに Outbound IP Address が変化するタイミングが記載されています。
曰く、新しい Premium V2 とそれ以外のサイズ間で切り替えを行うと、Outbound IP が変わるようです。
The set of outbound IP addresses for your app changes when you scale your app between the lower tiers (Basic, Standard, and Premium) and the Premium V2 tier.
変わらないと思っていたので、ちゃんと調べてみることにしました。
実際に Premium V2 な App Service を用意して確認してみました。基本的に全て Windows で確認をしています。まずは S1 なインスタンスを立ち上げて Outbound IP を確認しました。
大体の Service Plan で使われる Outbound IP は 4 つですね。
これを Premium V2 にスケールアップすると、以下のように Outbound IP が全て切り替わりました。
ファイヤーウォールなどに接続元の IP として App Service の Outbound IP を登録している場合には、プランを切り替えることで問題が発生しそうです。
なので、予め割り当てられる可能性のある IP Address を登録しておけば、こういった問題は防げます。Azure Portal からは確認できませんが、ARM Explorer を使うと可能性のある IP Address 一覧を確認できます。
数は多くなりますが、後からスケールアップを行う可能性があれば、安全側に倒しておいた方が良さそうです。Premium V2 内での切り替えや、S1 から B1 への切り替えなどでは Outbound IP は変化しません。
今の App Service では Premium V2 が使える Service Plan と使えない Service Plan が混在しています。
Premium V2 が使える Service Plan は今回紹介したとおりの挙動になりますが、使えない Service Plan の場合は outboundIpAddresses と possibleOutboundIpAddresses の値は同じになります。
IP 制限などが必要な場合には possibleOutboundIpAddresses の値を使うようにすれば安全ですね。