クラウド時代のHA(冗長化)

2010年7月28日(水)
金野 諭Guy Naor(ガイ・ナオール)

HAシステムの構成要素

以下では、Webアプリケーション・システムの全要素をHA化した"フルHA"システムを例に挙げ、HAシステムの構成を詳細に解説します。Webアプリケーション・システムは、機能別に、以下の3つのブロックに分類できます。

  • アプリケーション/サービス部: アプリケーションやサービスを実際に実行
    • Webサーバー
    • アプリケーション・サーバー
    • データベース・サーバー
    • メッセージング・サーバー(電子メール、SMS、キューイング・サーバーなど)
    • 特殊サーバー(検索、分析サーバーなど)
  • リソース部: アプリケーションやサービスの実行に必要なリソースを提供
    • ストレージ・サーバー(SAN、NAS、オブジェクト・ストアなど)
    • ネットワーク機器(ロード・バランサ、ファイア・ウォール、ルーター、スイッチなど)
    • リソース・サーバー(物理サーバー、仮想サーバー(それを管理するハイパーバイザ)など)
  • 監視/管理部: システムと連携する、監視、バックアップ、アラート系システム
    • 監視/アラート・システム(nagios、Zabbix、icinga、SMSゲートウエイなど)
    • 設定管理システム(puppet、chef、cfengineなど)
    • クラウド管理システム(Eucalyptus、Open Nebula、cloud.com CloudStack、XenServerなど)
    • バックアップ・システム
    • インフラ/アプリケーション管理システム(mCloud Controller、RightScale、vCenterなど)

フルHA環境下では、これらの構成要素が、すべて必要になります。

特に、監視/管理部は、大規模インフラを合理的に管理するために必須です。例えば、第3回で紹介したPuppetのような設定管理システムを活用することで、数百から数千台ある仮想サーバーを簡単に管理できるようになります。

監視/管理部では、自動化が何よりも重要です。監視/管理の自動化によって、障害発生時や負荷増大時に、自動修復や、自動スケール・アウト/自動スケール・インなどによって、可用性やサービス・レベルを自動的に維持できます。

HAの具体的な構成方法

以下では、HAの具体的な構成方法として、ツールの設定方法を解説します。以下に示すシステム構成例は、単純なシステムではあるものの、実際に稼働する例です。あらゆるWebアプリケーション・システムの基盤として参考にできるものです。

  • フロント・バランサ: Linux LVS
  • Webサーバー: nginx
  • アプリケーション・サーバー: Ruby on Rails上のMongrel
  • データベース・サーバー: PostgreSQL
  • プロセス監視: monit
  • システム監視・アラート: icinga
  • クラウド管理: Eucalyptus

HAの論理構成

図1は、典型的なWebシステムの階層を示したものです。それぞれの要素がどのように階層化され、どのように関連し合っているのかを示しています。すべての構成要素はメッシュ構成で結合され、冗長化されています。冗長化された構成要素は、同じデータ・センター内にあっても、地理的に離れた場所にあっても、どちらでも構いません。

図1: WebアプリケーションのHA構成(クリックで拡大)

図1を見ると、1つのWebサーバーに障害が発生しても、ほかの2つがその代用として動き続けることが分かります。また、アプリケーション・サーバーを構成するクラスタに障害が発生した場合、残った2つの正常なクラスタが、そのリクエストを処理できることが分かります。

つまり、それぞれの冗長化されたサーバー要素は、分散することで、さらにその障害率を下げることができます。同じデータ・センター内であっても、電源系統、ネットワーク系統、消火システム系統などが異なる場所同士で冗長化を実現することで、ローカル障害の回避率を上げることができます。

それぞれの構成要素は、最低でも2つの異なったアベイラビリティ・ゾーン(アクティブ稼働しているサイト)で稼働させることを推奨します。特に、国境を越えたアベイラビリティ・ゾーンを利用することで、さらにその可用性を高められます。

株式会社モーフ・ラボ 代表取締役社長 米国Morphlabs, Inc. 副社長

大学卒業後、システムエンジニアとして、データベースやネットワークなどインフラ設計・構築に携わった後、2年間の米国留学を経て、ベンチャー・キャピタリストに。クラウド黎明期の2006年からクラウド関連の投資や事業支援を行う中、この分野の将来性に魅力を感じ、2010年に株式会社モーフ・ラボを立ち上げる。

著者
Guy Naor(ガイ・ナオール)
米国Morphlabs, Inc. CTO

1981年からコンピュータ関連の業務に携わっており、ほとんど全ての言語での開発経験を持ち、多数のシステム運用経験をもつ。現在は、クラウドを一般化し、多くの方に利用してもらう仕組みを考えることにフォーカスしている。時間がある時には、マラソンやダイビングなどをして楽しむ。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています