LBによるスケーラブルなネットワーク設計

2010年2月8日(月)
服部 照久(はっとり てるひさ)

Equalizerの特性を知る

以下では、実際のネットワーク構成におけるロード・バランサの動きについて詳細に解説します。ここでは、L2SWについては割愛し、ロード・バランサ本体の動作と、運用で必須となる特性について記載します。

図3-Aは、Webサーバーの負荷分散(ホット・スペアあり)とメール・サーバーの負荷分散を設定した例です。Equalizerはデュアル・ネットワーク構成となります。

図中の「IP-EQ-LAN」は、各サーバーのデフォルト・ゲートウエイとなっている、Equalizerのローカル側VIP(仮想IPアドレス)です(実際には2台のEqualizerで冗長化して作られるVIPです)。

一方、「VIP1」と「VIP2」は、Equalizerに付ける、サービス公開用のグローバルIPアドレスです。このグローバルIPアドレスへインターネットからアクセスされた場合に、各設定に従ってWebサーバーやメール・サーバーに負荷を分散します。

ホット・スペア設定であるWebサーバー(Sv05)は、メンテナンス中などに専用のコンテンツを返すサーバーとして設計しておきます。Equalizerのホット・スペア機能では、“すべてのサーバーが停止した場合”に、このホット・スペア用サーバーに接続されます。

OutGoing通信時はWAN側実IPがソースIPになる

図3-Bは、Equalizerを特徴付けるOutGoing(アウトゴーイング)通信の例です。OutGoing通信とは、各サーバーからインターネット側へ開始される通信を指します。

Web/Mail/SorryなどEqualizer配下に収容されているサーバーから通信が開始される場合には、“Equalizer-AのWAN側実IP”をソースIPアドレスとして、インターネットへの通信が行われます。

例えば、メール・サーバーの「IP-C」や「IP-D」からインターネットへとメールを送信する場合は、メール・サーバーへ負荷を分散しているグローバルIPである「VIP2」は使われず、実IPアドレスである「IP-EQ-WAN」をソースIPアドレスとして利用します。

昨今のメール・サーバーでは、メール送信元IPアドレスをDNS(Domain Name System)で正しく逆引きできないと受信/中継を受け付けてくれないものが多数存在します。この場合、「Equalizer-A」の実IPとなる「IP-EQ-WAN」に対して逆引き設定を施しておく必要があります。

Webサーバーにおいてクレジット・カード会社の決済サービスへ接続しにいく場合なども同様です。「IP-A」や「IP-B」の決済情報を送信する場合、カード会社のAPIへ接続するソースIPは「VIP1」ではなく「IP-EQ-WAN」で行われます。つまり、カード決済のAPIシステムへ登録するIPは、Equalizer-Aの「IP-EQ-WAN」を届け出ておく必要があります。

冗長構成では2台のEqualizerがあるので、注意が必要です。フェール・オーバーした場合には、稼働系(プライマリ)が「Equalizer-A」から「Equalizer-B」に移動します。このとき、ローカル・サーバーからのOutGoing通信は「Equalizer-B」に設定されている「IP-EQ-WAN2」をソースIPとしてインターネットに出ていきます。

冗長構成では、A系とB系が切り替わった場合を想定して外部への通信設計を行っておく必要があります。もちろん、切り替わったEqualizerの実IPにおいても、DNS逆引き設定や、カード会社APIへの届け出が必要です。裏技的にOutGoing通信を、Equalizerの実IPではなくVIPで行う方法もありますが、一部の通信に制約が発生するためにここでは記載しません。

内部サーバー同士のアクセスに制約

Equalizerを使う場合、内部サーバーから内部サーバーにNATアクセスする場合に生じる制約についても理解しておく必要があります。

図3-Cは、Equalizer配下のサーバー「IP-A」がEqualizerのWAN側にセットされている「VIP1」(IP-Aとは別ネットワークに属する)を介して、「IP-A」と同じセグメントにあるサーバー「IP-B」にアクセスできないことを指しています。

EqualizerのLANポートは多数ありますが、これらのLANポートはL2SW(ハブ)収容となっており、同一セグメントとなっています。このため、Equalizerのサーバー機同士は、EqualizerのVIP1を介することなく直接通信できます。

(1)図3-Cの「Sv01」(IPアドレスは「IP-A」)から「VIP1」へ通信がリクエストされた場合、(2)Equalizer側では、リクエストのソースIPアドレスを変更せず「IP-A」のまま「Sv02」(IPアドレスは「IP-B」)に到達します。

(3)「Sv02」(IP-B)は自分自身のルーティング・テーブルを参照し、送信元の「IP-A」が同じハブの中にある「Sv01」のNICであることを知ります。このため、「Sv02」(IP-B)は直接「Sv01」(IP-A)へ返信をしようとします。

ところが、「Sv01」(IP-A)では、(1)でリクエストした戻りパケットである(4)の通信を待っています。このため、「Sv01」(IP-A)と「Sv02」(IP-B)の間でコネクションが確立できなくなります(BIG-IPを使う場合は、この問題は起こりません)。

必要な機能を安価にパッケージング

高価なロード・バランサと比べて多数の制限があるEqualizerですが、一般的にロード・バランサが必要とされる条件下では、十分な機能を持っています。

例えば、画面遷移時におけるソースIPアドレス/Cookieなどを利用したセッション維持(Sticky)、URI(URL)文字列を解析したうえでのあて先サーバーの割り当て固定化、SSLアクセラレータ、7種類の負荷分散アルゴリズム(重み付けラウンド・ロビンや最小コネクション数その他)など、一般的な機能を備えています。

さらに、Equalizer内部のOSはUNIX(FreeBSD)ベースであるため、UNIXに精通したエンジニアさえいれば、運用の幅が広がります。シェルによる設定の確認やOSの状態確認だけでなく、OutGoingの解説で触れた裏技的なVIPによる通信設定なども特定条件下で可能になります。

きょう体は1Uラックマウント型とコンパクトであり、置き場所に困りません。何よりも安価な点はメリットです。制約などの仕様を理解して運用することで、Webサイトや携帯サイトはもちろん、メール・サーバーやDNSサーバーなどについても、冗長化システムを安価に構築できます。

価格の例として、350GX(スループット850Mビット/秒、SSLアクセラレータ)をHA(冗長)構成で導入する場合、機器価格は260万円を切ります(標準小売価格:2010年1月現在)。※価格とカタログは、国内総販売代理店である株式会社ネットワールドのページを参照のこと。

導入実績も豊富です。スリーセブンワークスが手がけた事例では、規模の大きなところでは、大手ショッピング・サイトで数百クラスタを扱うシステムや、大型コンテンツ・サイトのシステムなどがあります。中規模なシステムでは、数年の運用実績があります。

今回は、廉価版ロード・バランサのEqualizerについて、メリットと制約の両面を踏まえて詳しく解説しました。制約などの仕様を理解して運用することで、導入/運用コストを大きく削減できる可能性があります。

次回の第3回では、監視システムについて解説します。

著者
服部 照久(はっとり てるひさ)
株式会社スリーセブンワークス 代表取締役
PSINetJAPAN、IIJ(株式会社インターネットイニシアティブ)のエンジニアを経て、NetworkからServer構築はもちろん24h/365dのインフラ運用監視/構築を行うマルチサービス・プロバイダを独立起業。777WORKS

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

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

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

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