LoginSignup
0
0

Azure Load BalancerとAzure VMのパブリックIPリプレイス

Last updated at Posted at 2024-06-04

概要

AzureのBasic SKUのパブリックIPが2025年09月30日に廃止されるとマイクロソフトから2022年10月にアナウンスがありました。

2024060401.jpg

このEOLに対応するため、Basic SKUのバブリックIPが関連付けられた社内のAzureリソースを調査した所、Azure Load BalancerAzure 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およびPublic 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>

以下のエラーが表示された場合は、バックエンドプールに仮想マシンを追加するか、インバウンドNAT規則に設定されている規則を一時的に削除するかで解消されます。また、バックエンドプールに仮想マシンを追加する場合は「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に切り替える場合の手順は以下の通りです。

ダウンタイムが発生するため、必ずステイクホルダーと合意の上、メンテナンス時間を設けて作業してください。

  • Public IPのSKUがBasic SKUからStandard SKUにアップグレードされるため、コストが上昇します。
  • ネットワークインターフェイスに異なるSKUのパブリックIPを複数アタッチできません。
  • 実行中のAzure VMに対してネットワークインターフェイスのアタッチ・デタッチはできません。

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>

6. Azure VMを起動

az vm start \
    --name <VM_NAME> \
    --resource-group <RESOURCE_GROUP_NAME>

7. 動作確認

インフラ側、またはアプリケーション側の観点で動作確認を実施。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0