Azure サブスクリプション間のリソース移動を行う際は Standard SKU パブリック IP アドレスの関連付けの再設定が必要になる
いわさです。
先日 Azure サブスクリプション間でリソース移動を行う際にどのリソースが移行可能か机上でチェックする方法や、実際に移行する手順を紹介しました。
その中で、おそらく最も多いワークロード構成である「Azure Virtual Machine + VNET」のサブスクリプション間移動を試してみたのですが検証チェックに失敗しました。
ワークロードのダウンタイム無しで移行できるだろうと思っていたのですが、私の場合は結果としてダウンタイムが発生したので、注意点と対処方法について紹介します。
仮想マシンを作成し、別のサブスクリプションへ移行してみる
次のように新しいリソースグループに新規仮想マシン(Windows Server 2022)を作成しました。
仮想マシンに必要なネットワークやディスクも作成しており、仮想マシンはパブリック IP アドレスをアタッチしてリモートデスクトップができる状態です。
この構成で、サブスクリプション間のリソース移動によってダウンタイムが発生するのかどうかを検証してみたいと思います。
事前に Windows Server へリモートデスクトップ接続し、1秒ごとにカウントを刻むようなスクリプトを実行しておきます。リモートデスクトップの接続の様子や、このスクリプトの実行の様子を観察してみます。
リソースグループの「移動」機能から別のサブスクリプションへの移動を開始します。
検証を開始したところ、エラーになりました。
どうやらパブリック IP アドレスのリソース移動がサポートされていないとのこと。
ただし、Azure リソースタイプごとのサブスクリプション間移動可否情報を確認してみると、パブリック IP アドレスは移動できるリソースとして説明されています。
Azure resource types for move operations - Azure Resource Manager | Microsoft Learn より
パブリック IP アドレスにガイダンスのリンクが表示されていますが確認してみると以下が記載されています。
When you move a resource, you must also move its dependent networking resources. However, you can't move across subscriptions any resource associated with a Standard SKU public IP address.
To move a virtual machine with a network interface card to a new subscription, you must move all dependent resources. Move the virtual network for the network interface card, and all other network interface cards for the virtual network. If a virtual machine is associated with a Standard SKU public IP address, disassociate the public IP address before moving across subscriptions.
なんと。Standard SKU パブリック IP アドレスが関連づいている場合リソース移動が出来ないので関連付けを解除する必要があるようです。
つまり外部からパブリック IP アドレスを使っている場合はダウンタイムが発生するということになります。
ちなみに Basic SKU は 2025 年 9 月 30 日に廃止されるのでここでは考慮をしません。
パブリック IP アドレスの関連付けを解除して移動する
ではドキュメントに従って関連付けを解除してみましょう。
パブリック IP アドレスのメニューから「関連付けの解除」を実施します。
リモートデスクトップ接続ができなくなりましたね。そりゃそうだ。
再び Azure リソースの移動検証を行ってみると...
今度は成功しました。しかもパブリック IP アドレスも検証に成功しています。
どうやら関連付けがあると移動が出来ないだけで、パブリック IP アドレスやその他のリソースの移動が出来ないというわけではないようです。
このままリソース移動をしてしまいましょう。
しばらく待つと移動に成功しました。今回のこれらのリソースグループの内容で 5 分くらいかな。
新しいサブスクリプションにリソースが移動できたら、パブリック IP アドレスを確認しましょう。
サブスクリプションを移動しても Standard SKU のパブリック IP アドレスの内容は変わらないですね。
ということで、パブリック IP アドレスを仮想マシンに再び関連付けしましょう。
接続が失われ待機中だったリモートデスクトップアプリケーションが再接続されました。
カウンターが更新され続けていましたね。中断した時のカウントが500くらいだったので500秒ちょっとで復旧した感じです。
さいごに
本日は Azure サブスクリプション間のリソース移動を行う際は Standard SKU パブリック IP アドレスの関連付けの再設定が必要になったので、検証結果を共有しました。
次回検証しようと思っていますが、Standard SKU ロードバランサーもダメみたいで、机上チェックで移行できそうだなと思っても意外に検証失敗するケース多そうですね。パブリック IP アドレス付きの IP アドレスって普通にあるので...
ちなみにパブリック IP アドレスをそもそも関連付けしていない仮想マシンであれば問題なく検証成功しましたので、パブリック IP アドレス関連付けだけ注意が必要ですね。