次の方法で共有


Azure App Service でアプリをバックアップおよび復元する

重要

2028 年 3 月 31 日より、Azure App Service のカスタム バックアップでは、リンクされたデータベースのバックアップはサポートされなくなります。 詳細については、「 リンクされたデータベース バックアップの非推奨化 」を参照してください。

Azure App Service では、アプリのバックアップを簡単に復元できます。 オンデマンドでカスタム バックアップを作成することや、スケジュールされたカスタム バックアップを構成することもできます。 既存のアプリを上書きするか、新しいアプリまたはスロットに復元することで、バックアップを復元できます。 この記事では、バックアップを復元する方法とカスタム バックアップを作成する方法について説明します。

バックアップと復元は、Basic、Standard、Premium、Isolated のレベルでサポートされています。 Basic レベルでは、運用スロットのバックアップと復元のみが可能です。 上位レベルを使用するための App Service プランの拡張の詳細については、 Azure でのアプリのスケールアップに関するページを参照してください。

自動バックアップとカスタム バックアップ

App Service には、2 種類のバックアップがあります。 アプリがサポートされている価格レベルにある場合は、自動バックアップが定期的に作成されます。 カスタム バックアップは、初期構成が必要であり、オンデマンドで、またはスケジュールに基づいて実行できます。 次の表は、2 つの種類の違いを示しています。

特徴 自動バックアップ カスタム バックアップ
価格レベル Basic、Standard、Premium、Isolated。 Basic、Standard、Premium、Isolated。
構成が必要 いいえ はい。
バックアップ サイズ 30 GB。 10 GB。このうちの 4 GB はリンクされたデータベースにすることができます。
リンクされたデータベース バックアップされません。 2028 年 3 月 31 日より、Azure App Service のカスタム バックアップでは、リンクされたデータベースのバックアップはサポートされなくなります。

次のリンクされたデータベースをバックアップできます: SQL DatabaseAzure Database for MySQLAzure Database for PostgreSQLアプリ内 MySQL。 Azure DB for MySQL - フレキシブル サーバーと Azure DB for PostgreSQL - フレキシブル サーバーは、カスタム バックアップではサポートされていないことに注意してください。
ストレージ アカウントが必要かどうか いいえ はい。
バックアップ頻度 1 時間に 1 回 (構成不可)。 構成可能 (最小 2 時間ごと、1 日あたり最大 12 個のバックアップ (手動 + スケジュール済み))。
保持 30 日間 (構成不可)。

1 日から 3 日: 1 時間ごとのバックアップが保持されます。

4 日から 14 日: 3 時間ごとのバックアップが保持されます。

15 日から 30 日: 6 時間ごとのバックアップが保持されます。
0 から 30日間または無期限。
ダウンロード可能 いいえ Azure Storage BLOB として可能。
部分バックアップ サポートされていません。 サポート対象。
仮想ネットワーク経由でバックアップする サポートされていません。 サポート対象。

バックアップを復元する

App Service は、バックアップの復元中にターゲット アプリやターゲット スロットを停止します。 運用アプリのダウンタイムを最小限に抑えるには、最初に デプロイ スロット にバックアップを復元してから、運用環境に スワップ します。

  1. Azure portal のアプリ管理ウィンドウで、左側のメニューで [バックアップ] を選択します。 [ バックアップ] ページには、アプリのすべての自動バックアップとカスタム バックアップが一覧表示され、それぞれの状態が表示されます。

    バックアップ ページを開く方法を示すスクリーンショット。

  2. 復元する自動バックアップまたはカスタム バックアップを選択します。 その 復元 リンクを選択します。

  3. [バックアップの詳細] セクションは自動的に記入されます。

  4. [Choose a destination] (復元先の選択) で復元先を指定します。 新しいアプリに復元するには、[App Service] ボックスで [新規作成] を選択します。 新しいデプロイ スロットに復元するには、[デプロイ スロット] ボックスで [新規作成] を選択します。

    既存のスロットを選択すると、そのファイル システム内の既存のすべてのデータが消去され、上書きされます。 運用スロットの名前はアプリ名と同じです。

  5. [詳細オプション] でサイト構成を復元できます。

  6. [復元] を選択します。

