Azure App Service Premium v3からPremium v4へ移行できない原因とLinuxアプリの解決策(West Europe対応)

Azure App Service の Premium v3(P2v3)で動いている Linux Web アプリを Premium v4 に上げたいのに、ポータルの「スケールアップ」で v4 が選べない……。本記事では、その原因となる「デプロイメント ユニット(スケールユニット)」の仕組みと、West Europe / Linux 環境での具体的な移行手順、Linux で Clone app が使えない場合の現実的な対処方法まで、実運用を想定して詳しく解説します。

目次

問題の全体像:West Europe の P2v3 → Premium v4 に上げられない

まず、今回の前提条件を整理します。

項目現状理想(やりたいこと)
リージョンWest Europe同じく West Europe
App Service PlanPremium v3 P2v3Premium v4(例:P2v4)
OSLinux(コード/コンテナ)Linux のまま
操作「スケールアップ(App Service プランの変更)」Premium v4 SKU を選択したい
症状Premium v4 の SKU(P0v4〜)が表示されない、または選択できないポータルからシームレスに v4 へアップグレードしたい

結論から言うと、この状況では「同じ App Service Plan のまま Premium v3 → v4 へスケールアップすることはできません」。

理由は、現在の App Service Plan が属している「デプロイメント ユニット(スケールユニット / webspace)」が Premium v4 非対応だからです。Premium v4 はリージョン単位ではなく、「リージョン内の一部のデプロイメント ユニット」でのみ利用可能な SKU として提供されています。

なぜ Premium v4 が選べないのか:デプロイメント ユニット(webspace)の仕組み

Azure App Service は、同じリージョン内でも複数の「デプロイメント ユニット(webspace)」に分かれて運用されています。公式ドキュメントでは、次のようなポイントが説明されています。

  • App Service Plan は、作成されたリージョン内のいずれかのデプロイメント ユニットに割り当てられる。
  • 同じ リソース グループ + リージョン + OS 種別 の組み合わせで作成された App Service Plan は、同じデプロイメント ユニットに配置される。
  • 各デプロイメント ユニットがサポートする SKU は異なり、Premium v4 に対応していないユニットも存在する。

つまり、次のような関係になります。

状況意味するところ
スケールアップ画面に Premium v4 が出てこない/グレーアウトしているその App Service Plan が属するデプロイメント ユニットが Premium v4 をサポートしていない
同じ RG・リージョン・OS で新しいプランを作る同じデプロイメント ユニットに配置されるため、やはり Premium v4 にスケールアップできない
新しい RG で Premium v4 の App Service Plan を作るPremium v4 対応ユニットに乗る確率が高く、実際に v4 SKU を選択できる

この仕組みのため、「スケールアップ画面に Premium v4 がそもそも出てこない」場合は、その App Service Plan は構造的に Premium v4 に上げられない と判断できます。

Linux アプリと「Clone app」機能の現状

Windows アプリの場合、Azure ポータルの [開発ツール] > [Clone app] を使うことで、設定やスロット、証明書などをまとめて複製し、別の App Service Plan への移行をかなり楽にできます。

一方で、Linux アプリに対する Clone app のサポートは限定的で、Windows のようにフルサポートされていません。Microsoft Q&A でも、Windows では Clone app で対応できる一方、Linux の場合は「新しい App Service Plan を作って手動で構成をコピーする」ことが案内されており、Clone app の Linux 対応については公開された ETA は提示されていません(2025 年 9 月時点)。

項目Windows アプリLinux アプリ
Clone app のサポート状況ポータルから利用可能。構成・スロット・証明書などをまとめて複製可能。制限が多く、実運用では「手動移行(IaC / スクリプト等)」が前提。
Premium v3 → v4 移行時の使い勝手Clone app を使うことで、新しい Premium v4 プランへのコピーが比較的容易。同等のことを自前で再現する必要がある(設定コピー、スロット再作成など)。

したがって、Linux アプリの Premium v4 への移行は手動前提 と割り切り、移行時に人手でやるべきタスクを洗い出しておくことが重要です。

正しい解決策:Premium v4 対応ユニット上に新しい App Service Plan を作成する

ここまでの整理から、解決策は次の 1 パターンに収束します。

  • Premium v4 に対応しているデプロイメント ユニット上に、別の App Service Plan(Premium v4)を作成し、そこへアプリを移行する。

