展開パターン 3: 2 Web – 1 Index – 2 DB 構成

MOSS デザインパターン (archive)

コンテキスト

MOSS の利用が進み、サービス ダウンが重要なビジネス損失としてとらえられるようになってきました。
MOSS は、Web コンポーネントとデータ ストア コンポーネントに分離したので、複数台のサーバーでクラスター化を進めることができるようになっています。

問題

障害や定期メンテナンスで発生するサービスダウンの時間を最小限にするため、最低限の可用性を確保する必要があります。

解決策

Web フロントエンド サーバーでは、並列処理を行うためのネットワーク ロード バランサー (NLB) でクラスター化します。

データベース サーバー側は、アクティブ / パッシブの構成となる、MS クラスター サービス (MSCS) で構成します。
また、インデックス サービスは冗長化できません。インデックス サービスは CPU リソースをバースト的に使用するため、負荷要件が異なります。Web フロントエンド サーバーに差異を持たせないためにも別サーバーに分離して構成します。
クエリー サーバーは冗長化できるので、Web ブロントエンド サーバー内に組み込んで構いません。Query, Excel Calcuration Service, Document Conversion Service なども Web フロントエンド サーバーで実行します。
この構成は、多くの企業で採用される基本構成であるので、覚えておいてください。

なお、NLB ではなく通常のハードウェア ロード バランサー (HLB) を使用することもできます。多くの場合、過剰投資となることが多いだけではなく、HLB を使用するほうが NLB を使用するよりも障害や問題点が多くなる傾向があります (製品やソフトウェアに起因するわけではなく、運用上の問題です)。

注意

NLB と MSCS を同じサーバーで実行することはできません。そのため、可用性を考慮した冗長化構成にする場合、DB のロールは必ず分離をしておく必要があります。
Web フロントエンド サーバーでは、アプリケーションの実行に必要なデータに差異を持たせないでください。また、インメモリでアプリケーション変数を持つ場合、データベースに格納することを検討し、かならず 2 台のフロントエンドで差異が無いようにする必要があります。

コメント

タイトルとURLをコピーしました