カスタム バックアップを作成する

  1. Azure portal でアプリ管理ウィンドウに移動します。 左側のメニューで、[バックアップ] を選択 します

  2. [バックアップ] ページの上部にある [カスタム バックアップの構成] を選択します。

  3. ストレージ アカウントで、同じサブスクリプション内の既存のストレージ アカウントを選択するか、[新規作成] を選択します。 コンテナーで繰り返します。

    リンクされたデータベースをバックアップするには、[次: 詳細設定]>[データベースを含める] を選択し、バックアップするデータベースを選択します。

    サポートされているデータベースは、アプリの [構成] ページの [接続文字列] セクションに接続文字列が存在する場合にのみ、この一覧に表示されます。

    アプリ内 MySQL データベースは、構成しなくても常にバックアップされます。 接続文字列の追加など、アプリ内 MySQL データベースの設定を手動で作成すると、バックアップが正しく機能しない可能性があります。

  4. [構成] をクリックします。

    ストレージ アカウントとコンテナーを構成したら、いつでもオンデマンド バックアップを開始できます。 オンデマンド バックアップは無期限に保持されます。

  5. [ バックアップ ] ウィンドウの上部にある [ 今すぐバックアップ] を選択します。

    カスタム バックアップは、進行状況インジケーターと共に一覧に表示されます。 エラーで失敗した場合は、行項目を選択してエラー メッセージを表示できます。

スケジュールされたカスタム バックアップを構成する

  1. [ カスタム バックアップの構成 ] ウィンドウで、[ スケジュールの設定] を選択します。

  2. 必要に応じてバックアップのスケジュールを構成してから、[構成] を選択します。

リンクされたデータベースのバックアップと復元する

App Service 用のリンクされたデータベースを使用したカスタム バックアップでは、Azure Database for MySQL と PostgreSQL の単一サーバー層のみがサポートされます。 単一サーバー層は廃止されるため、リンクされたデータベースをフレキシブル サーバーにアップグレードすると、バックアップが失敗する可能性があります。 ネイティブ データベース バックアップ ツールを使用して、データ損失を防ぎます。 スタンドアロンの MySQL サーバーと PostgreSQL サーバー (VM 上など) は、単一サーバー層の廃止の影響を受けません。 廃止の詳細については、「MySQL 単一サーバーの廃止」と「PostgreSQL 単一サーバーの廃止」をご覧ください。

フレキシブル サーバーのバックアップと復元については、それぞれのデータベースのドキュメントを参照してください。

カスタム バックアップには、リンクされたデータベースを含めることができます (Azure Virtual Network 経由でバックアップが構成されている場合を除く)。 バックアップにリンクされたデータベースが含まれていることを確認するには、次の手順を実行します。

  1. リンクされたデータベースがサポートされていることを確認します。
  2. データベースを指す接続文字列を作成します。 データベースは、アプリの構成に有効な接続文字列がある場合、アプリに "リンクされている" と見なされます。
  3. カスタム バックアップを作成する」の手順に従って、[詳細設定] タブでリンクされたデータベースを選択します。

カスタム バックアップに含まれるデータベースを復元するには:

  1. バックアップの復元」の手順に従います。
  2. [詳細オプション] で、[データベースを含める] を選択します。

トラブルシューティング情報については、「リンクされたデータベースがバックアップされないのはなぜですか?」を参照してください。

リンクされたデータベース バックアップの廃止

2028 年 3 月 31 日より、Azure App Service のカスタム バックアップでは、リンクされたデータベースのバックアップはサポートされなくなります。 代わりに、各データベース サービスによって提供されるネイティブバックアップおよび復元ツールを使用することをお勧めします。 ユーザーがこの変更に備えるために、App Service チームは、次のスケジュールに従って、 リンクされたデータベースを 新しいカスタム バックアップ構成に含めるオプションを削除します。

  • 2025 年 11 月 – リンクされた MySQL および PostgreSQL データベースの削除
  • 2026 年 4 月 – リンクされた Azure SQL データベースと SQL Server データベースの削除 リンクされたデータベースが既に含まれているカスタム バックアップは、2028 年 3 月 31 日までこれらのデータベースをバックアップし続け、その後、リンクされたデータベースは含まれなくなります。

Azure Virtual Network 経由でのバックアップと復元

カスタム バックアップでは、次の要件が満たされている場合に、アプリのファイルと構成データをファイアウォールで保護されたストレージ アカウントにバックアップできます。

Azure Virtual Network 経由でのバックアップと復元には:

  1. カスタム バックアップを構成するとき、[仮想ネットワーク統合経由のバックアップ/復元] を選択します。
  2. [ 構成] を 選択して設定を保存します。

デプロイ スロットの仮想ネットワーク経由でバックアップ/復元を有効にするには、スロットごとに必要な手順を実行します。

  • デプロイ スロットに対して仮想ネットワーク統合が有効になっているか、スロットが v3 App Service Environment 内にあります。
  • デプロイ スロットに対して、仮想ネットワーク統合経由のバックアップ/復元のオプションが選択されています。

チェックボックスが表示されない場合、またはチェックボックスが無効になっている場合は、リソースが要件を満たしていることを確認します。

構成が保存されると、手動バックアップ、スケジュールされたバックアップ、または復元が仮想ネットワーク経由で行われます。 アプリ、仮想ネットワーク、またはストレージ アカウントを変更し、アプリが仮想ネットワーク経由でストレージ アカウントにアクセスできないようにすると、バックアップまたは復元の操作は失敗します。

部分バックアップを構成する

部分バックアップはカスタム バックアップではサポートされますが、自動バックアップではサポートされません。 アプリのすべてをバックアップしたくない場合があります。 次に例をいくつか示します。

  • 変更されない静的コンテンツ (古いブログ投稿や画像など) を含むアプリの 毎週のバックアップを設定 します。
  • アプリには 10 GB を超えるコンテンツがあります (一度にバックアップできる最大量です)。
  • ログ ファイルはバックアップしない。

今後のバックアップで保存する対象からフォルダーとファイルを除外するには、アプリの _backup.filter内に %HOME%\site\wwwroot ファイルを作成します。 このファイルに、除外するファイルやフォルダーの一覧を指定します。

ヒント

ファイルにアクセスするには、https://<app-name>.scm.azurewebsites.net/DebugConsole に移動します。 メッセージに従って Azure アカウントにサインインします。

バックアップから除外するフォルダーを識別します。 たとえば、強調表示されたフォルダーおよびファイルを除外したいとします。

バックアップから除外するファイルとフォルダーを示すスクリーンショット。

_backup.filter という名前のファイルを作成し、前のリストをこのファイルに配置します。ただし、ルートの %HOME% は削除します。 1 つのディレクトリまたはファイルを 1 行に配置します。 ファイルの内容は次のようになります。

\site\wwwroot\Images\brand.png
\site\wwwroot\Images\2014
\site\wwwroot\Images\2013

この _backup.filter ファイルを、D:\home\site\wwwroot\ やその他の方法を使用して、サイトの ディレクトリにアップロードします。 Kudu の DebugConsole を使用してファイルを直接作成し、そこにコンテンツを挿入することもできます。

通常どおりバックアップを実行します。 カスタム オンデマンド または カスタム スケジュール_backup.filter に指定したファイルとフォルダーは、今後のバックアップから除外されます。

_backup.filter により、復元の動作方法が変更されます。 _backup.filter がない場合、バックアップを復元すると、アプリ内の既存のすべてのファイルが削除され、それらのファイルがバックアップ内のファイルに置き換えられます。 _backup.filterでは、_backup.filterに含まれるアプリのファイル システム内のすべてのコンテンツはそのまま残ります (削除されません)。

バックアップの保存方法

アプリのバックアップを 1 つ以上作成すると、ストレージ アカウントとアプリの [コンテナー] ページにバックアップが表示されます。 ストレージ アカウントでは、各バックアップは、バックアップ データを含む ZIP ファイルと、ZIP ファイルの内容のマニフェストを含む XML ファイルで構成されます。 バックアップにアクセスする場合は、これらのファイルを展開して参照できます。実際にアプリの復元を実行する必要はありません。

アプリのデータベースのバックアップは、.zip ファイルのルートに保存されます。 SQL Database の場合、これは BACPAC ファイルで (ファイル拡張子はありません)、インポートできます。 BACPAC エクスポートに基づいて Azure SQL Database にデータベースを作成するには、「 BACPAC ファイルをインポートして Azure SQL Database にデータベースを作成する」を参照してください。

警告

websitebackups コンテナー内のいずれかのファイルを変更すると、バックアップが無効になり、変更できなくなる可能性があります。

エラー メッセージ

[バックアップ] ページには、各バックアップの状態が表示されます。 失敗したバックアップに関するログの詳細を取得するには、一覧で行項目を選択します。 次の表を使用すると、バックアップのトラブルシューティングを行うのに役立ちます。 エラーが表に記載されていない場合は、サポート チケットを開いてください。

