Azure Cosmos DB for NoSQL を可用性ゾーンのサポートに移行する
このガイドでは、Azure Cosmos DB for NoSQL を非可用性ゾーンのサポートから可用性ゾーンのサポートに移行する方法について説明します。
Azure Cosmos DB で可用性ゾーンを使用しても、パフォーマンスや待機時間に目に見える影響はありません。 選択した整合性モードを調整する必要はありません。また、アプリケーション コードを変更する必要はありません。
可用性ゾーンが有効になっている場合、Azure Cosmos DB は、使用可能なすべてのゾーンにデータの 4 つのレプリカをインテリジェントに分散します。 これにより、1 つの可用性ゾーンで障害が発生した場合でも、アカウントは完全に動作し続けます。 これに対し、可用性ゾーンがない場合、すべてのレプリカは 1 つの可用性ゾーンに配置されます (公開されていません)。その特定のゾーンで問題が発生した場合、潜在的なダウンタイムが発生します。
可用性ゾーンを有効にすると、アプリケーションの複雑さが増したり、パフォーマンスに影響を与えたり、自動スケールも使用されている場合に追加のコストが発生したりすることなく、Cosmos DB データベースの回復性を向上させることができます。
前提条件
サーバーレス アカウントでは可用性ゾーンを使用できますが、この選択はアカウントの作成時にのみ使用できます。 可用性ゾーンのない既存のアカウントは、可用性ゾーン構成に変換できません。 ミッション クリティカルなワークロードの場合は、プロビジョニングされたスループットが推奨される選択肢です。
可用性ゾーンを有効にすることは、アカウント全体の選択肢ではないことを理解してください。 1 つの Cosmos DB アカウントは任意の数の Azure リージョンにまたがることができ、それぞれが可用性ゾーンを利用するように個別に構成でき、一部のリージョン ペアでは可用性ゾーンがサポートされていない可能性があります。 これは重要です。一部のリージョンでは可用性ゾーンがまだサポートされていませんが、Cosmos DB アカウントに追加しても、そのアカウント用に構成されている他のリージョンで可用性ゾーンを有効にすることはできません。 課金モデルにもこの可能性が反映されています。 Cosmos DB の SLA の詳細については、「Cosmos DB for NoSQL の信頼性」を参照してください。 可用性ゾーンをサポートするリージョンについては、「可用性ゾーンがサポートされている Azure リージョン」をご覧ください
ダウンタイムの要件
可用性ゾーンのサポートに移行すると、リージョン間の整合性を確認するためにシステムが意図的に書き込みを停止するため、セカンダリ リージョンの追加と削除時に少量の書き込み使用不可 (数秒) が発生します。
移行
アカウントに既に追加されているリージョンで可用性ゾーンを有効にすることはできないため、そのリージョンを削除し、可用性ゾーンを有効にして再度追加する必要があります。 サービスの中断を回避するには、可用性ゾーンの構成が完了するまで、一時リージョンを追加してフェールオーバーします。
一部のリージョンでアカウントの可用性ゾーンを有効にするには、次の手順に従います。
「データベース アカウントにリージョンを追加する」の手順に従って、一時リージョンをデータベース アカウントに追加します。
Azure Cosmos DB アカウントが複数リージョンの書き込みで構成されている場合は、次の手順に進みます。 それ以外の場合は、「Azure Cosmos DB アカウントで手動フェールオーバーを実行する」の手順に従って、一時リージョンへの手動フェールオーバーを実行します。
「データベース アカウントへのリージョンの削除」の手順に従って、可用性ゾーンを有効にするリージョンを削除します。
可用性ゾーンで有効にするリージョンを再度追加します。
- データベース アカウントにリージョンを追加します。
- 書き込みリージョン列で新しく追加されたリージョンを検索し、そのリージョンの可用性ゾーンを有効にします。
- [保存] を選択します。
「Azure Cosmos DB アカウントで手動フェールオーバーを実行する」の手順に従って、可用性ゾーン対応リージョンへのフェールバックを実行します。
「データベース アカウントへのリージョンの削除」の手順に従って、一時リージョンを削除します。