概要
AzureのBasic SKUのパブリックIPが2025年09月30日に廃止されるとマイクロソフトから2022年10月にアナウンスがありました。
このEOLに対応するため、Basic SKUのバブリックIPが関連付けられた社内のAzureリソースを調査した所、Azure Load BalancerとAzure VMが関連づけられており、Standard SKUのバブリックIPへのリプレイスが必要という事が判明しました。
本件に対応するため、PowerShell、またはAzure CLI(azコマンド)を用いたStandard SKUのパブリックIPをリプレースする手順をご紹介します。
前提
- PowerShell、またはAzure CLI(azコマンド)を使用するため、自身の環境でセットアップしてください。
- 記載しているコマンドと既存リソースに差異がある場合はコマンド or オプションを適宜変更してください。
Azure Load Balancer
Azure Load BalancerでパブリックIPをBasic SKUからStandard SKUに切り替える場合の手順は以下の通りです。
ダウンタイムが発生するため、必ずステイクホルダーと合意の上、メンテナンス時間を設けて作業してください。
- Azure Load BalancerおよびパブリックIPのSKUがBasic SKUからStandard SKUにアップグレードされるため、コストが上昇します。
- ダウンタイムは1分程度(リソースによって異なる可能性あり)
- アップグレードの完了時間は大体2-3分程度(リソースによって異なる可能性あり)
1. モジュールのインストール
Install-Module -Name AzureBasicLoadBalancerUpgrade -Scope CurrentUser -Repository PSGallery -Force
2. サブスクリプションへの接続
Connect-AzAccount -Subscription <SUBSCRIPTION_ID> -UseDeviceAuthentication
コマンドレットを実行すると、デバイス認証用のURLとコードが表示されます。ブラウザを開き、表示されたURLにアクセスします。表示されたコードを入力し、Azureアカウントでログインします。
3. アップグレード前のシナリオを検証
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <RESOURCE_GROUP_NAME> -BasicLoadBalancerName <LB_NAME> -validateScenarioOnly
以下の警告が表示された場合は、アップグレード実施後に「5. 送信規則の作成」の実行が必要になります。
基本ロード バランサー「<LB_NAME>」には複数のバックエンド プールがあり、外部です。移行によって、標準ロード バランサーにデフォルトの送信ルールは作成されません。移行後に手動でデフォルトの送信ルールを作成する必要があります。作成するまで、バックエンド プールのメンバーは送信インターネット アクセスを使用できません。
※Basic SKUのリソースでは、表示上存在していなかった項目です。上記はデフォルト値を指定しています。
4. アップグレード
Start-AzBasicLoadBalancerUpgrade -ResourceGroupName <RESOURCE_GROUP_NAME> -BasicLoadBalancerName <LB_NAME>
以下のエラーが表示された場合は、バックエンドプールにAzure VMを追加するか、インバウンドNAT規則に設定されている規則を一時的に削除するかで解消されます。また、バックエンドプールにAzure VMを追加する場合は「5. 送信規則の作成」の実行が必要になります。
Write-Error: YYYY-MM-DDThh:mm:ss+00 [Error]:[Test-SupportedMigrationScenario] Error comparing NIC backend pool memberships () to basicLBBackendIds ().
Error: Cannot bind argument to parameter 'DifferenceObject' because it is null.
5. 送信規則の作成
az network lb outbound-rule create \
--resource-group <RESOURCE_GROUP_NAME> \
--lb-name <LB_NAME> \
--name <OUTBOUND_RULE_NAME> \
--frontend-ip-configs <FRONTEND_IP_CONFIGS> \
--backend-address-pool <BACKEND_ADDRESS_POOL> \
--outbound-ports 10000 \
--allocated-outbound-ports 0 \
--protocol All \
--idle-timeout 4 \
--enable-tcp-reset true
Basic SKUのリソースでは、表示上存在していなかった項目です。上記のコマンドではデフォルト値を指定しています。
6. 動作確認
インフラ側、またはアプリケーション側の観点で動作確認を実施。
Azure VM
Azure VMでパブリックIPをBasic SKUからStandard SKUに切り替える場合の手順は以下の通りです。
ダウンタイムが発生するため、必ずステイクホルダーと合意の上、メンテナンス時間を設けて作業してください。
- パブリックIPのSKUがBasic SKUからStandard SKUにアップグレードされるため、コストが上昇します。
- ネットワークインターフェイスに異なるSKUのパブリックIPを複数アタッチできません。
- 実行中のAzure VMに対してネットワークインターフェイスのアタッチ・デタッチはできません。
- 複数台のAzure VMが可用性セットに登録されている場合は、全てのAzure VMのパブリックIP(Basic SKU)の関連付けを解除してください。
1. テナントへのログイン
az login --tenant <TENANT_NAME> (例: <テナント名>.onmicrosoft.com)
2. Azure VMを停止
az vm stop \
--name <VM_NAME> \
--resource-group <RESOURCE_GROUP_NAME>
3. 既存のパブリックIP(Basic SKU)の関連付けを解除
az network nic ip-config update \
--name <IPCONFIG_NAME> \
--nic-name <NIC_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--remove PublicIPAddress
4. パブリックIP(Standard SKU)をアップグレード
az network public-ip update \
--name <BASIC_PUBLIC_IP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allocation-method static \
--sku Standard
Basic SKUのパブリックIPの数だけ繰り返してください。
5. アップグレードしたパブリックIP(Standard SKU)をVMに関連付ける
az network nic ip-config update \
--name <IPCONFIG_NAME> \
--nic-name <NIC_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--public-ip-address <STANDARD_PUBLIC_IP_NAME>
複数台のAzure VMが可用性セットに登録されている場合は、全てのAzure VMのパブリックIP(Basic SKU)の関連付けを解除してください。関連付けを解除していない場合、エラーになります。
6. Azure VMを起動
az vm start \
--name <VM_NAME> \
--resource-group <RESOURCE_GROUP_NAME>
7. 動作確認
インフラ側、またはアプリケーション側の観点で動作確認を実施。