次の方法で共有


Azure Virtual Machines の信頼性

Azure Virtual Machines は、オンデマンドでスケーラブルなコンピューティング リソースを提供します。 基盤となるインフラストラクチャ サービスとして、ミッション クリティカルなワークロードにエンタープライズ レベルの信頼性と可用性を提供するように設計されています。

この記事では、可用性ゾーンのサポート、バックアップ、プラットフォームのメンテナンス中の信頼性の維持など、 Virtual Machines での信頼性のサポートについて説明します。

Azure を使用する場合、 信頼性は共有責任です。 Microsoft では、回復性と回復性をサポートするさまざまな機能を提供しています。 使用するすべてのサービスでこれらの機能がどのように機能するかを理解し、ビジネス目標とアップタイムの目標を達成するために必要な機能を選択する必要があります。

重要

仮想マシン (VM) の信頼性を考慮する場合は、VM で実行されるディスク、ネットワーク インフラストラクチャ、アプリケーションの信頼性も考慮する必要があります。 VM の回復性を向上させるだけで、他のコンポーネントに等しい回復性がない場合は、影響が制限される可能性があります。 回復性の要件によっては、複数の領域で構成の変更が必要になる場合があります。

運用環境のデプロイに関する推奨事項

ソリューションの信頼性要件をサポートするために VM をデプロイする方法と、信頼性がアーキテクチャの他の側面に与える影響の詳細については、「 Azure Well-Architected Framework での仮想マシンとスケール セットのアーキテクチャのベスト プラクティス」を参照してください。

信頼性アーキテクチャの概要

VM は、自分で VM をプロビジョニングする場合でも、透過的にプロビジョニングして管理する他の Azure コンピューティング サービスを使用する場合でも、Azure の基本的なコンピューティング ユニットです。

個々の VM は、 単一インスタンス VM とも呼ばれます。 これは、物理サーバーである特定のホストで実行されます。 ほとんどの VM は、ホストを他の VM と共有します。

VM を作成すると、基になるインフラストラクチャ内での実行場所に影響を与えることができます。 通常、信頼性、待機時間、分離の要件に基づいて配置の決定を行います。 Azure には、VM の配置方法に影響を与えるいくつかの構成オプションが用意されています。

  • 地域: VM を実行する Azure リージョン を選択できます。 リージョンは、複数のデータセンターを含む地理的な領域であり、それぞれが多数のホストを持つ場合があります。

  • 可用性ゾーン:可用性ゾーン は、各 Azure リージョン内のデータセンターの物理的に分離されたグループです。 可用性ゾーンをサポートするリージョンでは、VM が実行されているゾーンを選択できます。 詳細については、「可用性ゾーンのサポート」を参照してください。

  • 可用性セット: 可用性セットは、冗長性と可用性を提供するためにアプリケーションがどのように構築されているかを Azure が理解できるようにする VM の論理的なグループです。

    可用性セットを使用すると、Azure によって VM のグループが異なる 障害ドメインに分散されます。 このディストリビューションでは、共通の電源とネットワーク スイッチを共有する VM をグループ化することで、ローカライズされたハードウェア障害のリスクを最小限に抑えます。

    可用性セットでは、異なる 更新ドメインに異なる VM を配置することもできます。これは、Azure プラットフォームがプラットフォームの更新をロールアウトする方法を制御します。 更新ドメインを使用すると、一度に更新のために VM のサブセットのみが再起動されるようにすることができます。

  • 近接通信配置グループ: VM 間で可能な限り短い待機時間を実現する必要があるワークロードの場合は、 近接通信配置グループ を使用して、Azure で VM が物理的に近い場所に配置されるようにすることができます。 ただし、近接通信の配置は、データセンターの停止がグループ内のすべての VM に影響を与える可能性があることを意味します。 高い信頼性を実現するには、異なる可用性ゾーンに複数の近接配置グループをプロビジョニングすることが必要になる場合があります。

  • 専用ホスト:Azure Dedicated Host を使用して、厳密なコンプライアンス要件など、1 つ以上の VM を実行する独自の物理サーバーをプロビジョニングできます。 ただし、専用ホストをプロビジョニングすると、データセンターの停止がそのホスト上のすべての VM に影響を与える可能性があります。 高い信頼性を実現するには、異なる可用性ゾーンに複数の専用ホストをプロビジョニングすることが必要になる場合があります。

同様の機能を実行する VM のセットを作成する場合は、 Azure Virtual Machine Scale Sets を使用して VM をグループとして作成および管理することを検討してください。 スケール セットには、複数の可用性ゾーンに VM を分散するなど、信頼性の高いオプションも用意されています。

VM の可用性の詳細については、「 仮想マシンの可用性オプション」を参照してください。

一時的な障害

一時的な障害は、コンポーネントにおける短い断続的な障害です。 これらはクラウドのような分散環境で頻繁に発生し、運用の通常の範囲であり、 一時的な障害は、短時間の経過後に自分自身を修正します。 アプリケーションで一時的な障害を処理できることは重要です。通常は、影響を受ける要求を再試行します。

