※この記事は翻訳されたものです。本記事の原文はこちら
Microsoft Azureのインフラは、アプリケーションとデータに高可用性を提供するように設計されています。Azureは、可用性ゾーン、ペアになっているリージョン、冗長化ストレージ、高速・低遅延ネットワーク接続など、高可用性を実現するさまざまなインフラオプションを提供しています。これらのサービスはすべて、お客様のビジネスクリティカルなアプリケーションの可用性を確保するためのサービスレベルアグリーメント(SLA)に支えられています。このブログでは、Azure仮想マシンでSQL Serverを実行する際の高可用性オプションについて説明します。
Azureインフラ
SQL Serverの高可用性オプションの説明をする前に、配置する必要がある重要なインフラについて説明します。可用性ゾーン、リージョン、ペアになっているリージョンは、Azureインフラの重要な概念で、アプリケーションとデータの高可用性を計画する際に理解しておくことが重要です。
可用性ゾーンは、電力、冷却、ネットワークの冗長化を提供する、リージョン内の物理的に離れた場所です。各可用性ゾーンは、1つまたは複数のデータセンターで構成されています。リソースを異なる可用性ゾーンに配置することで、計画的または計画外のメンテナンス、ハードウェア障害、または自然災害による停止からアプリケーションとデータを保護することができます。SQL Serverの導入に可用性ゾーンを活用すると、仮想マシンに対して99.99%の可用性SLAの認定を受けることができます。
リージョンとは、Azureのサービスが利用できる地理的な場所のことです。Azureには現在、世界中に60以上のリージョンがあり、それぞれに複数の可用性ゾーンがあります。異なるリージョンにリソースを配置することで、自然災害やその他の重大な事象による停止に対する保護をさらに強化できます。
ペアになっているリージョンとは、あらかじめ定義されたリージョンペアで、独自の関係を持ちます。最も注目すべきは、地理的に冗長化されたストレージが使用されている場合、ペアになっているリージョンが互いにデータを複製することです。ペアになっているリージョンのその他の利点は、リージョンのリカバリー順序、順次更新、物理的分離、およびデータレジデンシーです。ディザスターリカバリー計画を設計する際には、プライマリーおよびディザスターリカバリーのロケーションにペアになっているリージョンを使用することをお勧めします。
可用性ゾーンとペアになっているリージョンを、可用性グループやフェールオーバー クラスター インスタンスなどの高可用性オプションと組み合わせて使用することで、さまざまな障害に耐えられる高可用性と回復力を備えたSQL Serverデプロイを実現し、ダウンタイムを最小化できます。
SQL Server 可用性グループとフェールオーバー クラスター インスタンス
SQL Server 可用性グループ (AG) と SQL Server フェールオーバー クラスター インスタンス (FCI) は、いずれもSQL Serverの高可用性(HA)とディザスターリカバリー(DR)のソリューションですが、その仕組みは異なります。
AGはSQL Server Enterprise Editionの機能の一つで、データベースを複数のサーバー(レプリカと呼ばれます)に複製することで、障害発生時にも常に利用できるようにするHAソリューションのことです。AGを使用すると、単一のデータベースと複数のデータベースの両方に対してHAを提供することができます。
SQL Server Standard Editionでは、基本的なAGと呼ばれるものがサポートされています。SQL Serverの基本的なAGには、いくつかの制限があります。まず、基本的なAGは1つのデータベースしかサポートしません。複数のデータベースがある場合は、データベースごとにAGを用意し、関連するIPアドレスとロードバランサーを用意する必要があります。さらに、基本的なAGは、読み取り専用のレプリカをサポートしていません。基本的なAGは、単一のデータベースに対してHAを実装する場合は簡単ですが、より複雑なシナリオには適さない場合があります。
一方、SQL Server FCIはWindows Serverフェールオーバー クラスター (WSFC) であり、共有ストレージを使用する複数のサーバー(ノードと呼びます)でクラスターを作成することでHAソリューションを提供します。障害発生時には、あるノードで稼働しているSQL Serverインスタンスを別のノードにフェールオーバーすることができます。
SQL Server 2022 Enterprise Edition の新しい包含可用性グループ(CAG)は、ユーザーがCAGにシステムデータベースを作成し、それを複製できるようにすることで、AGの制限のいくつかに対処しています。CAGでは、SQLのログインやSQLエージェントのジョブなどを手動で同期させる必要がなくなります。
可用性グループとフェールオーバー クラスター インスタンスには、それぞれ長所と短所があります。AGは、読み取り可能なセカンダリー、同期および非同期レプリケーションなどの高度な機能を備えています。しかし、AGはSQL ServerのEnterprise Editionを必要とし、特に他のEnterprise Editionの機能が必要ない場合は、費用が高くなる場合があります。
FCIは、すべてのユーザー定義データベースとシステムデータベースを含む、SQL Serverインスタンス全体を保護します。FCIは、SQL Serverエージェントのジョブ、ユーザーアカウントとパスワード、データベースの追加と削除を含むすべての変更が、CAG を使用したSQL 2022だけでなく、すべてのバージョンのSQL Serverで自動的に調整されるため、管理が容易になります。また、FCIはSQL Server Standard Editionで利用できるため、費用対効果も高くなります。ただし、FCIは共有ストレージを必要とするため、可用性ゾーンやリージョン、ハイブリッドクラウド構成にまたがる環境にデプロイする場合には、課題があります。SIOSソフトウェアがSQL Serverの高可用性を実現する方法について、詳しくはこちらをご覧ください。
SQL Server フェールオーバー クラスター インスタンスのストレージオプション
複数の可用性ゾーンにまたがるSQL Server フェールオーバー クラスター インスタンスのストレージオプションについては、Azureファイル共有、ゾーン冗長ストレージを使用しているAzure共有ディスク、そしてSIOS DataKeeper Cluster Editionの3つのオプションがあります。4つ目のオプションとして記憶域スペース ダイレクト(S2D)がありますが、これは単一のAZデプロイに限定されているため、S2Dに基づくクラスターは99.99%のSLAの対象にはならず、AZ全体に影響を与える障害の影響を受けやすくなります。
Azureファイル共有
ゾーン冗長ストレージ (ZRS) は、Azureリージョン内の異なる可用性ゾーンにデータの複数のコピーを保存し、耐久性と可用性を向上させることができる機能です。このデータをCIFSファイル共有として共有し、クラスターはSMB 3プロトコルを使用して接続します。
Azure共有ディスク
ゾーン冗長ストレージ (ZRS) は、クラスターで使用するSQL Server データを格納できる共有ディスクです。SCSI永続予約により、アクティブなクラスターノードのみがデータにアクセスできるようになります。プライマリー可用性ゾーンに障害が発生すると、スタンバイ可用性ゾーンのデータがアクティブになります。ZRS を使用した共有ディスクは、米国西部 2、西ヨーロッパ、北ヨーロッパ、およびフランス中部リージョンでのみ利用できます。
SIOS DataKeeper Cluster Edition
SIOS DataKeeper Cluster Editionは、AzureでSQL Server フェールオーバー クラスターをサポートするストレージHAソリューションです。これはすべてのリージョンで利用でき、可用性ゾーンをまたいだフェールオーバーとリージョンをまたいだフェールオーバーをサポートする唯一のFCIストレージオプションです。また、オンプレミス構成からクラウド構成にまたがるハイブリッドクラウド構成も可能になります。
DataKeeperは、ローカルに接続されたストレージをすべてのクラスタノードで同期させるソフトウェアソリューションです。DataKeeperボリュームと呼ばれるサードパーティ製ストレージクラスのクラスターリソースとしてWSFCと統合されています。フェールオーバー クラスターは、DataKeeperボリュームのすべての管理を制御し、エンドユーザーにとってシームレスな体験を提供します。SIOS DataKeeperの詳細についてはこちらをご覧ください。
おわりに
結論として、AzureはSQL Serverデプロイメントの高可用性を実現するために、可用性ゾーン、リージョン、ペアになっているリージョンといった様々なインフラオプションを提供しています。これらのオプションを活用し、可用性グループやフェールオーバー クラスター インスタンスなどの高可用性ソリューションと組み合わせることで、さまざまな障害に耐え、ダウンタイムを最小限に抑えることができる高可用性と回復力を備えたSQL Serverデプロイメントを構築できます。
特定のニーズに最適なソリューションを選択する前に、必要なインフラと各オプションの長所・短所を理解することが重要です。SQLとAzureの専門家に相談してプロセスを説明してもらい、Azureのドキュメントやベストプラクティスも確認することをお勧めします。適切な計画と実装により、Azure上のSQL Serverデプロイメントが常にビジネスクリティカルなアプリケーションをサポートできるようにすることができます。
高可用性ソリューションの詳細については、弊社担当者までお問い合わせください。