TechTweetこんにちは、牧野です。この前の日曜日、好きなアーティストのライブのチケットを買おうとしたのですが、発売開始時間に電話したらつながらず、チケットを売っているウェブサイトにアクセスしたら売り切れの表示が。チケット買えなかったのは残念でしたが、人気があることがわかってちょっとうれしかったです。今日の本題ですが、プログラミングのネタがなかったのでウェブサーバの負荷分散についてです。ウェブサーバでよく行われる負荷分散にはいくつかやり方があります。1.DNSラウンドロビンDNSの設定で、同じドメイン名に複数のIPアドレスを割り当てます。手軽にできると思いますが、ダウンしたサーバにもアクセスが行ってしまうなど、あまり融通がきかない面があります。2.apacheのmod_proxy_balancerを使うmod_proxy_balancerを組み込んだapacheが負荷分散装置として働きます。apache1系では使えませんが、簡単に負荷分散できます。Server)を使う実際にやったことはないのでよくわかりません。1、2よりは大変だと思います。詳しくはこちらのブログを見てみてください。http://dsas.blog.klab.org/archives/50664843.html4.負荷分散装置を使う負荷分散機能を持つネットワーク機器を使えば、安定した負荷分散が実現できるはずです。機器自体がかなり高いという最大の欠点があります。設定やできることが機器によって異なるので、あまり応用が利かないかもしれません。以上、思いついたもので手軽にできそうなものから順に挙げてみました。Networks社のsummit48iでの負荷分散です。3というモデルに備わっている負荷分散機能を使う機会があったので、その設定を紹介します。Balance、SLBと呼びます)を実現するには、アクセスを受け付ける仮想IPとウェブサーバの実際のIPが別ネットワークでないといけないことがわかったので、以下のような構成になりました。ウェブサーバ用にVLANを作成2.SLBに使うVLANを指定3.SLBの対象サーバ、ポートの設定(ノード)を作成、ノードのグループ(プール)を作成4.SLBに使う仮想IP(VIP)を作成5.SLBに使うVIP、プールを指定して、SLBの負荷分散方法などを設定という感じです。80「webserver-local」「Default」はVLAN名、「web-pool」はプール名、「web-vip」はVIP名です。「webserver-local」には10番、11番のポートを割り当てています。summitでは特に設定していないと全てのポートが「Default」という名前のVLANに割り当てられていて、上の例では「Default」VLANをグローバルIP用のVLANに使用することにしています。「Default」VLANに割り当てられているグローバルIP(111.xxx.yyy.zzz)はsummit自体に割り当てられているグローバルIPで、ウェブ用のVIPとは別のアドレスです。上のような設定で、111.111.111.xxxの80番ポートへのアクセスが192.168.0.2と192.168.0.3の80番ポートに分散されます。summitでは負荷分散方法を設定できます。デフォルトの設定ではround-lobin(アクセス毎に別のノードに割り振る)になっています。connection(コネクション数が少ない方に割り振る)、priority(可能な限り優先順位が高い方に割り振る)といった設定が可能です。一度も使ったことない機能が山のようにあったりします。ところで、日本ではどれくらいsummitが使われているのかな。中古なら安く買えるので、興味ある人は試してみてください。3のタイプで、ソフトウェアのバージョンも古すぎるとだめ(最低でも6.1)なので、購入する場合は気をつけてください。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。