この記事では、Azure Static Web Apps リソースを別の Azure リージョンに再配置する方法について説明します。
既存のAzureリソースをあるリージョンから別のリージョンに移動したい理由はさまざまです。 次のいずれかを行うことを考慮してください。
- 新しい Azure リージョンを活用してください。
- 特定の地域でのみ利用可能な機能やサービスを展開する。
- 内部ポリシーおよびガバナンスの要件を満たす。
- 企業の合併・買収に適応する
- 計画能力の要件を満たす。
[前提条件]
再配置の準備をする前に、次の前提条件を確認してください。
ターゲット リージョンに静的 Web アプリ リソースを作成する権限があることを確認します。
組織に Azure Policy リージョンの制限が適用されているかどうかを確認します。
Azure Functions によって提供される統合 API サポートを使用する場合は次のことを確認してください。
- ターゲット リージョンでの Azure Functions の可用性を確認します。
- 関数 API キーが使用されているかどうかを確認します。 たとえば、Key Vault を使用しているか、アプリケーション構成ファイルの一部としてデプロイしていますか?
- ターゲット リージョンでの API サポートのデプロイ モデルを決定します: 独自の関数の持ち込み。 2 つのモデルの違いを理解します。
静的 Web アプリのホスティングに Standard ホスティング プランが使用されていることを確認します。 ホスティング プランの詳細については、「Azure Static Web Apps のホスティング プラン」に関するページをご覧ください。
再配置の際に許容されるダウンタイムを確認します。
Azure Static Web Apps のデプロイによっては、再配置の前に、次の依存リソースをターゲット リージョンにデプロイして構成する必要がある場合があります。
稼働停止時間 (ダウンタイム)
Azure 静的 Web サイトを再配置すると、アプリケーションにダウンタイムが発生します。 ダウンタイムは、Azure 静的 Web サイトに実装した高可用性パターンに左右されます。 一般的なパターンは次のとおりです。
- コールド スタンバイ: ワークロード データは、その要件に基づいて定期的にバックアップされます。 障害が発生した場合、ワークロードは新しい Azure リージョンに再デプロイされ、データが復元されます。
- ウォーム スタンバイ: ワークロードは事業継続とディザスター リカバリー (BCDR) リージョンにデプロイされ、データは非同期または同期的に複製されます。 障害が発生した場合、ディザスター リカバリー (DR) リージョンでのデプロイはスケールアップおよびスケールアウトされます。
- マルチリージョン: ワークロードは両方のリージョンにデプロイされ、データは同期的に複製されます。 どちらのリージョンにも、データの書き込み可能なコピーがあります。 実装には、アクティブ/パッシブまたはアクティブ/アクティブを指定できます。
準備する
プライベート エンドポイントを使用したデプロイ
静的 Web Apps がプライベート エンドポイントと共にデプロイされている場合は、次のことを確認します。
- 接続エンドポイントのホスト名を更新します。
- DNS プライベート ゾーンまたはカスタム DNS サーバーのホスト名を更新します (Private Link にのみ適用されます)。
詳細については、「Azure Static Web Apps でプライベート エンドポイントを構成する」を参照してください。
その他のすべてのデプロイ
その他のすべてのデプロイの種類については、次のことを確認します。
- 必要に応じて、新しいリージョンの Azure Functions から新しい関数 API キーを取得します。
- この Azure 関数がデータベースに依存している場合は、
DATABASE_CONNECTION_STRINGが更新されていることを確認します。 このデータベースは、リージョン移行のスコープに含まれていない可能性があります。 - カスタムドメインを更新して、静的 Web アプリの新しいホスト名を指すようにします。
- Key Vault を使用している場合は、ターゲット リージョンに新しい Key Vault をプロビジョニングします。 必要に応じて、Key Vault の関数 API キーを更新します。 コードまたは構成ファイルに格納されないその他の機密データは、この Key Vault に格納する必要があります
テンプレートをエクスポートする
静的 Web アプリを記述する設定を含む Resource Manager テンプレートをエクスポートする方法は以下のとおりです。
Azure portal にサインインします。
静的 Web アプリに移動します。
左側のメニューの [オートメーション] で、[テンプレートのエクスポート] を選択します。
テンプレートの生成には少し時間がかかる場合があります。
[Download] を選択します。
ダウンロードした
.zipファイルを検索して、任意のフォルダーに開きます。このファイルには、テンプレートおよびテンプレートをデプロイするためのスクリプトを含む
.jsonファイルが含まれています。ターゲット リージョンで場所を更新するなど、テンプレートに必要な変更を加えます。
移転
静的 Web アプリを別のリージョンに再配置するには、次の手順に従います。
プライベート エンドポイントを使用して再配置する場合は、「 Azure Private Link サービスを別のリージョンに再配置する」のガイドラインに従ってください。
既存の Azure Functions を静的 Web アプリに提供している場合は、Azure Functions の再配置手順に従います。
前のセクションでエクスポートおよび構成したテンプレートを使用して、静的 Web アプリを再デプロイします。
重要
カスタム ドメインを使用していない場合は、ターゲット リージョンでアプリケーションの URL が変更されます。 このシナリオでは、ユーザーに URL の変更について必ず周知してください。
統合 API を使用している場合は、Azure Functions でサポートされている新しい統合 API を作成します。
リポジトリ (GitHub または Azure DevOps) を再構成して、ターゲット リージョンに新しくデプロイされた静的 Web アプリにデプロイします。 GitHub アクションまたは Azure Pipelines を使用して、アプリケーションのデプロイを開始します。
コールド スタンバイ デプロイでは、新しい URL について必ず顧客に通知してください。 カスタム DNS ドメインを使用している場合は、ターゲット リージョンを指す DNS エントリを変更します。 ウォーム スタンバイ デプロイでは、Front Door や Traffic Manager などのロード バランサーが、ソース リージョン内の静的 Web アプリのターゲット リージョンへの移行を処理します。