エラー 修正
ストレージ アクセスに失敗しました。 バックアップ スケジュールを削除して再構成するか、バックアップ ストレージを再構成します。
Web サイトとデータベースのサイズが、バックアップの {0} GB の制限を超えています。 お使いのコンテンツ サイズは {1} GB です。 バックアップから一部のファイルを除外するか、バックアップのデータベース部分を削除して、代わりに外部提供のバックアップを使用します。
データベース {0} にサーバー {1} で接続中にエラーが発生しました。ユーザー {1} のホスト \<username> に対する認証がメソッド mysql_native_password を使用して失敗しました。不明なデータベース \<db-name> というメッセージが表示されます。 データベース接続文字列を更新します。
{0} を解決できません。 {1} (CannotResolveStorageAccount) バックアップ スケジュールを削除して再構成します。
ユーザー {0} はログインできませんでした。 データベース接続文字列を更新します。
{0} ({1}) のデータベース コピーの作成中に例外が発生しました。 データベース コピーを作成できませんでした。 接続文字列の中で管理ユーザーを使用します。
サーバー プリンシパル "\<name>" は、現在のセキュリティ コンテキストでデータベース "master" にアクセスできません。 このログインで要求されたデータベース "master" を開けません。 ログインに失敗しました。 ユーザー \<name> はログインできませんでした。 接続文字列の中で管理ユーザーを使用します。
SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。 サーバーが見つからないかアクセスできません。 インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)。 接続文字列が有効であることを確認します。 データベース サーバーの設定で、アプリの送信 IP を許可します。
ログインによって要求されたサーバー "\<name>" を開くことができません。 ログインに失敗しました。 接続文字列が有効であることを確認します。
有効な Shared Access Signature で必須のパラメーターがありません。 バックアップ スケジュールを削除して再構成します。
SSL 接続が必要です。 Specify SSL options and retry when trying to connect. (接続を試みるときに、SSL オプションを指定して再試行してください。) Azure Database for MySQL と Azure Database for PostgreSQL への SSL 接続は、データベース バックアップではサポートされていません。 代わりに、それぞれのデータベースでネイティブのバックアップ機能を使用してください。

App Service Environment でのバックアップと復元のしくみ

  • 自動バックアップは、別の App Service Environment ではなく、同じ App Service Environment 内のターゲット アプリに復元できます。
  • カスタム バックアップは、App Service Environment v2 から App Service Environment v3 へなど、別の App Service Environment 内のターゲット アプリに復元できます。
  • バックアップは、ソース アプリと同じ OS プラットフォームのターゲット アプリに復元できます。

スクリプトで自動化する

Azure CLI または Azure PowerShell を使用して、スクリプトを使用してバックアップ管理を自動化できます。

サンプルについては、以下を参照してください。

よく寄せられる質問

バックアップは増分更新ですか、または完全バックアップですか?

各バックアップは増分更新ではなく、アプリの完全なオフライン コピーです。

Azure Functions は自動バックアップをサポートしていますか?

自動バックアップは、 専用 (App Service) Basic、Standard、Premium レベルの Azure Functions で使用できます。 従量課金レベルまたは Elastic Premium 価格レベルの関数アプリでは、自動バックアップはサポートされていません。

自動バックアップには何が含まれますか?

次の表は、自動バックアップでバックアップされるコンテンツを示しています。

コンテンツ 復元されましたか?
Windows アプリ: %HOME% ディレクトリ内のすべてのアプリ コンテンツ。
Linux アプリ: /home ディレクトリ内のすべてのアプリ コンテンツ。
カスタム コンテナー (Windows および Linux): 永続ストレージ内のコンテンツ。
はい
ZIP から実行パッケージの内容。 いいえ
Azure Files 共有などカスタム マウントされた Azure ストレージからの、何らかのコンテンツ。 いいえ

次の表は、アプリ構成の復元を選択したときに復元されるアプリ構成を示しています。

設定 復元されましたか?
ネイティブ ログ設定 (Azure ストレージ アカウントとコンテナーの設定を含む) はい
Application Insights の構成 はい
健康診断 はい
プライベート エンドポイントハイブリッド接続仮想ネットワーク統合などのネットワーク機能 いいえ
認証 いいえ
マネージド ID いいえ
カスタム ドメイン いいえ
TLS/SSL いいえ
スケールアウト いいえ
Azure Monitor を使用する診断 いいえ
アラートとメトリック いいえ
バックアップ いいえ
関連付けられたデプロイ スロット いいえ
カスタム バックアップでサポートされるリンクされたデータベース いいえ

カスタム バックアップには何が含まれますか?

カスタム バックアップ (オンデマンド バックアップまたはスケジュールされたバックアップ) には、自動バックアップに含まれるすべてのコンテンツと構成、およびリンクされたデータベースが、許容最大サイズまで含まれます。

