次の方法で共有


Azure 仮想マシンとマネージド ディスクで高可用性を実現するためのベスト プラクティス

Azure には、Azure 仮想マシン (VM) と Azure マネージド ディスクの高可用性を実現するための構成オプションがいくつかあります。 この記事では、マネージド ディスクの既定の可用性と持続性について説明し、アプリケーションの可用性と回復性をさらに高めるための推奨事項を示します。

概略

構成 推奨事項 メリット
単一の VM で実行されているアプリケーション Ultra Disks、Premium SSD v2、Premium SSD ディスクを使います OS ディスクとして Premium SSD ディスクのみを使用し、Ultra Disks、Premium SSD v2、または Premium SSD ディスクをデータ ディスクとして使用する単一の VM は、アップタイム サービス レベル アグリーメント (SLA) が最も高く、これらのディスクの種類は最良のパフォーマンスを提供します。
ゾーン冗長ストレージ (ZRS) ディスクを使います ゾーン全体で障害が発生した場合でも、データにアクセスできます。
複数の VM で実行されているアプリケーション ゾーン冗長仮想マシン スケール セットとフレキシブル オーケストレーション モードを使って複数の可用性ゾーンに VM とディスクを分散するか、3 つの可用性ゾーンに VM とディスクをデプロイします。 複数のゾーンにデプロイすると、複数の VM のアップタイム SLA が最も高くなります。
リージョン仮想マシン スケール セットとフレキシブル オーケストレーション モードまたは可用性セットを使って、複数の障害ドメインに VM とディスクをデプロイします。 障害ドメインにデプロイすると、複数の VM のアップタイム SLA が 2 番目に高くなります。
VM 間でディスクを共有するときは ZRS ディスクを使います 共有ディスクが単一障害点にならないようにします。

マネージド ディスクの可用性と持続性

高可用性を実現するための推奨事項に進む前に、マネージド ディスクの既定の可用性と持続性を理解しておく必要があります。

マネージド ディスクは 99.999% の可用性になるように設計されており、少なくとも 99.999999999% (イレブン ナイン) の持続性を提供します。 マネージド ディスクを使うと、データが 3 回レプリケートされます。 3 つのコピーのいずれかが使用できなくなった場合、Azure はバックグラウンドでデータの新しいコピーを自動的に生成します。 これにより、データの永続化と高いフォールト トレランスが保証されます。

マネージド ディスクには、ローカル冗長ストレージ (LRS) ディスクとゾーン冗長ストレージ (ZRS) ディスクという 2 つの冗長モデルがあります。 次の図は、各モデルでデータがどのようにレプリケートされるかを示しています。

LRS が 1 つの可用性ゾーンにデータをレプリケートするのに対し、ZRS は 3 つの異なる可用性ゾーンにデータをレプリケートすることを示す図。

LRS ディスクは 1 年間で少なくとも 99.999999999% (11 個の 9) の持続性を備え、ZRS ディスクは 1 年間で少なくとも 99.9999999999% (12 個の 9) の持続性を備えています。 このアーキテクチャにより、Azure はサービスとしてのインフラストラクチャ (IaaS) ディスクのエンタープライズ レベルの持続性を、業界トップレベルの年間故障率 0% で一貫して提供できます。

単一の VM で実行されているアプリケーションに関する推奨事項

レガシ アプリケーション、従来の Web サーバー、基幹業務アプリケーション、開発とテスト環境、小規模なワークロードはすべて、単一の VM で実行される可能性があるアプリケーションの例です。 これらのアプリケーションには複数の VM 間でのレプリケーションによるメリットはありませんが、それでもディスク上のデータは 3 回レプリケートされ、次の手順により可用性をさらに高めることができます。

Ultra Disks、Premium SSD v2、または Premium SSD を使用する

OS ディスクとして Premium SSD ディスクのみを使用し、Ultra DisksPremium SSD v2、または Premium SSD ディスクをデータ ディスクとして使用する単一の VM は、単一 VM のアップタイム サービス レベル アグリーメントが最も高く、これらのディスクの種類は最良のパフォーマンスを提供します。

