ゾーン回復性に対応するように Azure ワークロードを設計すると、ハードウェア障害、ネットワークの中断、自然災害からアプリケーションを保護するのに役立ちます。 ゾーン回復性を確保するためにリージョン内の複数の可用性ゾーンにリソースを分散することで、1 つのゾーンの停止が重要なサービスに影響を及ぼすリスクを軽減できます。
ゾーン回復性に対応するには、ワークロードの初期計画とデプロイ時が最も効果的です。 ただし、既存のワークロードの多くは、まだこのレベルの保護をサポートするように構成されていない可能性があります。 ほとんどの場合、デプロイ済みワークロードに対してゾーン回復性を有効にするのは簡単であり、Microsoft はこのプロセスをさらに簡単にする改善に継続的に取り組んでいます。 ただし、ワークロードを変更するとリスクが生じる可能性があるため、慎重に計画を立てる必要があります。 どのワークロードと、そのワークロード内のどのサービスがビジネスにとって最も重要かを評価し、優先順位を付けます。 次に、最も影響の大きいリソースに最初にゾーン回復性を適用します。
この記事では、Azure ワークロードでゾーン回復性を有効にするための重要な考慮事項について説明します。 また、より回復性の高いアーキテクチャへの移行を計画し、実装するためにも役立ちます。
ヒント
現在、ワークロードを設計している場合、または現在のワークロードの設計レビューを行う予定の場合は、Azure Well-Architected フレームワークの冗長設計に関する推奨事項に従うことが重要です。 リンク先の記事は、重要なワークフローに焦点を当て、複数のレベルでワークロードの冗長性を設計する方法を説明しています。 可用性ゾーンのデプロイを支援するために、Well-Architected フレームワークの冗長性に関する推奨事項ガイドでは、マルチリージョン デプロイやデプロイ スタンプなどの戦略についても説明しています。
ゾーン回復性とは
次の 2 つの主な方法で、可用性ゾーンの停止に対する回復性を Azure サービスに持たせることができます。
ゾーン冗長サービス: 多くの Azure サービスは "ゾーン冗長" をサポートしています。 これらのサービスは、自動的に可用性ゾーン間でデータをレプリケートし、着信要求を分散し、ゾーン障害時に別のゾーンにフェールオーバーします。 各サービスは、個々のサービスに適した方法でこれらの機能をサポートします。 一部のサービスは既定でゾーン冗長ですが、ゾーン冗長を構成する必要のあるサービスもあります。
ゾーン サービス: 一部の Azure サービスは "ゾーン単位" であるため、特定の可用性ゾーンに固定できます。 ゾーン サービスを使用してゾーン回復性を確保するには、複数の可用性ゾーンにサービスの個別のインスタンスをデプロイする必要があります。 トラフィックの分散、データのレプリケーション、インスタンス間のフェールオーバーの管理も必要になる場合があります。
一部のサービスは、ゾーン冗長構成またはゾーン構成のいずれかでデプロイできます。 ほとんどの場合、可能であればゾーン冗長サービスをデプロイすることをお勧めします。
詳細については、「可用性ゾーンのサポートの種類」を参照してください。
ゾーン有効化手順
以下の手順に従って、Azure ワークロードを体系的に確認し、ゾーン回復性に基づいて優先順位を付け、各コンポーネントでゾーン回復性を有効にします。
[前提条件]
始める前に、次の操作を行う必要があります。
各ワークロードを識別します。 ワークロードとは、定義されたビジネス成果を達成するために連携して機能するアプリケーション リソース、データ、サポート インフラストラクチャのコレクションを指します。 ワークロードとその定義方法の詳細については、Well-Architected フレームワークのワークロードに関する記事を参照してください。
各ワークロードのユーザー フローとシステム フローに優先順位を付けます。 ワークロードのクリティカル パスと依存関係を理解することは、最初にどのコンポーネントにゾーン回復性を持たせるかを見極めるうえで重要です。 クリティカル フロー分析を使用してワークフローに優先順位を付ける方法の詳細については、「ゾーン回復性に基づいてワークロードに優先順位を付ける」を参照してください。
各ワークロードとフローに重要度評価を割り当てます。 この評価は、潜在的な停止がビジネスに及ぼす影響を理解し、ゾーン回復性に基づいてどのワークロードを優先するかを決定するのに役立ちます。 また、ワークロードを再構成する際に許容できるダウンタイムの量も考慮する必要があります。
単純な分類法を使用して、ワークロードの重要度に基づいて分類できます。 このアプローチにより、最も重要なサービスに注力することができます。
ワークロードを分類するには、次の例の分類法を検討してください。
ワークロードの種類 Description 中断の影響 ミッション クリティカル 高い信頼性、常時可用性、障害回復性、高い運用性が求められるクリティカル フローとクリティカル ワークロード 重要な機能が中断されると、即座に致命的なビジネス上の損害が発生したり、人命がリスクにさらされたりします。 ビジネスクリティカル 重要なビジネス機能を運用する必要不可欠なフローとワークロード 中断は金銭的損失やブランドの毀損をもたらすリスクがあります。 ビジネス運用 ビジネス運用の効率化に貢献しますが、顧客への直接サービスには関与しません ある程度の中断は許容できます。 管理 ビジネス運用に直結しない社内の業務フローとワークロード 中断は許容できます。 重要度評価に従ってワークロードを分類する方法の詳細については、「各フローに重要度評価を割り当てる」を参照してください。
Azure リソースが配置されているリージョンが可用性ゾーンをサポートしていることを確認します。 「Azure リージョンの一覧」を参照してください。 リージョンが可用性ゾーンをサポートしていない場合は、可用性ゾーンをサポートしているリージョンにリソースを移行し直すことを検討してください。 詳細について、「リソース グループ、サブスクリプションまたはリージョン間で Azure リソースを移動する」をご覧ください。
手順 1: ゾーン回復性に基づいて Azure サービスに優先順位を付ける
どのワークロード フローがビジネスにとって最も重要かを決定したら、それらのフローが依存する Azure サービスに重点を置くことができます。 一部の Azure サービスは、他のサービスよりもアプリケーションにとって重要です。 このようなサービスを優先することで、ゾーン障害が発生した場合でもアプリケーションの可用性と回復性を維持できます。
次のガイダンスを参考にして、ワークロードに対する重要度に基づいて Azure サービス グループの優先順位を決定します。 ゾーン回復性に基づいてサービスの優先順位を決定する際は、お客様自身のアプリケーション アーキテクチャとビジネス要件を考慮することが重要です。
ネットワーク サービスから始めます。 ワークロードはネットワーク サービスを共有する傾向があるため、ワークロードの回復性が向上すると、複数のワークロードの回復性も同時に向上させることができます。
多くのコア ネットワーク サービスは自動的にゾーン冗長になりますが、Azure ExpressRoute Gateway、Azure VPN Gateway、Azure Application Gateway、Azure Load Balancer、Azure Firewall などのコンポーネントに重点を置く必要があります。
運用データ ストレージには、複数のワークロードでよく使用される貴重なデータが含まれています。つまり、このようなデータ ストアの可用性を向上させることは、多くのワークロードにも役立ちます。
運用データ ストレージの回復性については、Azure SQL Database、Azure SQL Managed Instance、Azure Storage、Azure Data Lake Storage、Azure Cosmos DB、Azure PostgreSQL フレキシブル サーバー、Azure MySQL フレキシブル サーバー、Azure Cache for Redis などのサービスに重点を置きます。
多くの場合、次に優先されるのはコンピューティング サービスです。 コンピューティング サービスはステートレスであるため、ゾーン間でのレプリケートや分散は多くの場合簡単です。
コンピューティング サービスには、Azure Virtual Machines、Azure Virtual Machine Scale Sets、Azure Kubernetes Service (AKS)、Azure App Service、App Service Environment、Azure Functions、Azure Container Apps が含まれます。
重要なフローで使用されている残りのビジネスクリティカルなリソースをすべて確認します。 このようなリソースは、上記のリソースほど重要ではないかもしれませんが、アプリケーションの機能において一定の役割を果たしているため、ゾーン回復性を確保するうえで考慮する必要があります。
残りのビジネス運用リソースを確認し、ゾーン回復性を持たせるかどうかについて十分な情報に基づいて判断します。 このレビューには、重要なワークロードに直接関連付けられていないものの、全体的なアプリケーションのパフォーマンスと信頼性に寄与するサービスも含まれます。
手順 2: ゾーン構成アプローチを評価する
ワークロードと Azure サービスに優先順位を付けたら、各サービスで可用性ゾーン サポートを有効にするために使用できるアプローチと、ゾーン回復性のある構成を実現する方法を理解することが重要です。
各 Azure 信頼性サービス ガイドには、そのサービスのゾーン回復性を有効にする方法を説明するセクションが用意されています。 このセクションでは、各サービスにゾーン回復性を持たせるために必要な作業を理解し、それに応じて戦略を計画できるようにします。 特定のサービスの詳細については、Azure 信頼性サービス ガイドを参照してください。
一般的な Azure サービスに使用できるアプローチを簡単に理解するには、ゾーン構成表を参照してください。
Important
ゾーン (または単一ゾーン) 構成でデプロイされているコンポーネントがワークロードに含まれている場合は、それらのコンポーネントにゾーンの停止に対する回復性を持たせるように計画する必要があります。 一般的なアプローチとしては、別の可用性ゾーンに個別のインスタンスをデプロイし、必要に応じてそれらを切り替える方法があります。
手順 3: 待機時間をテストする
ワークロードにゾーン回復性を持たせる場合は、可用性ゾーン間の待機時間を考慮することが重要です。 特にデータ層内で同期レプリケーションが有効になっている場合、一部のレガシ システムでは、ゾーン間トラフィックによって発生するわずかな追加の待機時間も許容できない場合があります。 ゾーン間の待機時間がワークロードに影響をする可能性があると思われる場合は、ゾーン回復性を有効にする前と後の両方で必ずテストを実行してください。
Azure サービスのゾーン構成アプローチ
各 Azure サービスは、サービスの使用目的と内部アーキテクチャに基づいて、特定の種類の可用性ゾーン サポートを提供します。 現在、可用性ゾーンを使用するように構成されていないリソース (つまり "非ゾーン" リソース) がある場合は、可用性ゾーン サポートを使用してそのリソースを再構成することをお勧めします。 各サービスの信頼性ガイドには、可用性ゾーンの構成手順に関するガイダンスまたはリンクが記載されています。
このセクションでは、さまざまな種類のゾーン構成アプローチと、各サービスがサポートするアプローチの概要を簡単に説明します。
Important
リソースで ゾーン冗長 を有効にすると、そのリソースはゾーン障害に対して自動的に回復性を持つ状態になります。 ゾーン構成を使用してリソースを特定の可用性ゾーンにピン留めする場合、リソースは自動的にゾーン冗長ではなく、ゾーンの障害に対する回復性を確保する責任があります。 ゾーン サービスの場合、このドキュメントの情報には、ゾーンへのピン留めの複雑さとコストが反映されています。 リソース ゾーンの回復性を確保するためにさらに作業が必要な場合があるため、詳細 については、サービスの信頼性ガイドを参照 してください。
次の表では、可用性ゾーンを有効にするために必要な作業レベルを含む、各ゾーン構成アプローチについて説明します。 この表には、有効化プロセス中にダウンタイムが必要かどうかも示されています。
ゾーン構成表には、多くの Azure サービスでサポートされているゾーン構成アプローチが一覧にまとめられ、各サービスの信頼性ガイドへのリンクも掲載されています。 信頼性ガイドでは、非ゾーン サービス リソースを可用性ゾーンのサポートを有効にするように構成する方法について説明しています。
| 方法 | Description | 一般的な作業レベル | ダウンタイムが必要になる場合があります |
|---|---|---|---|
| 常にゾーン回復性あり | 可用性ゾーンをサポートするリージョンでは、サービスに既定でゾーン回復性があります。 アクションは必要ありません。 | None | いいえ |
| 有効化 | 設定でゾーン冗長性を有効にするなど、最小限の構成変更が必要です。 プロセス中に可用性は影響を受けませんが、コストやパフォーマンスへの影響に注意してください。 | Low | いいえ |
| 変更 | 依存リソースの再デプロイやネットワーク設定の変更など、いくつかの構成変更が必要になる可能性があります。 | ミディアム | イエス |
| 再デプロイ | リソース、アプリケーションまたはサービス全体の再デプロイ、新しいサービスへのデータの移行など、大幅な変更が必要になります。 | High | イエス |
また、サービスの可用性ゾーンのサポートを有効にした場合のコストへの影響を理解することも重要です。 多くのサービスでは、可用性ゾーンを有効にしてもコストに影響はありません。 ただし、一部のサービスでは、サービスの特定のレベルをデプロイするか、サービスに対して一定数の容量ユニットをデプロイするか、またはその両方をデプロイする必要があります。 可用性ゾーンを使用する場合、他のサービスは異なる料金を請求します。 次の表に、各サービスの一般的なコストへの影響を示します。
注
この記事の情報は、可用性ゾーンのサポートと一般的なコストへの影響を有効にするために使用できる一般的なアプローチの概要です。 ただし、特定のソリューションでの動作に影響を及ぼす要因が存在する可能性があります。 たとえば、一部のサービスは "常にゾーン回復性あり" と記載されていても、この指定は特定のリージョンまたはサービスの特定のレベルにのみ適用されます。 これらの表は出発点として使用できますが、具体的な詳細を理解するには、リンクされたドキュメントを確認することが重要です。
ゾーン構成アプローチ別の Azure サービス
次の表は、多くの Azure サービスの可用性ゾーンのサポートをまとめたものです。また、コストへの影響を含め、そのサービスの可用性ゾーンのサポートを有効にするために使用できるアプローチを示します。