クラウドでホストされるすべてのアプリケーションは、クラウドでホストされている API、データベース、およびその他のコンポーネントと通信する際に、Azure の一時的な障害処理のガイダンスに従う必要があります。 詳細については、「一時的な障害を処理するための推奨事項」を参照してください。

VM で実行されるアプリケーションでは、サービスの一時的な中断がワークロードに影響しないように、適切な障害処理戦略を実装する必要があります。

可用性ゾーンのサポート

可用性ゾーン は、各 Azure リージョン内のデータセンターの物理的に分離されたグループです。 1 つのゾーンで障害が発生した際には、サービスを残りのゾーンのいずれかにフェールオーバーできます。

個々の VM は ゾーン 構成でデプロイできます。つまり、選択した単一の可用性ゾーンに固定されます。 ゾーン VM 自体では、ゾーンの停止に対する回復性はありません。 ただし、複数の VM を作成して異なる可用性ゾーンに配置し、VM インスタンス間でアプリケーションとデータを分散させることができます。 または、 仮想マシン スケール セット を使用して、複数の可用性ゾーンに VM のセットをデプロイすることもできます。

ゾーンベースの VM を構成しない場合は、 非ゾーン または リージョンと見なされます。 非ゾーン VM は、リージョン内の任意の可用性ゾーンに配置される場合があります。 リージョン内の可用性ゾーンで障害が発生した場合、非ゾーン VM が影響を受けるゾーンに存在し、ダウンタイムが発生する可能性があります。

リージョンのサポート

ゾーン VM は、 可用性ゾーンをサポートする任意のリージョンにデプロイできます。

ただし、一部の VM の種類とサイズは、特定のリージョンまたはリージョン内の特定のゾーンでのみ使用できます。 必要な VM の種類をサポートするリージョンとゾーンを確認するには、次のリソースを使用します。

  • 各リージョンで使用可能な VM の種類を確認するには、「リージョン 別に利用可能な製品」を参照してください。

  • 特定のリージョンの各ゾーン内でサポートされている VM の種類とサイズを確認するには、「 VM SKU の可用性を確認する」を参照してください。

費用

ゾーン VM と非ゾーン VM の間にはコストの違いはありません。

可用性ゾーンのサポートを設定する

このセクションでは、VM インスタンスの可用性ゾーンのサポートを構成する方法について説明します。

使用する可用性ゾーンを選択した場合、実際には "論理可用性ゾーン" を選択していることになります。 別の Azure サブスクリプションの他のワークロード コンポーネントをデプロイした場合、別の "論理可用性ゾーン" 番号を使用して、同じ物理可用性ゾーンにアクセスできる場合があります。 詳細については、「物理ゾーンと可用性ゾーン」を参照してください。

通常の運用

このセクションでは、VM インスタンスが可用性ゾーンのサポートを使用して構成され、すべての可用性ゾーンが動作している場合に想定される内容について説明します。

  • ゾーン間のトラフィック ルーティング: 異なる可用性ゾーンにある VM を含め、VM 間でトラフィックをルーティングする責任があります。 一般的な方法としては、Azure Load Balancer と Azure Application Gateway があります。 詳細については、「 負荷分散オプション」を参照してください。

  • ゾーン間のデータ レプリケーション: 異なる可用性ゾーン内の VM 間を含め、VM 間で行う必要があるデータ レプリケーションは、ユーザーが担当します。 VM 上で実行されるデータベースやその他の同様のステートフル アプリケーションは、多くの場合、データをレプリケートする機能を提供します。

ゾーンダウン エクスペリエンス

このセクションでは、VM インスタンスが可用性ゾーンのサポートを使用して構成されていて、その可用性ゾーンで障害が発生した場合に想定される内容について説明します。

  • 検出と応答: VM に影響を与えるゾーン障害を検出して対応する責任があります。

  • 通知:Azure Resource Health を使用してゾーンの障害を検出し、フェールオーバー プロセスをトリガーします。

  • アクティブな要求: ゾーン障害時に VM で発生したアクティブな要求またはその他の作業は、終了する可能性があります。

  • 予想されるデータ損失: ゾーン VM ディスクは、ゾーン障害時に使用できない可能性があります。

    ゾーン冗長ストレージ (ZRS) ディスクを使用していて、障害が VM に影響する場合は、障害が発生した VM から ZRS ディスクを 強制的にデタッチ できます。 この方法では、ZRS ディスクを別の VM に接続できます。

  • 予想されるダウンタイム: VM は、可用性ゾーンが復旧するまで停止したままです。

  • トラフィックの再ルーティング: 正常なゾーン内の他の VM へのトラフィックを再ルーティングする責任があります。

    ゾーン回復性の高いロード バランサーを構成し、正常性チェックを実行する場合、ロード バランサーは通常、失敗した VM を検出し、正常なゾーン内の他の VM インスタンスにトラフィックをルーティングできます。

