重要
2025 年 3 月 31 日の時点で、cloud Services (クラシック) は非推奨となり、2027 年 3 月 31 日に完全に廃止されます。 この非推奨化の詳細と移行方法について説明します。
Azure Cloud Services (拡張サポート) を使用すると、2 つの独立したクラウド サービスのデプロイ間で切り替えを行うことができます。 Azure Cloud Services (従来の) とは異なり、Azure Cloud Services (拡張サポート) の Azure Resource Manager モデルはデプロイ スロットを使用しません。 Azure Cloud Services (拡張サポート) では、クラウドサービスの新しいリリースをデプロイするときに、クラウド サービスを、Azure Cloud Services (拡張サポート) の既存のクラウド サービスと "スワップ可能" にすることができます。
デプロイをスワップした後は、新しいクラウド サービスのデプロイを使用して、新しいリリースをステージングし、テストすることができます。 つまり、スワップにより、新しいクラウドサービスがステージングされ運用リリースへと移行します。
注意
Azure Cloud Services (従来の) のデプロイと Azure Cloud Services (拡張サポート) デプロイの間でスワップすることはできません。
クラウド サービスを別のクラウド サービスにスワップ可能にする必要があるのは、ペアの 2 つ目のクラウド サービスを初めてデプロイするときです。 クラウド サービスの 2 つ目のペアをデプロイすると、それ以降の更新で既存のクラウド サービスとスワップ可能にすることはできません。
デプロイをスワップするには、Azure Resource Manager テンプレート (ARM テンプレート)、Azure portal、または REST API を使用します。
2 つ目のクラウド サービスをデプロイすると、両方のクラウド サービスの SwappableCloudService プロパティが互いを指し示すように設定されます。 それ以降のこれらのクラウド サービスに対する更新では、このプロパティを指定する必要があります。そうでないと、SwappableCloudService プロパティを削除または更新できないことを示すエラーが返されます。
設定されると、SwappableCloudService プロパティは読み取り専用として扱われます。 削除したり、別の値に変更したりすることはできません。 (スワップ可能なペアの) クラウド サービスのいずれかを削除すると、残りのクラウド サービスの SwappableCloudService プロパティがクリアされます。
ARM テンプレート
ARM テンプレートのデプロイ方法を使用して、クラウドサービスをスワップ可能にするには、SwappableCloudService
オブジェクトの networkProfile
の cloudServices
プロパティを、スワップ対象のクラウド サービスの ID に設定します。
"networkProfile": {
"SwappableCloudService": {
"id": "[concat(variables('swappableResourcePrefix'), 'Microsoft.Compute/cloudServices/', parameters('cloudServicesToBeSwappedWith'))]"
},
}
Azure Portal
Azure portal でデプロイをスワップするには、次の手順に従います。
ポータル メニューで、[Cloud Services (拡張サポート)] または [ダッシュボード] を選択します。
更新するクラウド サービスを選択します。
クラウド サービスの [概要] で [スワップ] を選択します。
スワップ確認用のウィンドウでデプロイ情報を確認し、[OK] を選択してデプロイをスワップします。
変更されるのは、デプロイされたクラウド サービスの仮想 IP アドレスだけであるため、デプロイは直ちにスワップされます。
コンピューティング コストを節約するために、スワップされたクラウド サービスが想定どおりに動作していることを確認した後は、(アプリケーション デプロイのステージング環境として指定された) いずれかのクラウド サービスを削除できます。
REST API
REST API を使用して Azure Cloud Services (拡張サポート) で、新しいクラウド サービスのデプロイに切り替えるには、次のコマンドと JSON 構成を使用します。
POST https://management.azure.com/subscriptions/subid/providers/Microsoft.Network/locations/westus/setLoadBalancerFrontendPublicIpAddresses?api-version=2021-02-01
{
"frontendIPConfigurations": [
{
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/loadBalancers/lb1/frontendIPConfigurations/lbfe1",
"properties": {
"publicIPAddress": {
"id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/publicIPAddresses/pip2"
}
}
},
{
"id": "/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/loadBalancers/lb2/frontendIPConfigurations/lbfe2",
"properties": {
"publicIPAddress": {
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/pip1"
}
}
}
]
}
デプロイのスワップについてよく寄せられる質問
Azure Cloud Services (拡張サポート) でのデプロイのスワップに関してよく寄せられる質問への回答を確認してください。
新しいクラウド サービスのデプロイにスワップするための前提条件は何ですか。
Azure Cloud Services (拡張サポート) でデプロイを正常にスワップするには、次の 2 つの重要な前提条件を満たす必要があります。
- 一方のスワップ可能クラウド サービスに、静的 IP アドレスまたは予約済み IP アドレスを使用する場合は、他方のクラウド サービスにも予約済み IP アドレスを使用する必要があります。 これを行わなかった場合、スワップは失敗します。
- スワップが成功するためには、ロールのすべてのインスタンスが実行中である必要があります。 インスタンスの状態を確認するには、Azure portal で、新しくデプロイされたクラウド サービスの [概要] にアクセスするか、Windows PowerShell で
Get-AzRole
コマンドを使用します。
ゲスト OS の更新およびサービス復旧の操作により、デプロイのスワップが失敗する可能性があります。 詳細については、クラウド サービスのデプロイメントのトラブルシューティングに関するページを参照してください。
別の変更操作と並行して VIP スワップを実行できますか。
いいえ。 VIP スワップは、クラウド サービスで他のコンピューティング操作を開始する前に完了する必要がある、ネットワークのみの変更です。 VIP スワップの進行中にクラウド サービスの更新、削除、または自動スケール操作を開始したり、別のコンピューティング操作の進行中に VIP スワップがトリガーされたりすると、クラウド サービスが、回復不能なエラー状態になることがあります。
スワップで、アプリケーションのダウンタイムは発生しますか。それに、どのように対応すべきですか。
クラウド サービスのスワップは、Azure ロード バランサーの構成の変更にすぎないため、通常は短時間で終了します。 ただし、スワップに 10 秒以上かかり、その結果、一時的な接続エラーが発生する場合があります。 ユーザーへのスワップの影響を抑制するには、クライアント再試行ロジックを実装することを検討してください。