TOP書籍連動> アクセスの分散の実際
まるごと PostgreSQL!
商用データベースに匹敵するWebシステム構築手法

第3回:アクセス分散の基礎とラウンドロビンDNS

著者:大垣靖男(OHGAKI, Yasuo)   2005/4/25
前のページ  1  2
アクセスの分散の実際

   スケールアウトとは、サーバーを追加することによりシステム全体の性能を向上することです。追加したサーバーに処理を行わせるには、見かけ上は同じWebサーバーへのアクセスとしながら、実際は複数のWebサーバーに処理を分散しなければなりません(図8)。アクセスの分散にはいろいろな方法があります。コンピュータ名からIPアドレスを参照するDNS、レイヤー3スイッチとして利用可能なIPTables、IPRoute2などが利用できます。

現在のWebシステム
図8:ラウンドロビンDNSによる負荷分散



   以下、実際の手法について詳しく解説していきます。


DNSによるアクセス分散

   ご存知のようにDNSとは、コンピュータ名から実際のネットワーク接続に利用するIPアドレスを検索するサービスです。DNSでは、同じ名前のコンピュータに対して、複数のIPアドレスの割り当てが可能となっています。複数のIPアドレスが登録されている場合、そのコンピュータ名のIPアドレスはラウンドロビン方式で返されます。

   ラウンドロビンDNSは古くから利用され、現在も広く利用されているアクセス分散手法です。実際のWebサイトがどのようにDNSに登録されているかはdigコマンドで簡単に調べられます。執筆時点の筆者の環境では、www.google.co.jpのDNS登録は図9のように表示されています。

[yohgaki@dev yohgaki]$ dig www.google.co.jp

; <<>> DiG 9.2.3 <<>> www.google.co.jp
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45787
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.co.jp. IN A

;; ANSWER SECTION:
www.google.co.jp. 66392 INCNAME www.google.com.
www.google.com. 838 INCNAME www.google.akadns.net.
www.google.akadns.net. 238 INA 216.239.57.103 ………(1)
www.google.akadns.net. 238 INA 216.239.57.99
www.google.akadns.net. 238 INA 216.239.57.147
www.google.akadns.net. 238 INA 216.239.57.104

;; Query time: 1 msec
;; SERVER: 192.168.100.1#53(192.168.100.1)
;; WHEN: Sun Sep 12 10:40:58 2004
;; MSG SIZE rcvd: 161

図9:www.google.co.jpのDNS登録


   DNSサーバーは、同じコンピュータ名に複数のIPアドレス登録がある場合、名前解決の問い合わせが行われると順番にIPアドレスを返していきます。したがって、コンピュータがwww.google.co.jpにアクセスすると、216.239.57.103、216.239.57.99、216.239.57.147、216.239.57.104のIPアドレスがDNSサーバーから順番に返され、複数のIPアドレスにアクセスが分散されます。ラウンドロビンDNSを利用する場合、より均等にアクセスを分散するために通常よりかなり短いTTL(有効期限)を設定します。www.google.co.jpのDNSのAレコード(ドメイン名をIPアドレスに対応付けるDNSレコード)も、通常設定される86400秒(1日)のTTLではなく、238秒のTTLが設定されていることがわかります(図9の(1))。ラウンドロビンDNSを利用し、まったく別のデータセンターのコンピュータにアクセスを行わせる場合は、接続の永続性の維持に問題があるので注意が必要です。

   次回はIPTablesとIPRoute2によるアクセス分散手法を解説します。

前のページ  1  2


大垣 靖男
著者プロフィール
大垣靖男(OHGAKI, Yasuo)
University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て、エレクトロニック・サービス・イニシアチブ有限会社を設立。Linuxはバージョン0.9xの黎明期から利用してるが、オープンソースシステム開発やコミュニティへの参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトのPostgreSQLモジュールのメンテナ、日本PostgreSQLユーザ会の四国地域での活動等を担当している。


INDEX
アクセス分散の基礎とラウンドロビンDNS
  基本的なWebシステムの高性能化手法
アクセスの分散の実際