Microsoft AZ-305: 高可用性、災害復旧、事業継続性 — 学習ガイド
こちらの一部です: Microsoft Azure Solutions Architect Expert AZ-305 — 学習ガイド. 検証済みの解答で練習: Microsoft試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
概要
Azure における高可用性 (HA)、ディザスターリカバリー (DR)、事業継続性 (BC) は、コンピューティング、データ、ネットワークの各レイヤーにわたる意図的な設計を必要とします。回復性は、明確な目標復旧時間 (RTO) と目標復旧時点 (RPO) のターゲット設定から始まり、次にプラットフォームの機能 (可用性ゾーン、グローバルルーティング、データレプリケーション、バックアップ、フェイルオーバーオーケストレーション) を組み合わせて、テスト済みの自動化された戦略を構築します。Azure は、ゾーンおよびリージョンレベルの障害分離、DNS とエニーキャストベースのグローバル配信、マルチリージョンでのデータ永続性、ポリシー駆動のバックアップ/リストアを提供し、コストと運用の複雑さを抑制しながら、厳しい目標を達成します。
RTO/RPO に基づくアーキテクチャとゾーン/グローバル回復性
設計は RTO と RPO から始まります。RTO は障害後にサービスをどれだけ迅速に再開しなければならないかを規定し、RPO は許容される最大のデータ損失量を規定します。低い RTO を満たすには、自動化されたフェイルオーバーと事前にプロビジョニングされたキャパシティが必要です。低い RPO を満たすには、同期的または準同期的なレプリケーションと、頻繁で一貫性のある復旧ポイントが必要です。
可用性ゾーン (Availability Zones) は、リージョン内の独立したデータセンター障害ドメインです。ゾーンサービス (例: Virtual Machines、マネージドディスク、Standard パブリック IP) は単一のゾーンに固定されます。ゾーン冗長サービス (例: Azure Load Balancer Standard のゾーン冗長フロントエンド、ゾーン冗長ストレージオファリング、ゾーン冗長 Azure SQL 階層) は、自動的に複数のゾーンにまたがります。典型的な回復性パターンでは、ゾーン VM を少なくとも 2 つのゾーンにデプロイし、それらを単一の仮想ネットワーク内に配置し、ゾーン冗長のロードバランシングフロントエンドを公開します。これにより、単一ゾーンの障害がダウンタイムの原因となることを排除します。
グローバルエッジでは、DNS ベースとエニーキャストプロキシによる負荷分散のどちらかを選択します。
- Azure Traffic Manager は DNS ベースです。クライアントをエンドポイントに誘導するために、次のルーティング方法を使用します: パフォーマンス (最小レイテンシー)、重み付け (A/B テストや段階的なトラフィックシフト)、優先順位 (アクティブ/パッシブフェイルオーバー)、地理的 (地域的に準拠したエンドポイントからユーザーにサービスを提供)、複数値 (シンプルなクライアント向けに複数の正常な IPv4/IPv6 レコードを返す)、サブネット (クライアント IP 範囲を特定のエンドポイントにマッピング)。DNS ベースであるため、Traffic Manager はコンテンツを高速化したり、トラフィックをプロキシしたりしません。クライアントは選択されたエンドポイントに直接接続し、ローカルの DNS キャッシュの動作に従います。
- Azure Front Door (Standard/Premium) は、インテリジェントなルーティング、TLS オフロード、統合された Web アプリケーションファイアウォール (WAF) を備えたグローバルなエニーキャスト HTTP/HTTPS リバースプロキシです。ルーティング規則はドメイン、パス、メソッド、ヘッダーに基づいて照合され、オリジングループにルーティングされます。ルールエンジンアクションは URL/ヘッダーの書き換えやリダイレクトの強制が可能です。正常性プローブは、設定可能なパスとプロトコルでオリジンの正常性を継続的に評価し、異常なオリジンはローテーションから除外されます。オリジングループは、リージョン間で優先順位 (アクティブ/パッシブ) と重み付けによる分散をサポートします。WAF ポリシーはエンドポイントまたはルートにアタッチされ、マネージドルールセット、カスタムルール、レート制限を使用して、OWASP の脅威や不正なクライアントを軽減します。高速化、エッジセキュリティ、アプリケーションを意識したフェイルオーバーを伴うグローバルな負荷分散が必要な場合は Front Door を使用します。HTTP 以外のエンドポイントや DNS レベルの制御が必要な場合にのみ、Traffic Manager と組み合わせてください。
レイヤー 4 では、Azure Load Balancer が TCP/UDP に対して超低レイテンシーの負荷分散を提供します。Standard Load Balancer は、ゾーンおよびゾーン冗長のフロントエンド、HA ポート、送信規則、セキュアバイデフォルトの動作 (明示的な NSG とバックエンドプールの構成) をサポートします。正常性プローブ (TCP/HTTP) がバックエンドの正常性を判断し、障害が発生したインスタンスはローテーションから除外されます。Basic Load Balancer にはゾーン認識、高度な機能、SLA がないため、本番環境での使用は避けてください。リージョン間 Load Balancer は、リージョンごとの Standard Load Balancer 間で負荷を分散するグローバルエニーキャストフロントエンドを追加し、HTTP 以外のワークロード向けにアクティブ/アクティブのマルチリージョン設計を可能にし、正常性に基づいた高速なリージョンフェイルオーバーを提供します。
データ保護とディザスターリカバリー: Azure Backup と Site Recovery
Azure Backup はポイントインタイムリカバリーを提供し、Azure Site Recovery (ASR) はワークロードのレプリケーションとオーケストレーションされたフェイルオーバーを提供します。これらは相互補完的なニーズに対応し、しばしば組み合わせて使用されます。
Azure Backup コンテナーのオプション:
- Recovery Services コンテナーは、Azure VM、Azure VM 上の SQL Server、Azure VM 上の SAP HANA、Azure Files、および MARS/MABS エージェントを保護します。サポートされている場合には、スケジュール、リテンション、およびアプリケーション整合性のあるバックアップを定義するバックアップポリシーと統合されます。
- Backup コンテナーは、Azure Disks バックアップや Azure Blobs バックアップなどの新しいワークロード向けの最新化されたコンテナーであり、サポートされているリージョンでは、きめ細かな RBAC とゾーン冗長コンテナーストレージを提供します。ワークロードとガバナンスモデルに合わせてコンテナーの種類を選択します。
バックアップポリシーは、バックアップの実行タイミング、そのリテンション期間 (日単位/週単位/月単位/年単位)、および整合性設定を管理します。論理的な削除 (Soft delete) は、削除されたバックアップ項目を復元できる安全な期間を追加し、偶発的または悪意のある削除から保護します。リージョン間復元 (Cross-region restore) は、コンテナーストレージが geo 冗長オプションを使用している場合にセカンダリリージョンからの復元を可能にします。これは有効にする必要があり、リージョンごとの機能サポートとデータプレーンの準備状況に依存します。
Azure Site Recovery は、ゾーンまたはリージョンをまたいでワークロードをレプリケートし、エンドツーエンドの DR をオーケストレーションします:
- レプリケーションポリシーは、スナップショットの頻度、復旧ポイントのリテンション期間、アプリケーション整合性スナップショットの間隔、および RPO アラートのしきい値を定義します。ポリシーは、レプリケーション帯域幅、ストレージコスト、および復旧の精度のバランスを取ります。
- 復旧計画は、グループ (例: データベース、API、Web)、事前/事後ステップ、および Azure Automation Runbook、スクリプト、または手動アクションによる自動化を使用して、多層アプリケーションの順序付けられたフェイルオーバーを提供します。DNS の変更、Traffic Manager/Front Door エンドポイントの更新、およびアプリケーション構成を計画に統合します。
- テストフェイルオーバーは、非運用 VNet またはテストネットワークを使用して分離された復旧を実行し、運用環境やレプリケーションに影響を与えることなく、Runbook、起動順序、およびアプリケーションの正常性を検証します。RTO を検証するために、定期的なテストが不可欠です。
- フェイルバックは、正常な状態になったときにワークロードを元のサイトまたはリージョンに戻します。フェイルオーバー後、新しいプライマリ方向でワークロードを再保護し、変更を同期し、計画的なフェイルバック期間をスケジュールし、フェイルバック後のレプリケーションを検証します。Azure-to-Azure シナリオでは、通常、ペアになっているリージョン間でフェイルオーバーし、準備ができたときにレプリケーションを逆にして元のトポロジを復元します。
データ層の継続性: Azure SQL、ストレージレプリケーション、および Cosmos DB
各データサービスは、アプリケーションの整合性要件と整合する必要がある、固有の持続性とフェイルオーバーのセマンティクスを公開しています。
Azure SQL Database と Azure SQL Managed Instance:
- アクティブ geo レプリケーションは、単一データベースまたはエラスティックプール用に最大 4 つの読み取り可能なセカンダリを作成します。データベースレベルのレプリケーションと、手動または API 駆動のフェイルオーバーを提供し、読み取りスケールと DR を可能にします。データベースごとの制御とカスタムオーケストレーションが必要な場合に適しています。
- 自動フェイルオーバーグループは、リスナーエンドポイントと共にまとめてフェイルオーバーするデータベースのグループ (またはマネージドインスタンス全体) を作成します。リージョン間のフェイルオーバーと接続文字列の管理を簡素化し、猶予期間後の自動フェイルオーバーをサポートします。調整されたフェイルオーバーと簡素化されたクライアント接続を必要とするマルチデータベースアプリケーションには、フェイルオーバーグループを使用します。
- ゾーン冗長は、リージョン内のゾーンをまたいでレプリカを配置し、リージョン間の復旧なしでゾーン障害を乗り切ります。サポートする階層でこれを有効にすると、レイテンシープロファイルを変更することなくローカルの可用性を向上させることができます。
Azure Storage のレプリケーションオプション:
- GRS (geo-redundant storage) は、プライマリリージョン (3 コピー) からペアのセカンダリリージョン (3 コピー) へデータを非同期にレプリケートします。通常運用中、読み取りと書き込みはプライマリをターゲットとします。
- RA-GRS は、プライマリが劣化した際の緊急レポートや分析などのシナリオのために、セカンダリエンドポイントへの読み取りアクセスを追加します。
- GZRS (geo-zone-redundant storage) は、プライマリリージョンでのゾーンの持続性のための ZRS と、セカンダリリージョンへの非同期レプリケーションを組み合わせ、ローカルとリージョンの両方の回復性を向上させます。
- RA-GZRS は、GZRS アカウントのセカンダリへの読み取りアクセスを追加します。 プライマリリージョンが回復不能な場合、セカンダリへのアカウントフェイルオーバーを開始できます。フェイルオーバー後、ストレージアカウントはセカンダリリージョンでプライマリとなり、通常は (再構成するまで) ローカル冗長に戻ります。(非同期レプリケーションのため) ある程度の RPO が予想されます。アプリケーションはフェイルオーバー後のべき等性と調整を処理する必要があります。
Azure Cosmos DB:
- マルチリージョン書き込みは、競合解決ポリシー (指定されたプロパティによる最終書き込み者優先、カスタム、またはマルチマスターストラテジ) を使用して、構成された任意のリージョンへの書き込みを許可します。これにより、書き込みレイテンシーが短縮され、可用性が向上します。
- 自動フェイルオーバーは、優先順位付けされたリージョンリストを使用して、障害時に新しい書き込みリージョンを昇格させます。選択した整合性レベル (Strong から Eventual まで) と組み合わせることで、可用性と整合性のトレードオフを管理します。
- SLA は、可用性、スループット、レイテンシー、および整合性をカバーします。マルチリージョン書き込みを使用すると、Cosmos DB は、正しいマルチリージョン構成を前提として、読み取りと書き込みの両方で最大 99.999% の可用性を提供します。これらの保証を最大限に活用するには、エンドポイントの検出と再試行を備えた SDK を使用してクライアントを設計します。
まとめ:特定の復旧目標への対応
RTO/RPOと障害ドメインを指針として、各階層をその継続性メカニズムにマッピングします。
- リージョン内の可用性: Availability Zonesを使用します。少なくとも2つのゾーンにまたがってゾーンコンピューティングをデプロイし、ゾーン冗長フロントエンド(Standard Load Balancer、ゾーン冗長性を備えたApplication Gateway v2、またはエッジのFront Door)を使用します。サポートされている場合はSQLのゾーン冗長を有効にし、ゾーンとリージョンの両方の回復性が必要なストレージにはGZRSを使用します。
- クロスリージョンDR: ステートフルな階層では、低いRPOを実現するために、ネイティブの地理レプリケーション(SQL自動フェイルオーバーグループ、Cosmos DBマルチリージョンアカウント、Storage GRS/GZRS)を優先します。ステートフルなIaaSやネイティブのレプリケーションがないワークロードには、適切に調整されたレプリケーションポリシーと復旧計画を持つAzure Site Recoveryを使用します。エフェメラルなコンピューティングには、Infrastructure as Codeを使用して、イメージまたはVM Scale Setsから再構成します。
- グローバルルーティングとフェイルオーバー: HTTP/Sの場合、Azure Front Doorがヘルスプローブ駆動の、アプリケーションを意識したフェイルオーバーとWAF保護を提供します。非HTTPまたは混合プロトコルの場合は、必要に応じてTraffic Manager(DNS)またはCross-region Load Balancer(L4エニーキャスト)を追加します。厳格なアクティブ/パッシブのRTO目標には優先度ルーティングを使用し、段階的なロールアウトには重み付けルーティング、ユーザーエクスペリエンスのレイテンシーを最小化するにはパフォーマンスルーティングを使用します。
- 最後の砦としてのバックアップ: レプリケーションを使用していても、コンプライアンスを満たすリテンションポリシーを持つAzure Backupを維持し、パージイベントから保護するために論理的な削除を有効にし、geo冗長ストレージを使用するコンテナーに対してクロスリージョンリストアを構成します。バックアップは、論理的な破損、ランサムウェア、オペレーターのミスといった、レプリケーションによって伝播しうるリスクから保護します。
テストは必須です。ASRのテストフェイルオーバーを定期的にスケジュールし、Front Door/Traffic Managerのヘルスドリルテストを実行し、負荷がかかった状態でのSQLフェイルオーバーグループの動作を検証し、サンドボックスでストレージのフェイルオーバーシミュレーションを実行します。RTOの測定を計装し、Runbookでロールバック/フェイルバックを自動化します。オンコールの担当者がプレッシャーのかかる状況でも一貫して実行できるように、運用Runbookを文書化し、リハーサルを行います。
実践的な問題シナリオ
Expedia Groupは、主要な旅行イベント中に10倍のトラフィックスパイクに耐えながら、コアとなる予約機能についてRTO ≤ 15分、RPO ≤ 5分を達成するために、グローバルな旅行予約プラットフォームを近代化する必要があります。このプラットフォームは、HTTPと非HTTPの混合ワークロードで、世界中のWebおよびモバイルクライアントにサービスを提供しています。
- プライマリリージョンにゾーン回復性を構築する
- ステートレスなマイクロサービスを、Standard Load Balancerのゾーン冗長フロントエンドを持つ2つ以上のAvailability ZonesにまたがるゾーンVM Scale Setsとしてデプロイします。これにより、単一ゾーンの障害リスクを排除し、低レイテンシーのリージョン内トラフィックを確保します。
- 自動フェイルオーバーグループとゾーン冗長を有効にしたAzure SQL Databaseを使用します。自動フェイルオーバーグループは、協調的なデータベースフェイルオーバーと安定したリスナーを提供し、運用上の負担を最小限に抑えながら15分のRTOを達成します。
- セッションアーティファクトと画像をGZRSストレージアカウントに保存し、ゾーンの持続性と非同期のリージョン保護を組み合わせます。これは、アプリケーション側のべき等性と組み合わせることで、5分のRPOを達成します。
- アクティブ/アクティブ読み取りによるクロスリージョンDRを追加する
- Azure Front Door Standardの背後にある2つのペアリングされたリージョンに、予約Web/APIオリジンを構成します。ヘルスプローブと優先度ルーティングにより、アプリケーションの正常性に基づいた迅速なフェイルオーバーが可能になり、エニーキャストがユーザートラフィックを高速化します。マネージドルールセットとレート制限を備えたWAFポリシーは、トラフィックスパイク時に重要となるボリューム攻撃やアプリケーション層攻撃から保護します。
- 旅程およびパーソナライゼーションサービス用にCosmos DBのマルチリージョン書き込みを有効にし、グローバルユーザーの書き込みレイテンシーを削減し、99.999%の可用性を提供します。自動フェイルオーバーはセカンダリリージョンを優先し、手動介入なしで低いRTOを維持します。
- トランザクション予約のために、同じ2つのリージョンにまたがってSQL自動フェイルオーバーグループを使用し、セカンダリでの読み取りスケールをレポート用に有効にしながら、迅速で協調的なフェイルオーバーを保証します。
- 状態を保護し、破損からの回復をサポートする
- レガシーコンポーネントが残っている場合は、Azure VMバックアップ(サポートされている場合はアプリ整合性)およびSQL in-VM用にRecovery Servicesコンテナーを使用します。階層化されたリテンションを持つバックアップポリシーを適用し、偶発的または悪意のある削除から保護するために論理的な削除を有効にします。
- 特殊なワークロードをホストするAzure Disksには、ゲストOSエージェントから独立して増分スナップショットをキャプチャするために、バックアップコンテナーベースのAzure Disk Backupを追加します。これにより、リカバリオプションが多様化します。
- geo冗長ストレージを使用するコンテナーでクロスリージョンリストアを有効にし、部分的なコントロールプレーンの障害時に、セカンダリリージョンからデータプレーンのリストアを可能にします。
- DRをオーケストレーションし、RTOを検証する
- ネイティブでレプリケートされていないサービス(例:レガシーなWindowsサービス)に対してAzure Site Recoveryを構成します。データベースの準備、次にAPI、次にWebという順序で復旧計画を作成し、Key Vaultの参照を更新し、Front Doorのルールを介してCDNキャッシュをパージし、非HTTPエンドポイントのTraffic Managerの優先度を切り替えるためのAzure Automation Runbookを含めます。
- マスクされたデータを使用して、隔離されたVNetへの四半期ごとのテストフェイルオーバーをスケジュールし、Runbookを検証し、実際のフェイルオーバー時間を測定し、キャパシティ予約を調整します。テスト後、アーティファクトをクリーンアップし、15分のRTO目標に対してメトリクスをレビューします。
- 混合プロトコルのためのグローバルルーティング
- HTTP/Sの場合、Front Doorがヘルスドリブンのフェイルオーバーとエッジセキュリティを処理します。非HTTPプロトコル(例:パートナーとのTCP統合)の場合、リージョンごとのStandard Load Balancerを子エンドポイントとして持つCross-region Load Balancerをデプロイします。ヘルスプローブは障害が発生したリージョンを即座に削除し、DNSのTTLへの依存なしに接続を維持します。DNSレベルのジオフェンシングが必要な場合(規制上のエンドポイント)、リージョン固有のエンドポイントの前にAzure Traffic Managerの地理的ルーティングを階層化します。
これらのサービスを選択する理由
- Availability Zonesとゾーン冗長フロントエンドは、レイテンシーへの影響を最小限に抑えながら、単一ゾーンの障害を排除します。Azure SQL自動フェイルオーバーグループは、接続管理を抽象化し、フェイルオーバーを自動化することで、15分のRTOに適合します。Cosmos DBのマルチリージョン書き込みは、世界規模での超高可用性と低レイテンシーの書き込み要件を満たします。GZRSとRAオプションは、制御されたRPOのトレードオフで、ゾーンとリージョンの両方の持続性を提供します。Front Doorは、グローバルな高速化、アプリケーションを意識したフェイルオーバー、およびエッジでのWAFを提供します。Cross-region Load BalancerとTraffic Managerは、非HTTPおよび地理的ルーティングのニーズをカバーします。Azure BackupとASRは、ポイントインタイムリストアからフルスタックのフェイルオーバーまで、独立した復旧パスを提供し、プラットフォームがインフラストラクチャの障害と論理的なデータ破損の両方から回復できることを保証します。
← ネットワーキングとコネクティビティ · すべてのドメイン · セキュリティアーキテクチャとゼロトラスト →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →