注
Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールへの移行方法については、Migrate Azure PowerShell from AzureRM to Az を参照してください。
この記事では、既存の App Service アプリを複製して、別のリージョンまたは同じリージョンに新しいアプリを作成する方法について説明します。 さまざまなリージョンに複数のアプリを迅速かつ簡単にデプロイできます。
アプリの複製は、Standard レベル以上および Isolated レベルでサポートされています。 この機能には、App Service Backup 機能と同じ制限があります。 「Azure App Service でのアプリのバックアップ」を参照してください。
既存のアプリを複製する
シナリオ: 米国中南部リージョンの既存のアプリのコンテンツを、米国中北部リージョンの新しいアプリに複製する必要があります。 PowerShell コマンドレットの Azure Resource Manager バージョンを使用して、 -SourceWebApp
オプションを使用して新しいアプリを作成できます。
ソース アプリを含むリソース グループの名前がわかっている場合は、次の PowerShell コマンドを使用して、ソース アプリの情報 (この場合は source-webapp
) を取得できます。
$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp
新しい App Service プランを作成するには、次の例に示す New-AzAppServicePlan
コマンドを使用します。
New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard
New-AzWebApp
コマンドを使用すると、米国中北部リージョンに新しいアプリを作成し、既存の App Service プランに関連付けることができます。 さらに、ソース アプリと同じリソース グループを使用することも、新しいリソース グループを定義することもできます。 次のコマンドを参照してください。
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp
関連付けられているすべてのデプロイ スロットを含む既存のアプリを複製するには、 IncludeSourceWebAppSlots
パラメーターを使用する必要があります。 このパラメーターは、すべてのスロットを含むアプリ全体を複製する場合にのみサポートされます。 次の PowerShell コマンドは、 New-AzWebApp
コマンドでこのパラメーターを使用する方法を示しています。
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots
同じリージョン内に既存のアプリを複製するには、同じリージョンに新しいリソース グループと新しい App Service プランを作成します。 次に、次の PowerShell コマンドを使用してアプリを複製します。
$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp
既存のアプリを App Service Environment に複製する
シナリオ: 米国中南部リージョンの既存のアプリの内容を、既存の App Service Environment の新しいアプリに複製する必要があります。
ソース アプリを含むリソース グループの名前がわかっている場合は、次の PowerShell コマンドを使用して、ソース アプリの情報 (この場合は source-webapp
) を取得できます。
$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp
App Service Environment の名前と App Service Environment が属するリソース グループの名前を使用して、既存の App Service Environment に新しいアプリを作成できます。 このプロセスは、次のコマンドに示されています。
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp
Location
パラメーターは従来の理由で必要ですが、App Service Environment でアプリを作成する場合は無視されます。
既存のアプリ スロットを複製する
シナリオ: アプリの既存のデプロイ スロットを、新しいアプリまたは新しいスロットに複製する必要があります。 新しいアプリは、元のアプリ スロットと同じリージョンに配置することも、別のリージョンに配置することもできます。
ソース アプリを含むリソース グループの名前がわかっている場合は、次の PowerShell コマンドを使用して、source-appslot
に関連付けられているソース アプリ スロットの情報 (この場合は source-app
という名前) を取得できます。
$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot
次のコマンドは、ソース アプリの複製を新しいアプリに作成する方法を示しています。
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot
アプリの複製中に Traffic Manager を構成する
複数リージョンのアプリを作成し、これらのアプリにトラフィックをルーティングするように Azure Traffic Manager を構成する場合は、顧客アプリの可用性を高くすることをお勧めします。 既存のアプリを複製するときに、両方のアプリを新しい Traffic Manager プロファイルまたは既存のアプリに接続できます。 Azure Resource Manager バージョンの Traffic Manager のみがサポートされています。
アプリの複製中に新しい Traffic Manager プロファイルを作成する
シナリオ: 両方のアプリを含む Azure Resource Manager Traffic Manager プロファイルを構成しながら、アプリを別のリージョンに複製する必要があります。 次のコマンドは、新しい Traffic Manager プロファイルを構成するときに、ソース アプリの複製を新しいアプリに作成する方法を示しています。
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile
新しい複製されたアプリを既存の Traffic Manager プロファイルに追加する
シナリオ: Azure Resource Manager Traffic Manager プロファイルが既にあり、両方のアプリをエンドポイントとして追加する必要があります。 まず、既存の Traffic Manager プロファイル ID をアセンブルします。 サブスクリプション ID、リソース グループ名、および既存の Traffic Manager プロファイル名が必要です。
$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"
Traffic Manager ID を取得した後、次のコマンドは、既存の Traffic Manager プロファイルに追加しながら、ソース アプリの複製を新しいアプリに作成する方法を示しています。
$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID
注
Traffic Manager ホスト名の SSL 検証が失敗するというエラーが発生した場合は、複製操作の実行中に PowerShell コマンドレットで -IgnoreCustomHostNames
属性を使用することをお勧めします。 または、Azure portal を使用することもできます。
現在の制限事項
アプリ複製に関する既知の制限を次に示します。
- 自動スケール設定は複製されません。
- バックアップ スケジュールの設定は複製されません。
- 仮想ネットワーク設定は複製されません。
- Application Insights は、移行先アプリでは自動的に設定されません。
- 簡単な認証設定は複製されません。
- Kudu 拡張機能は複製されません。
- TiP ルールは複製されません。
- データベースコンテンツは複製されません。
- 別のスケール ユニットに複製すると、送信 IP アドレスが変更されます。
- Linux アプリは使用できません。
- マネージド ID は複製されません。
- 関数アプリは使用できません。