より具体的には、次のような流れになります。

  1. (推奨)新しいリソース グループを作成する。
  2. West Europe × Linux × Premium v4 で 新しい App Service Plan を作成する。
  3. そのプラン上に 新しい Web App(Linux) を作成する。
  4. アプリ設定・接続文字列・ネットワーク・証明書・カスタム ドメインなどを移行する。
  5. コード/コンテナ イメージをデプロイし、新環境で動作を検証する。
  6. DNS 切り替えや外部接続設定の更新を行い、本番トラフィックを新環境に寄せる。
  7. 問題がなければ旧環境を縮退・削除する(一定期間はロールバック用に残しておく)。

以降では、この一連の手順をもう少し掘り下げて解説します。

手順詳細:West Europe / Linux アプリを Premium v4 へ移行する

事前確認:Premium v4 がリージョンと SKU として利用可能か

まず、West Europe で Premium v4(Linux)がサポートされているかを確認します。Premium v4 自体は多くのリージョンで利用可能ですが、プレビュー → GA のフェーズで利用可能リージョンが徐々に拡大しているため、最新の情報を確認するのが安全です。

Azure CLI を使うと、Linux 向け Premium v4 の利用可能リージョンを確認できます。

# Linux 向け Premium v4(例:P1v4)の利用可能リージョン一覧
az appservice list-locations --linux-workers-enabled --sku P1V4

ここで West Europe が含まれていれば、Premium v4 自体はそのリージョンで使える、ということになります。

ステップ 1:新しいリソース グループを作成する

既存の App Service Plan と同じ リソース グループ + リージョン + OS で新規プランを作ると、同じデプロイメント ユニットに配置されて Premium v4 が使えない、という状況が再現されてしまいます。

そのため、新しいリソース グループを用意することが推奨されます。

az group create \
  --name rg-webapp-pv4-west-europe \
  --location westeurope

ステップ 2:Premium v4 の App Service Plan(Linux)を作成する

次に、新しいリソース グループ内で Premium v4 の App Service Plan を作成します。

az appservice plan create \
  --name asp-webapp-p2v4-linux \
  --resource-group rg-webapp-pv4-west-europe \
  --location westeurope \
  --sku P2V4 \
  --is-linux

このプランは Premium v4 対応のデプロイメント ユニット上に作成されるため、後から P2v4 以外の v4 SKU へのスケールアップ/スケールダウンも可能になります。

ステップ 3:新しい Web App(Linux)を作成する

新しい App Service Plan 上に、Linux Web App を作成します。ここではランタイム スタックは仮のものとし、後でコンテナやアプリをデプロイし直す想定です。

az webapp create \
  --name my-webapp-on-pv4 \
  --resource-group rg-webapp-pv4-west-europe \
  --plan asp-webapp-p2v4-linux \
  --runtime "PYTHON:3.12"

コンテナ利用の場合は、--deployment-container-image-name で既存イメージを指定して作成しても構いません。

ステップ 4:アプリ設定・構成項目を移行する

次に、旧環境の設定や構成を新環境へ移行します。Linux では Clone app でまとめて移行できないため、以下の観点で 1 つずつ移していきます。

項目具体例移行のポイント
アプリ設定 / 環境変数接続文字列、API キー、フラグ、バージョン設定などポータルの JSON エクスポート、または ARM/Bicep/Terraform から再利用するとヒューマンエラーを減らせる。
マネージド ID(システム / ユーザー割り当て)Key Vault、Storage、SQL などへのアクセス新 Web App でもマネージド ID を有効化し、必要なロール割り当て・アクセス ポリシーを追加し直す。
Key Vault 参照@Microsoft.KeyVault(SecretUri=...) 形式の設定新しいマネージド ID に対して Key Vault 側で権限を再付与する。
証明書・カスタム ドメイン独自ドメイン、SNI バインド、App Service 証明書新 Web App に再バインドが必要。場合によってはドメイン所有確認や Key Vault 連携の再承認が発生する。
デプロイ スロットstaging / blue-green 環境スロットは自動では移行されないため、新環境側で同名スロットを作成し、構成を同期する。
スケール設定自動スケール ルール、インスタンス数Premium v4 プラン側で、旧環境と同等のスケール設定を再作成する。
ネットワーク関連VNet 統合、アクセス制限、Private Endpoint、サービス エンドポイントなど新 Web App に対して再設定が必要。特に VNet 統合はサブネットの空き容量に注意。

IaC(ARM/Bicep/Terraform)やスクリプトで構成をコード化している場合は、テンプレートを Premium v4 向けに調整して再デプロイする方が安全で再現性も高くなります。

ステップ 5:コード/コンテナ イメージをデプロイして検証する