各バックアップには、バックアップ データを含む .zip ファイルと、 カスタム ドメインを含むコンテンツを一覧表示する .xml ファイル {siteName}-{dateTime}.xmlが含まれています。 カスタム バックアップを復元すると、DNS 競合が存在しない場合 (つまり、バインドに使用できるドメイン)、.xml ファイルからカスタム ドメインが宛先アプリに追加されます。また、ターゲット アプリに .xml ファイルのカスタム ドメイン リストとは異なるカスタム ドメインがある場合は、それらのカスタム ドメインが削除されます。

Azure Virtual Network 経由でバックアップするとき、リンクされたデータベースはバックアップできません。

リンクされたデータベースがバックアップされないのはなぜですか?

App Service 用のリンクされたデータベースを使用したカスタム バックアップでは、Azure Database for MySQL と PostgreSQL の単一サーバー層のみがサポートされます。 単一サーバー層は廃止されるため、リンクされたデータベースをフレキシブル サーバーにアップグレードすると、バックアップが失敗する可能性があります。 ネイティブ データベース バックアップ ツールを使用して、データ損失を防ぎます。 スタンドアロンの MySQL サーバーと PostgreSQL サーバー (VM 上など) は、単一サーバー層の廃止の影響を受けません。 廃止の詳細については、「MySQL 単一サーバーの廃止」と「PostgreSQL 単一サーバーの廃止」をご覧ください。

フレキシブル サーバーのバックアップと復元については、それぞれのデータベースのドキュメントを参照してください。

リンクされたデータベースは、カスタム バックアップでのみバックアップされ、許容最大サイズまでバックアップされます。 最大バックアップ サイズ (10 GB) または最大データベース サイズ (4 GB) を超えた場合、バックアップは失敗します。 リンクされたデータベースがバックアップされない一般的な理由を次に示します。

  • TLS が有効になっている Azure Database for MySQL のバックアップはサポートされていません。 バックアップが構成されている場合、バックアップ エラーが発生します。
  • TLS が有効になっている Azure Database for PostgreSQL のバックアップはサポートされていません。 バックアップが構成されている場合、バックアップ エラーが発生します。
  • アプリ内 MySQL データベースは、構成しなくても自動的にバックアップされます。 接続文字列を追加するなど、アプリ内 MySQL データベースを手動で設定すると、バックアップが正しく動作しない場合があります。

バックアップ サイズが許容最大値を超えた場合はどうなりますか?

バックアップ サイズが最大サイズを超えた場合、自動バックアップは復元できません。 同様に、最大バックアップ サイズまたは最大データベース サイズを超えると、カスタム バックアップは失敗します。 ストレージ サイズを削減するために、ログ、画像、オーディオ、ビデオなどのファイルを、たとえば Azure Storage に移動することを検討してください。

セキュリティ機能が有効になっているストレージ アカウントを使用できますか?

アプリと同じ仮想ネットワーク トポロジに含まれている場合、ファイアウォールで保護されているストレージ アカウントにバックアップできます。 「Azure Virtual Network 経由でのバックアップと復元」をご覧ください。

異なるサブスクリプションにアプリを復元するにはどうすればよいですか?

  1. ソース アプリのカスタム バックアップを Azure Storage コンテナーに作成します。
  2. バックアップ ZIP ファイル と XML メタデータ ファイルをローカル コンピューターにダウンロードします。
  3. ZIP ファイルと XML ファイルの両方をターゲット ストレージ アカウントにアップロードします。
  4. ターゲット アプリの [バックアップ ] ページで、上部のメニューの [ 復元 ] をクリックします。
  5. [ バックアップの詳細 ] セクションで、[ソース] として [ストレージ ] を選択 します。 バックアップ ファイルをアップロードした ストレージ アカウント を選択します。
  6. [ ストレージ アカウントでファイルを使用 ] をクリックし、復元する ZIP ファイル を選択します。
  7. バックアップの復元に関する説明に従って、残りの設定 を構成します。 復元プロセスを確認して開始します。

同じサブスクリプション内でも別のリージョンにあるアプリにどのように復元したらよいですか?

同じサブスクリプション内の別のリージョンにアプリを復元できます。 このプロセスは、「 バックアップの復元」で説明されているのと同じ手順に従います。 ソース アプリのバックアップ ストレージにターゲット アプリからアクセスできることを確認します。 Azure portal の復元プロセスでは、同じサブスクリプション内に残っている限り、別のリージョンのアプリを選択できます。

自動バックアップの保存場所

自動バックアップは、App Service と同じデータセンターに格納されます。 ディザスター リカバリー計画として自動バックアップに依存することはお勧めしません。

自動バックアップの停止方法

自動バックアップは停止できません。 自動バックアップはプラットフォームに保存され、基になるアプリ インスタンスやそのストレージには影響がありません。