ゾーン冗長ストレージ ディスクを使用する

ゾーン冗長ストレージ (ZRS) ディスクは、3 つの可用性ゾーン間でデータを同期的にレプリケートします。これらは、独立した電源、冷却、ネットワーク インフラストラクチャを備えている、リージョン内の分離されたデータ センター グループです。 ZRS ディスクを使うと、ゾーンの障害が発生した場合でもデータにアクセスできます。 また、ZRS データ ディスクを使用すると、問題が発生している VM から強制的にデタッチできます。 ZRS ディスクには制限があります。詳細については、冗長性オプションに関する記事の「制限事項」セクションを参照してください。

複数の VM で実行されているアプリケーションに関する推奨事項

クォーラム ベースのアプリケーション、クラスター化されたデータベース (SQL、MongoDB)、エンタープライズ グレードの Web アプリケーション、ゲーム アプリケーションはすべて、複数の VM で実行されるアプリケーションの例です。 複数の VM で実行されるアプリケーションでは、プライマリ VM と複数のセカンダリ VM を指定し、これらの VM 間でデータをレプリケートできます。 このセットアップを使うと、プライマリ VM がダウンした場合にセカンダリ VM にフェールオーバーできます。

複数の VM は、複数の可用性ゾーンにデプロイするとアップタイム サービス レベル アグリーメント (SLA) が最も高く、複数のストレージとコンピューティング障害ドメインにデプロイするとアップタイム SLA が 2 番目に高くなります。

VM とディスクを可用性ゾーン全体に分散する

可用性ゾーンは、独立した電源、冷却、ネットワーク インフラストラクチャを備えている、リージョン内の分離されたデータ センター グループです。 これらは、他の可用性ゾーンに低遅延で接続できる十分な近さですが、複数のゾーンが局所的な停電や気象による影響を受ける可能性が低下するほどには十分離れています。 詳しくは、「可用性ゾーンとは」をご覧ください。

3 つの可用性ゾーンに分散すると、複数の VM の SLA は最も高くなります。 複数の可用性ゾーンに分散された VM とディスクの場合、ディスクとその親の VM はそれぞれ同じゾーンに併置されるため、1 つのゾーン全体で障害が発生した場合でも、複数の VM がダウンすることはありません。 現在、可用性ゾーンはすべてのリージョンでは利用できません。「可用性ゾーンをサポートする Azure リージョン」をご覧ください。

複数の可用性ゾーンに分散された VM は、単一の可用性ゾーンに分散された VM よりネットワーク待ち時間が長くなる可能性があり、これは超低遅延を必要とするワークロードで問題になる場合があります。 低遅延が最優先事項の場合は、「複数の障害ドメインに VM とディスクをデプロイする」で説明されている方法を検討してください。

複数の可用性ゾーンにリソースをデプロイするには、ゾーン冗長仮想マシン スケール セットまたは複数の可用性ゾーンへのリソースのデプロイを使用できます。

次の図は、複数の可用性ゾーンに直接デプロイする場合、またはゾーン冗長 Virtual Machine Scale Sets を使う場合に、VM とディスクが同じゾーンにどのように併置されるかを示しています。

可用性ゾーンの VM とディスクの併置を示す図。

ゾーン冗長仮想マシン スケール セットとフレキシブル オーケストレーションを使用する

Virtual Machine Scale Sets を使うと、負荷分散された VM のグループを作成して管理できます。 VM インスタンスの数は、需要に応じて自動的に調整するか、ユーザーが定義するスケジュールのとおりにすることができます。 ゾーン冗長仮想マシン スケール セットは、複数の可用性ゾーンにデプロイされた仮想マシン スケール セットです。 「ゾーン冗長またはゾーン スパニング」をご覧ください。