設定が移行できたら、新しい Web App に対してアプリをデプロイします。

  • コードベースの場合:GitHub Actions / Azure DevOps / Zip Deploy / Oryx など、既存パイプラインを新 Web App に向ける。
  • コンテナの場合:コンテナ レジストリ(ACR / Docker Hub など)に同じイメージを用意し、新 Web App 側からの Pull を確認する。

テスト環境を別 URL のまま用意しておけるのが、新規プラン移行の大きなメリットです。本番切り替え前に、次のような観点で十分に検証しましょう。

  • アプリの基本動作(主要な画面・API)
  • 外部サービス連携(DB、メッセージ キュー、外部 API 等)
  • 認証・認可(Entra ID / OpenID Connect / OAuth2 等)
  • ログ出力・監視(Application Insights, Log Analytics 等)

ステップ 6:DNS 切り替えと Outbound IP の考慮

新環境での動作に問題がなければ、本番トラフィックを新しい Premium v4 環境へ切り替えます。

DNS 切り替え

  • 事前に DNS レコード(CNAME / A / TXT)の TTL を短くしておくと、切り替え時のダウンタイムを最小化しやすくなります。
  • カスタム ドメインを新 Web App にバインドし、所有確認が必要な場合は TXT レコードを追加します。
  • 検証済みのところで、本番用の CNAME / A レコードを新 Web App に向けて切り替えます。

Outbound IP の変更と Premium v4 の仕様

App Service から外部サービス(ファイアウォールで IP 制限された DB や API など)へ接続している場合、Outbound IP の変更が大きな注意点になります。

  • 旧環境(Premium v3)と新環境(Premium v4)では、Outbound IP アドレスが異なります。
  • Premium v4 は仕様上、従来のような「安定した Outbound IP」を提供しません。ポータルでも Outbound IP は「Dynamic」と表示され、ARM/CLI からも固定値は返ってこない挙動になっています。
  • Premium v4 上のアプリで安定した送信元 IP が必要な場合は、Azure NAT Gateway を使って固定の Outbound IP を提供する構成が推奨されます。

外部サービス側で IP アドレスの許可リストや WAF 設定を行っている場合は、新環境の Outbound 経路(NAT Gateway を含む)を事前に許可しておくことが重要です。

ステップ 7:旧環境の縮退・削除

切り替え後、一定期間(数日〜数週間)は旧環境を残しておくと、問題発生時にロールバックしやすくなります。

  • 切り戻し方針(DNS を戻す、旧 Web App を再度有効化する等)をあらかじめ決めておく。
  • 問題がなければ、旧 Web App と旧 App Service Plan を順次削除し、ランニング コストを削減する。

この期間は Premium v3 と Premium v4 の両方に課金が発生するため、コストの二重化を許容する期間をあらかじめ決めておくと、予算管理上のトラブルを避けられます。

Azure ポータルで作業する場合のイメージ

Azure CLI ではなくポータルを使う場合の流れを、ざっくりと整理しておきます。

  1. [リソース グループ] で新しい RG を作成(例:rg-webapp-pv4-west-europe)。
  2. [App Service プラン] > [作成] から、Linux / West Europe / Premium v4 を選んで新プランを作成。
  3. [App Service] > [作成] で、新しい Web App(Linux)を作成し、上記の Premium v4 プランを指定。
  4. 旧 Web App の [構成]・[TLS/SSL 設定]・[カスタム ドメイン]・[ネットワーク] を参照しながら、新 Web App 側に同様の設定を再現。
  5. パイプラインや手動デプロイでコード/コンテナを新 Web App に配備。
  6. ステージング URL で検証後、DNS を切り替え。

Linux アプリでは、[開発ツール] > [Clone app] に頼らず、上記のような「新 Web App への構成コピー」を手作業または IaC で行うのが基本になります。

移行時にチェックすべきポイントと落とし穴

チェックリスト(抜け漏れ防止用)

チェック項目確認内容
リージョン / OS新旧ともに West Europe / Linux であることを確認。
Premium v4 利用可否スケールアップ画面で Premium v4 が選べる、または CLI でリージョンが対応していることを確認。
リソース グループPremium v4 プランは新しい RG に作成しているか。
アプリ設定・接続文字列すべて新 Web App にコピーされているか。機密情報は Key Vault 参照などで管理できているか。
マネージド ID新 Web App のマネージド ID に必要な RBAC / ポリシーが付与されているか。
Key Vault 参照参照エラーが出ていないか、シークレットのバージョン固定の有無を確認。
証明書・カスタム ドメインSNI バインドやドメイン検証が完了しているか。
デプロイ スロット必要なスロットが新環境に作成済みで、構成が同期されているか。
ネットワークVNet 統合、アクセス制限、Private Endpoint の設定が旧環境と同じ振る舞いになっているか。
Outbound IP外部サービスの IP 許可リストが、新しい経路(Premium v4 / NAT Gateway)に対応しているか。
監視・アラートApplication Insights / Log Analytics / アラート ルールが新 Web App にも適用されているか。