ゾーンの回復

ゾーンが正常な状態になった後、ゾーン内の VM が再起動します。 ワークロードに必要なゾーン回復手順とデータ同期は、お客様が担当します。

ゾーン障害を検出するためのテスト

Azure Chaos Studio を使用して、実験の一部として VM の損失をシミュレートできます。 Chaos Studio には、VM をシャットダウンする機能など、 VM に組み込みの障害が用意されています。 これらの機能を使用して、ゾーン レベルの障害をシミュレートし、フェールオーバー プロセスをテストできます。

代替のマルチゾーン アプローチ

複数の VM を異なるゾーンにデプロイする場合、レプリケーション、負荷分散、フェールオーバー、フェールバック プロセスの構成と管理を行う必要があります。

一部のアプリケーションには、複数の VM にデプロイするときに役立つ組み込み機能が用意されています。 たとえば、 Azure VM 上の SQL Server には 、可用性ゾーン全体の構成と管理プロセスを簡略化するための一連の機能が用意されています。

アプリケーションが一度に 1 つのゾーンで実行され、ゾーン間でほぼ瞬時にフェールオーバーする必要がない場合は、 Azure Site Recovery ゾーン間ディザスター リカバリー (DR) の使用を検討できます。 ゾーン間 DR にはいくつかの重要な制限事項があるため、要件を十分に確認してください。

マルチリージョン サポート

Azure VM は単一リージョンのリソースです。 リージョンが使用できなくなった場合、VM も使用できなくなります。

代替のマルチリージョン アプローチ

複数の VM を異なるリージョンにデプロイできますが、レプリケーション、負荷分散、およびフェールオーバー プロセスを実装する必要があります。

Site Recovery は、VM とそのデータをセカンダリ リージョンにレプリケートすることで DR を有効にするサービスです。 ペアになっていないリージョンの組み合わせを含め、ほぼすべての Azure リージョンをセカンダリ リージョンとして選択できます。 詳細については、 Azure から Azure への DR アーキテクチャに関するページを参照してください。

一部のアプリケーションでは、データをレプリケートし、異なるリージョンを含む複数の VM に作業を分散するためのクラスターまたはその他のコンストラクトが作成されます。 これらのアプリケーションを使用すると、マルチリージョン ソリューションの構成を簡略化できます。

複数のリージョン間での VM の使用を示すアーキテクチャの例については、「 Azure Traffic Manager、Azure Firewall、Application Gateway を使用した複数リージョンの負荷分散」を参照してください。

サービスメンテナンス中の信頼性

Azure は、信頼性を確保するために、VM に対して定期的なメンテナンスを実行します。 メンテナンス アクティビティ中にワークロードを確実に運用できる方法は複数あります。

  • 可用性セットまたは仮想マシン スケール セットを使用する場合は、更新ドメインを構成できます。 更新ドメインは、異なる時間に異なる VM 間でメンテナンス アクティビティを分散するのに役立ちます。そのため、VM がすべて同時に再起動されるわけではありません。

  • メンテナンス 制御を使用して、VM にメンテナンスが適用されるタイミングをカスタマイズできます。 メンテナンス構成を使用して、ワークロードに合ったタイミングでスケジュールを設定できます。

  • 今後のメンテナンス アクティビティの通知を受け取ることができます。

詳細については、「 ゲストの更新プログラムとホストのメンテナンスの概要」を参照してください。

Backup

Virtual Machines は、Azure Backup を使用したバックアップをネイティブにサポートします。 Azure Backup は、バックアップを作成および管理することで仮想マシンを保護するためのネイティブ ソリューションを提供します。これには、接続されているすべてのディスクを含む VM 全体に対するアプリケーション整合性保護が備わっています。 この方法は、複数のディスクまたはアプリケーション対応バックアップの調整されたバックアップが必要な場合に最適です。 データベース ワークロードの場合は、トランザクション整合性保護と高速復旧オプションを提供するアプリケーション固有のバックアップ ソリューションを検討してください。

バックアップの頻度、保有期間、ストレージ構成をニーズに合わせてカスタマイズできます。 詳細については、 VM の Azure Backup に関するページを参照してください

バックアップでは、VM に接続されているディスクもサポートされます。 詳細については、「 Azure Disk Backup の概要」を参照してください。

サービス水準合意書

Azure サービスのサービス レベル アグリーメント (SLA) には、各サービスの期待される可用性と、その可用性の期待を達成するためにソリューションが満たす必要がある条件について記載されています。 詳細については、 オンライン サービスの SLA を参照してください。

VM の場合、SLA は可用性の基本レベルを提供します。 SLA で定義されているアップタイムの割合は、2 つ以上の VM があり、次のアクションを実行すると増加します。

  • これらの VM を 2 つ以上の可用性ゾーンにデプロイするように構成します。
  • これらの VM を可用性セットにデプロイするように構成します。

詳細については、 オンライン サービスの SLA を参照してください。

次のステップ