フレキシブル オーケストレーション モードを使うゾーン冗長仮想マシン スケール セットでは、VM とそのディスクが、デプロイされているリージョン内の 1 つ以上のゾーンにレプリケートされ、アプリケーションとデータの回復性と可用性が向上します。 この構成では、VM は既定では選択したゾーン間にベスト エフォート アプローチで分散されますが、デプロイでゾーンのバランスを厳密に指定することもできます。

3 つの可用性ゾーンに VM とディスクをデプロイする

VM とディスクを可用性ゾーン間に分散させるもう 1 つの方法は、3 つの可用性ゾーンに VM とディスクをデプロイすることです。 このデプロイでは、リージョン内の複数のデータ センター間で VM とディスクの冗長性が提供されるため、データ センターまたはゾーンで障害が発生した場合に別のゾーンにフェールオーバーできます。

複数の障害ドメインに VM とディスクをデプロイする

複数の可用性ゾーンに VM とディスクをデプロイできない場合、または超低遅延の要件がある場合は、代わりに複数の障害ドメインにデプロイできます。 障害ドメインでは、共通の電源とネットワーク スイッチを共有する VM のグループが定義されます。 詳しくは、「可用性セットのしくみ」をご覧ください。

次の方法により複数の障害ドメインにデプロイされた VM とディスクでは、ディスクのストレージ障害ドメインが、それぞれの親 VM のコンピューティング障害ドメインと一致しているため、単一のストレージ障害ドメインで障害が発生した場合に、複数の VM がダウンするのを防ぐことができます。

障害ドメインにデプロイすると、複数の VM のアップタイム SLA が 2 番目に高くなります。 詳しくは、SLA の Virtual Machines に関するセクションをご覧ください。

複数の障害ドメインにリソースをデプロイするには、リージョン仮想マシン スケール セットまたは可用性セットを使用できます。

次の図は、リージョン Virtual Machine Scale Sets または可用性セットを使う場合のコンピューティング障害ドメインとストレージ障害ドメインの配置を示しています。

リージョン Virtual Machine Scale Sets と可用性セットがある障害ドメインの配置を示す図。

リージョン仮想マシン スケール セットとフレキシブル オーケストレーションを使用する

リージョン仮想マシン スケール セットは、明示的に定義された可用性ゾーンを持たない仮想マシン スケール セットです。 リージョン仮想マシン スケール セットでは、VM リソースが、デプロイされているリージョン内の障害ドメイン間でレプリケートされて、アプリケーションとデータの回復性と可用性が向上します。 この構成では、VM は既定で複数の障害ドメインに分散されますが、VM の作成時に障害ドメインを割り当てることもできます。 詳細については、このセクションを参照してください。

リージョン仮想マシン スケール セットは、データ センターやリージョンの停止のような大規模な停止からは保護されず、現在、Ultra Disks または Premium SSD v2 ディスクはサポートされていません。

可用性セットを使用する

可用性セットは VM の論理的なグループであり、VM は異なる障害ドメインに配置され、相関した障害によって関連する VM が同時に停止する可能性が低下します。 可用性セットは、可用性ゾーンと比べて VM 間の待ち時間も向上します。

可用性セットは、VM の障害ドメインを選択できず、可用性ゾーンで使用できず、データ センターやリージョン全体の障害から保護されず、Ultra Disks または Premium SSD v2 ディスクを現在サポートしていません。

VM 間でディスクを共有するときに ZRS ディスクを使用する

複数の VM 間でディスクを共有する場合は、ZRS を使う必要があります。 LRS を使用した場合、共有ディスクがクラスター化されたアプリケーションの単一障害点になります。 つまり、共有 LRS ディスクで障害が発生した場合、このディスクがアタッチされているすべての VM でダウンタイムが発生します。 ZRS ディスクを使うと、ディスクのデータが 3 つの異なる可用性ゾーンに存在するので、これが軽減されます。 共有ディスクについて詳しくは、「Azure マネージド ディスクの共有」をご覧ください。

次のステップ