商用データベースに匹敵するWebシステム構築手法 4

アクセス分散とスケールアウトの条件

基本的なWebシステムの高性能化手法   前回までで、スケールアウトに欠かせないアクセス分散について理解できたと思います。今回は、まずIPTablesとIPRoute2によるアクセス分散の実際を解説します。IPTables/IPRoute2によるアクセス分散   IPTables(FreeBSDで

大垣 靖男

2005年4月27日 20:00

基本的なWebシステムの高性能化手法

   前回までで、スケールアウトに欠かせないアクセス分散について理解できたと思います。今回は、まずIPTablesとIPRoute2によるアクセス分散の実際を解説します。

IPTables/IPRoute2によるアクセス分散

   IPTables(FreeBSDではNetFilter)は、TCP/IP ネットワークのパケットの受信/送信/ルーティングを制御するプログラムで、Firewall構築に利用されます。IPTablesは多くの機能をサポー トしていますが、中でもNAT(Network Address Translation)機能が負荷分散を行う機能を持っています。送信元のアドレスの変換を行うSNATと、送信先のアドレス変換を行うDNATの2種 類のNAT機能がありますが、このうちDNATがアクセス分散に利用できます。

   図10の構成では、IPTablesを実行するコンピュータはFirewall(ルータ)のように動作させ、実際にネットワークリクエストを処理するサーバーは別のコンピュータで実行させる必要があります。

 

IPTablesによるアクセスの分散
図10:IPTablesによるアクセスの分散

 

   iptablesコマンドでDNATの設定を追加する書式は、リスト1のようになります。

リスト1:DNATの設定追加の書式

iptables -A PREROUTING -t nat -p tcp -i -d --dport 80 -j DNAT --to-distination -

   IPTablesを利用した負荷分散では、グローバルアドレスをプライベートIPアドレスに変換/分散します。リスト2の例では、グローバルアドレスを記述すべき箇所に、便宜上IPアドレス10.10.10.10を記述しています。

リスト2:DNATの設定追加の具体例


iptables -A PREROUTING -t nat -p tcp -i eth0 -d 10.10.10.10 --dport 80 -j DNAT --to-distination 192.168.1.100-192.168.1.200


   この例では、10.10.10.10の80番ポート(http)へのアクセスは192.168.1.100〜192.168.1.200の範囲のIPアドレスのコンピュータへ分散されます。

   IPTablesは、ネットワークの帯域制御やトンネリングを行うプログラムとして開発されました。よくIPRoute2の利用方法として紹介されるのが、複数のISPへの接続を行う例です(図11)。

 

IPRoute2による複数のISPへの接続
図11:IPRoute2による複数のISPへの接続

 

   この複数のISPへのアクセスを、ちょうどリバースプロキシのように逆にするとWebサーバーへのアクセス分散に利用できます(図12)。IPRoute2は、IPTablesよりルールベースの細かいネットワークトラフィック制御が可能です。


IPRoute2による負荷分散
図12:IPRoute2による負荷分散

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る