よくある落とし穴

  • コストの二重化 移行期間中は旧 P2v3 プランと新 Premium v4 プランの両方が課金対象になります。計画的に移行期間を決めずに進めると、想定以上のコストが発生することがあります。
  • Outbound IP の変更による接続エラー ファイアウォールや WAF、外部 DB / API の IP 許可リストを更新し忘れると、本番切り替え後にだけ接続エラーが出る、といった事象が起こります。Premium v4 は安定した Outbound IP を提供しないため、NAT Gateway などを併用する設計を検討してください。
  • 証明書の再バインド忘れ カスタム ドメインと TLS 設定を移し忘れると、HTTPS が無効になったり、証明書エラーが出たりします。特に App Service マネージド証明書や Key Vault にある証明書を使っている場合は、再承認が必要になるケースがあります。
  • スロットの移行を失念 staging スロットを前提にした運用フロー(blue-green デプロイなど)がある場合、新環境でも同じスロット構成を再現しないと、リリース プロセスが一時的に停止してしまいます。

FAQ:Premium v3 → v4 移行でよくある疑問

Q. 既存の App Service Plan を別のプランに移せば、Premium v4 が使えるようになりますか?

A. App Service Plan 自体は他のプランへ移動できません。移動できるのは「アプリ(Web App)」だけです。また、アプリを別プランへ移す場合も、同じリソース グループ・リージョン・OS の組み合わせでしか移動できず、結果的に同じデプロイメント ユニットの中でしか動かせません。Premium v4 非対応のユニットからは抜け出せないため、新しい RG に Premium v4 プランを作成して、そこへ移行するのが現実的な解となります。

Q. 一度 Premium v4 対応ユニットでプランを作れば、あとからスケールダウンしても大丈夫ですか?

A. はい。Premium v4 対応ユニット上に作成された App Service Plan であれば、必要に応じて一時的に別の SKU にスケールダウンし、後から再び Premium v4 へ戻すことができます。Microsoft の Q&A やドキュメントでも、「Premium v4 対応ユニットに乗せること」が重要で、その後のスケールアップ/ダウンは柔軟に行えると説明されています。

Q. Premium v4 にすると、パフォーマンス面でどんなメリットがありますか?

A. Premium v4 は、最新の Dadsv6 / Eadsv6 シリーズ VM と NVMe ベースの一時ディスクを採用しており、Premium v3 に比べて CPU・メモリ・ストレージ性能が大きく向上しています。Microsoft の公式アナウンスでは、従来の Premium v3 と比べて 25〜50% 程度の性能向上が期待できるとされています。 高負荷な Web アプリや API、コンテナベースのアプリでは、より少ないインスタンスで同等以上のスループットを得られる可能性があります。

Q. Linux 環境で Clone app がフル対応する予定はありますか?

A. 2025 年時点の公式な情報では、Windows アプリに比べて Linux アプリの Clone app 機能には制限があり、Microsoft Q&A でも Linux については「新規 Web App + App Service Plan を用意し、構成を手動でコピーする」ことが案内されています。 公開された明確な ETA は無いため、少なくとも現状の計画では「Linux は手動移行が前提」と捉えておくのが無難です。

まとめ:Premium v4 への移行は「ユニットを跨ぐ」ことが本質

Premium v3(P2v3)から Premium v4 へスケールアップできないのは、App Service Plan が属している デプロイメント ユニットが Premium v4 非対応 であることが根本原因です。この場合、同じプラン内でのスケールアップや、同じ RG・リージョン・OS で新プランを作るだけでは状況は変わりません。

本質的な解決策は、Premium v4 対応のデプロイメント ユニット上に新しい App Service Plan を作成し、アプリを移行することです。そのために:

  • 新しいリソース グループで Premium v4 プラン(Linux)を作成する。
  • 新プラン上に Web App を作成し、設定・証明書・ネットワーク・スロットを丁寧にコピーする。
  • コード/コンテナをデプロイして検証し、DNS と Outbound IP(NAT Gateway を含む)を適切に切り替える。

Linux アプリでは Clone app に頼れない分、手動移行の作業量は増えますが、その分「構成の棚卸し」と「IaC への落とし込み」を行う良い機会にもなります。Premium v4 の高いパフォーマンスとスケーラビリティを活かしつつ、堅牢で再現性の高いアプリ基盤へとアップグレードしていきましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次