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

以下、実際の手法について詳しく解説していきます。
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 |
|
||
|
;; ANSWER SECTION: |
||||
| www.google.co.jp. | 66392 | IN |
|
www.google.com. |
| www.google.com. | 838 | IN |
|
www.google.akadns.net. |
| www.google.akadns.net. | 238 | IN |
|
216.239.57.103 ………(1) |
| www.google.akadns.net. | 238 | IN |
|
216.239.57.99 |
| www.google.akadns.net. | 238 | IN |
|
216.239.57.147 |
| www.google.akadns.net. | 238 | IN |
|
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 |
||||
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によるアクセス分散手法を解説します。