最近では、大規模災害に備え、AZだけではなくリージョンを跨いだ「クロスリージョン構成」のお問い合わせをいただく機会が増えています。当社のHAクラスターソフトウェア「LifeKeeper for Windows /DataKeeper for Windows Cluster Edition」でもAWSリージョン間クラスター構成について、v8.9.1よりサポートを開始しました。LifeKeeper for Linuxではバージョン9.2.2からVPC Peeringによるクロスリージョンをサポートしておりますので、このたびLinuxとWindowsのどちらのモデルでもサポートとなりました。
本記事では、AWSのクロスリージョン構成とシングルリージョン構成(マルチAZ構成)、どちらの構成がどういう場合に適しているのか、LifeKeeper/DataKeeperで実現する場合のメリット・デメリットを交えて比較をしています。AWS上でHAクラスターを導入する場合、どのような構成にするのが最適なのか、ぜひご参考にしていただければと思います。
リージョンとアベイラビリティーゾーン
まずは、クロスリージョン構成とシングルリージョン構成の解説の前に、AWSにおける「リージョン」と「アベイラビリティーゾーン」について解説します。
リージョン
リージョンとは、「地域」「範囲」などを意味し、ITにおけるリージョンとは、地理的に独立したデータセンターの所在地のことを指します。たとえば「東日本リージョン」「西日本リージョン」と呼ばれます。
リージョンは他のリージョンと完全に分離されるように設計されています。そのためAWSの管理コンソールでは指定したリージョンに結び付けられているリソースのみが表示されます。各リージョンが相互に分離されることで、操作ミスなどによりリージョン間でのレプリケートなどが発生しないよう配慮されています。またリージョン間のデータ転送にはインとアウトで各リージョンごとに料金がかかります。詳細は、Amazon EC2 オンデマンド料金をご確認ください。
アベイラビリティーゾーン(Availability Zone, AZ)
アベイラビリティゾーン (AZ) とは、同じリージョン内にある独立したデータセンタのまとまりのことを指します。AZは1つ以上のデータセンタから構成されています。
アベイラビリティゾーン(以下、AZ)は、各リージョンに複数配置された独立したゾーンを示します。AZはそれぞれ独立して構成されているため、1 つのAZで障害が発生しても、別のAZで稼働するインスタンスの動作は保証されます。そのため、当社のHAクラスター構成でのクラスターノードは、別々のAZとなるよう配置して、障害対策とすることが可能です。
AWSのユーザーガイドにも、障害対策の単位としてAZを分けることが挙げられています。詳細はリージョンとゾーンをご確認ください。
シングルリージョン構成とクロスリージョン構成
つぎに、上記で解説したAZ間での構成「シングルリージョン構成(マルチAZ構成)」とリージョン間をクロスした構成「クロスリージョン構成」についてLifeKeeper/DataKeeperで実現する場合のメリット、デメリットを紹介します。
シングルリージョン構成(マルチAZ構成)
AZ間での構成では、各ノードをAZで分けて配置して、接続用インターフェースとして ルートテーブル(もしくはRoute53)を使用した構成を行います。下記の概念図はルートテーブルを使用した構成になります。
クラウドの構成については参考ページ内の以下の項目をご参照下さい。
→[Q:LifeKeeperおよびDataKeeperは、Amazon EC2上でどんな構成をサポートしていますか?]
AZを跨いだ上記の構成は、AZでの障害(ネットワーク障害など)が発生してもサービスを自動的に別ノードに切り替え、サービス提供を自動的に継続することが可能です。そのためリージョン全体で影響を及ぼすような大規模災害には対応できませんが、AZ単位での障害などではサービスを継続することが可能です。
LifeKeeper/DataKeeperでは、AWSのAZ(Availability Zone)を跨いだHAクラスター構成を標準的なサポート構成としています。障害はAZを跨ぐことで隔離されるため、AZを跨ぐことで広域障害にも対応できて基幹系システムに求められるような高い可用性を実現します。
シングルリージョン構成のメリット
シングルリージョン構成(マルチAZ構成)のメリットとしては、AZ間でのクラスター構成でも特定のAZで障害が発生しても他のAZ上でサービスの継続が可能なことや、シングルリージョンによる構成ではAWS管理コンソールが一画面で管理可能なことがあります。またクロスリージョンと比較した場合は、データ転送速度やデータ転送コストが抑えられることもメリットとなります。
シングルリージョン構成のデメリット
デメリットとしては、複数のAZで障害発生した場合はサービスの継続が出来ない可能性があることです。ただしこのデメリットは2重障害を想定しているため、発生する可能性は低いと考えています。
クロスリージョン構成
クロスリージョン構成は、大規模災害への対策を想定した構成となります。日本国内のデータを日本国外のデータセンターへレプリケーションを行い、HAクラスターのスタンバイノードとして採用することも可能です。国内リージョンであれば東京と大阪リージョン間になりますが、物理構成では実現性の低かった東京と大阪間でのHA構成やレプリケーション構成が、AWSでは実現が容易となります。
クロスリージョン構成は、国内の場合、東京リージョンと大阪リージョンのVPCを VPC Peeringで接続して、各リージョンにクラスターノードを配置します。接続用インターフェースはRoute53 ARKを使用した構成となります。
クロスリージョン構成のメリット
クロスリージョン構成のメリットは、AZ間でのクラスター構成では防げないような複数のAZで障害が発生するような大規模な災害時に、いち早くサービスの復旧が可能となる点です。
クロスリージョン構成のデメリット
デメリットは、リージョン間でのデータ転送費用やVPC Peering のサービス使用によるコストの上昇が考えられます。また複数のリージョンを使用した設計となりますので、複数のAWS管理コンソールを用いた複雑な設定作業が必要となります。また、リージョン間の通信遅延の問題や、クラスターで保護しているアプリケーションだけ別リージョンに切り替えても、他の関連するアプリケーションをどうするのか?という問題を考慮する必要などもあります。
クロスリージョン構成は、大規模災害時でも迅速な復旧が求められる場合に適した構成となります。しかし、リージョン全体が使えなくなる可能性は非常に低いことが考えられ、発生頻度の低い障害に対する費用対効果を考慮すると、多くの導入ケースではクロスリージョン構成までは必要ないと考えています。
比較表
シングルリージョン(マルチAZ)構成とクロスリージョン構成、それぞれの構成についてまとめると以下のようになります。
上記のようにまとめた結果として、当社では殆どのシステムにおいてマルチAZ構成での導入で十分な高可用性が保てると考えています。
AWS社の「リージョンとゾーン」でも、AZ間はインスタンス配置を高可用性を実現する方法として取り上げられています。クロスリージョン構成は耐障害性は高いものの、他方で課題として検討する項目が多くあります。そのため、殆どのシステムではクロスリージョン構成までは必要なく、マルチAZ構成で可用性が保てることになります。現在、AWSでの高可用性についての構成で検討が必要な方や相談が必要な方は、当社の以下の窓口より問い合わせが可能です。構成の検討にお役立てください。
さいごに
本記事では、AWSのクロスリージョン構成とマルチAZ構成について、障害対策という切り口で解説しました。クラウド環境での障害対策についてもっと知りたい方は、マンガでわかりやすく解説した資料もご用意していますのでぜひご覧ください!
参考資料
[LifeKeeper for Linux] AWS VPC ピアリングによる LifeKeeper クラスター間接続クイックスタートガイド
[LifeKeeper for Windows] AWS VPC ピアリング接続を使用した複数 VPC クラスター構成クイックスタートガイド