可用性ゾーンとは
多くの Azure リージョンには、リージョン内のデータセンターの分離されたグループである可用性ゾーンが用意されています。 アベイラビリティ ゾーンは、他のアベイラビリティ ゾーンと低レイテンシー接続できるほどの十分な近さです。 ラウンドトリップ待ち時間が約 1.2 ミリ秒未満の高パフォーマンス ネットワークによって接続されます。 ただし、アベイラビリティ ゾーンは十分に離れているため、複数のゾーンがローカルの停止や天候の影響を受ける可能性を減らすことができます。 可用性ゾーンは、独立した電源、冷却、ネットワーク インフラストラクチャを備えています。 これらは、あるゾーンで障害が発生した場合に、リージョン サービス、容量、高可用性が残りのゾーンによってサポートされるように設計されています。 それらは、問題が発生した場合にデータの同期とアクセス可能性を維持するのに役立ちます。
データセンターの場所は、厳格な脆弱性リスク評価基準を使用して選択されます。 このプロセスでは、データセンター固有のすべての重大なリスクが特定され、可用性ゾーン間の共有リスクが考慮されます。
次の図は、Azure リージョンの例を示しています。 リージョン 1 および 2 は可用性ゾーンをサポートしており、リージョン 3 および 4 には可用性ゾーンがありません。
可用性ゾーンをサポートするリージョンについては、「可用性ゾーンがサポートされている Azure リージョン」をご覧ください。
ゾーン サービスとゾーン冗長サービス
可用性ゾーンを含む Azure リージョンにデプロイする場合は、複数の可用性ゾーンを一緒に使用できます。 複数の可用性ゾーンを使用することで、大都市圏の別々の物理データセンター内にアプリケーションとデータそれぞれのコピーを保持することができます。
Azure サービスでアベイラビリティ ゾーンを使用する方法は 2 つあります。
ゾーン リソース は、特定のアベイラビリティ ゾーンに固定されます。 高い信頼性の要件を満たすために、異なるゾーン間で複数のゾーン展開を組み合わせることができます。 ユーザーは、データ レプリケーションを管理し、ゾーン間で要求を分散する責任があります。 単一のアベイラビリティ ゾーンで障害が発生した場合は、ユーザーが別のアベイラビリティ ゾーンへのフェールオーバーを行います。
ゾーン冗長リソース は、複数のアベイラビリティ ゾーンに分散されます。 Microsoft は、ゾーン間での要求の分散と、ゾーン間でのデータのレプリケーションを管理します。 単一のアベイラビリティ ゾーンで停止が発生した場合、Microsoft はフェールオーバーを自動的に管理します。
Azure サービスは、これらのアプローチの 1 つまたは両方をサポートしています。 サービスとしてのプラットフォーム (PaaS) サービスは通常、ゾーン冗長デプロイをサポートしています。 サービスとしてのインフラストラクチャ (IaaS) サービスは通常、ゾーン デプロイをサポートしています。 Azure サービスが可用性ゾーンと連携する方法については、「可用性ゾーンをサポートする Azure リージョン」を参照してください。
一部のサービスでは、可用性ゾーンは使用するように構成するまで使用されません。 可用性ゾーンのサポート用にサービスを明示的に構成しない場合は、"非ゾーン" または "リージョン" デプロイと呼ばれます。 この方法で構成されたリソースは、リージョン内の任意の可用性ゾーンに配置され、移動される可能性があります。 リージョン内の可用性ゾーンで障害が発生した場合、非ゾーン リソースが影響を受けるゾーン内にあり、ダウンタイムが発生する可能性があります。
可用性ゾーンを使用したサービス固有の信頼性サポートと、推奨されるディザスター リカバリーのガイダンスの詳細については、「信頼性に関するガイダンスの概要」を参照してください。
物理ゾーンと可用性ゾーン
各データセンターは、物理ゾーンに割り当てられています。 物理ゾーンは Azure サブスクリプション内の論理ゾーンにマップされ、サブスクリプションによってマップの順序が異なる場合があります。 Azure サブスクリプションには、サブスクリプションの作成時に、このマッピングが自動的に割り当てられます。 このため、あるサブスクリプションのゾーン マッピングは、他のサブスクリプションでは異なる可能性があります。
例: "財務" という名前のサブスクリプションが物理ゾーン X を論理ゾーン 1 にマップしている場合、代わりに "エンジニアリング" という名前のサブスクリプションが物理ゾーン X を論理ゾーン 3 にマップしている場合があります。
サブスクリプションの論理ゾーンと物理ゾーンのマッピングを理解するには、List Locations Azure Resource Manager API を使用します。 API から情報を取得するために、Azure CLI または Azure PowerShell を使用できます。
az rest --method get \
--uri '/subscriptions/{subscriptionId}/locations?api-version=2022-12-01' \
--query 'value[?availabilityZoneMappings != `null`].{displayName: displayName, name: name, availabilityZoneMappings: availabilityZoneMappings}'
可用性ゾーンと Azure の更新情報
Microsoft は、リージョンごとに、Azure サービスへの更新を単一の可用性ゾーン内に一度にデプロイすることを目的としています。 このアプローチでは、更新処理中も他のゾーンでワークロードを引き続き実行できるため、更新がアクティブなワークロードに与える影響を軽減できます。 この利点を活用するには、複数のゾーンでワークロードを実行する必要があります。 Azure で更新をデプロイする方法の詳細については、「安全なデプロイ プラクティスの推進」を参照してください。
可用性ゾーンのアーキテクチャに関するガイダンス
より信頼性の高いワークロードを実現するには:
- 運用ワークロードは、それが含まれるリージョンが可用性ゾーンをサポートしている場合、複数の可用性ゾーンを使用するように構成される必要があります。
- ミッション クリティカルなワークロードの場合、マルチリージョンとマルチゾーンの両方を備えたソリューションを検討する必要があります。
ソリューション アーキテクチャにおけるリージョンと可用性ゾーンの使用方法の詳細については、「可用性ゾーンとリージョンを使用するための推奨事項」を参照してください。