オープンソース

AWS上でのクラスタ化

クラスタ化の概要

AWSのようなパブリッククラウドのIaaS、PaaSサービスでは、クラウド事業者側の仕組みでシステムの冗長性がある程度は担保されています。しかし、こうした担保はハードウェアレイヤーに限られています。残念ながら、パブリッククラウド側でアプリケーションが正常に動作していることを監視することはできません。そのため、重要なサービスを提供する場合には、AWS上でもクラスタソフトウェアを使った冗長構成が利用されています。

クラスタ化のポイント

キャラクター:クラー

AWS上でクラスタサーバを作る場合には、次のような点を考慮する必要があります。

サービス用アドレスの切り替え方法

AWSでは、サーバに自由にIPアドレスを割り振ることができません。そのため、Pacemakerなどのクラスタソフトウェアが用意している仮想IPアドレスを割り当てる仕組みを、そのまま利用することができません。

データの共有

AWSでは、NFSやRDBなどはクラウドサービスとして提供されています。こうした仕組みは強固に冗長化されているため、それを上手く使ってデータ共有を行うことが望ましいです。一方で、アプリケーションのデータを冗長化するためには、NFSやRDBだけでは不十分な場合もあります。そのような場合には、DRBDなどの仕組みを使ってデータを冗長化することを検討します。

リージョンとアベイラビリティゾーン

クラスタを構成するコンピュータが、物理的に同じハードウェア上に存在していることは好ましくありません。また、より重要なサービスでは地理的にも異なるロケーションに配置することが好ましいと考えられます。一方で、DRBDを利用する場合には、データを共有するサーバ間ではレイテンシーが一定以下になるように構成する必要があります。通信の遅延が発生すると、データの同期を取りつづけることが難しくなってしまうからです。

クラスタシステムの構築例1

次は、AWS上でLDAPサーバを冗長化した場合の構築例です。構築例2に比べて、サービス停止の検知が早い方法です。

  • Pacemakerなどのクラスタソフトウェアを使って、稼働系サーバでLDAPサービスが動作するように設定を行います。
  • クラスタソフトウェアから、LDAPサービスが適切に稼働していることを監視します。
  • サービスIPアドレスの設定は、稼働系サーバのIPアドレスをグローバルNATと連携する方法で行います(AWSのAPIを利用して、クラスタソフトウェアからグローバルNATを設定します)。
  • LDAPのデータ領域をDRBDで共有します。

図:クラスタシステムの構築例1

クラスタシステムの構築例2

次は、AWS上でLDAPサーバを冗長化する場合のもう一つの構築例です。構築例1に比べて、サービス停止の検知から切り替わりに時間が掛かるのが欠点です。

  • Pacemakerなどのクラスタソフトウェアを使って、稼働系サーバでLDAPサービスが動作するように設定を行います。
  • クラスタソフトウェアから、LDAPサービスが適切に稼働していることを監視します。
  • LDAPサービスをELBに設定し、2台のサーバに負荷分散する設定を行います。
  • ELBでは、ldapポートのサービス監視を設定します。

図:クラスタシステムの構築例2

OSSでクラスタ化するメリット

キャラクター:スター

AWSの冗長化の機能だけでは、アプリケーションレベルで正しく動作していることまでを監視することができません。OSSのクラスタソフトウェアを利用することで、リーズナブルな費用で、サービスレベルでの監視までを実現することができます。

AWSで用意されていないサービスも冗長化できる

RDB、ElasticSearch、NFSなど、AWSでは高度な冗長化を提供するサービスメニューが用意されています。OSSのクラスタソフトウェアを上手く使うことで、それ以外のアプリケーションや独自ソフトウェアのデータなどを冗長化することができます。

サービスの監視や切り替えを自由に設計できる

AWSでは多くのAPIが公開されています。OSSのクラスタソフトウェアでは、こうしたAPIを活用して、サービスの監視や切り替えの仕組みを自由に構築することができます。公開されているAPIを、フル活用することができます。

サービス費用の削減

ELB、RDB、ElasticSearch、NFSなどのAWSのサービスを利用すれば、高度な冗長性を手に入れることができます。ただし、それには別途費用が毎月必要になります。クラスタは、最小2台のノードがあれば構成することができます。そのため、小規模なシステムではむしろ割安になる場合もあります。

クラスタ化の注意事項

AWSでのクラスタ化では、次の点に注意する必要があります。

  • ノード間のレイテンシー

    DRBDは、通信の遅延(レイテンシー)には非常に敏感です。そのため、リージョンとアベイラビリティゾーンを適切に選び、あまり遅延が大きくないことを確認しておく必要があります。

  • 監視のタイムアウトやリトライは緩めに設定する

    AWSに限らず、クラウド環境では公開されていない小さな障害が頻繁に起こっているようです。ただ、そうした障害は自動的に復旧され問題になることはありません。しかし、ping監視などを厳しく設定していると頻繁にクラスタが切り替わりを起こしたりする原因になります。

  • ベンダー選定

    AWSの専門ベンダーでもクラスタに詳しいとは限りません。AWSでのクラスタ化を検討する場合には、クラスタソフトウェアに詳しいベンダーを選択することをお勧めします。

その他の構築事例

メールサーバのクラスタ化
メールサーバの停止は、ビジネスの停止につながるリスクがあります。クラスタ化することで、メールサーバが停止するリスクを最小限に抑えることができます。
WEB-DBサーバのクラスタ化
OSSのクラスタソフトウェアとデータベースソフトウェアを効果的に組み合わせることで、WEB-DBサーバを冗長化することができます。
NFSサーバのクラスタ化
NFSサーバを冗長化しないと、NFSサーバがシステム内の単一障害点になってしまいます。そのため、共有ファイルシステムを構築する時は、冗長性を確保することがとても大切です。
Windowsファイル共有サーバのクラスタ化
Linux上で動作するSambaとOSSのクラスタソフトウェアを組み合わせることで、Windowsファイル共有のサーバを冗長化することができます。
AWS上でのクラスタ化
AWSの冗長化の機能だけでは、アプリケーションレベルで正しく動作していることまでを監視することができません。OSSのクラスタソフトウェアを利用することで、サービス監視までを実現することができます。

ご検討用の資料をご用意しております。

様々な事例を集めたモデルプラン(費用例付き)をお送りしています。

代表的な事例を集めた「モデルプラン」をお送りしています。費用の例も記載しておりますので、価格感も知って頂ける資料となっております。
ご希望の方は、下記よりお申し込みください。


モデルプランをご希望の方

デモの申し込みイメージ

各種費用についてのお問い合わせ

コンサルティング費用、設計費用、構築費用、運用費用、保守費用など、各種費用についてのお見積もりは以下のフォームよりお気軽にお問合せ下さい。


unboundやPowerDNSを使用したDNSサーバのモデルプランをご希望の方

全国対応可能イメージ

totop