サーバーロードバランス(SLB)技術について
サーバーロードバランスの歴史を語る前に、まずはSLBとは簡単にどのような物であるかを説明します。
SLBはサーバーロードバランシング(ServerLoadBalancing)の略称(以下SLB)となり、複数台のサーバを適切に利用するための技術です。近年ではADC、アプリケーションデリバリーコントトーラー(ApplicationDeliveryController)とも呼ばれています。
1990年代、HTTPなどのWebサービスを中心にインターネットの需要が急激に上昇し、それに伴いサーバ側のスペック面での増設は図られてきましたが、1台ではやはり限界があります。そのためサーバを複数台用意し、それぞれに適切な方法でアクセスを分散させる技術として開発されたものがSLBと呼ばれる技術です。
1990-2000年代の技術トレンド
HTTP全盛期到来
1990-2000年代では急激にインターネットの需要が広がりを見せます。
メールやチャットレベル中心で利用されていたインターネットですが、HTTPサービス、特にWebブラウザの普及によりHP(ホームページ)の利用がさらに増加していきました。更にHPの需要は企業だけでなく、個人の情報発信の場としても活用されるようになります。これは今でも大きくは変わっていませんが、Webサービスがインターネット利用の中心となった時期でもあります。
cacheバランシング
HTTPサービスの普及について忘れてはならないものの1つはキャッシュサーバのバランシングです。キャッシュサーバについてこちらでは多くは語りませんが、Webサーバで提供されるコンテンツの複製を保存し、Webサーバの代わりにユーザ側へ提供するサーバのことを指します。こちらによって実際のWebサーバへの負荷軽減やネットワークトラフィックの削減などを実現していました。
今ではもう少し技術が進化しています。
キャッシュサーバが返すコンテンツを、ユーザが存在する一番近いサーバから返したりするCDN(ContensDeliveryNetwork)と呼ばれるものに移行されています。CDNの技術にこのコラムでは大きくは触れませんが、単純にWebサーバのバランシングではなくキャッシュサーバのバランシングも盛んにおこなわれるようになったということもこの年代の特徴でもあります。
パーシステンスの有用性
Webサービスの普及により、これまで検討はされていたが実現が難しいとされていたシステムの実現が可能となりました。その代表が今では当たり前になっているネットワーク決済システムです。
特に日本では楽天が有名になりますが、楽天の創立が1997年2月7日となっており、丁度この時期に創立されています。
話を戻しますが、決済をするということはWebサーバへのログインを行い、そこで金額や支払いなどのデータがやり取りされることになります。その際バックエンドにはDBサーバ等が連携しているものですが、もし途中でその連携しているWebサーバとは別のWebサーバにアクセスが分散されてしまったらどうなるでしょう?そうです、その際に買い物は無かったことになる又は2重に買い物がされてしまうなどのことが起こり得ることになります。
そのため少なくとも一度Webサーバへログインし、決済が完了するまではログインしたサーバへアクセスし続けなければならないという技術が必要となります。
こちらから生み出された技術がパーシステンス(persistence)接続性の技術となります。この技術を使うことで、決済やログイン時の整合性が保たれ、安心して利用される環境が整うようになりました。パーシステンス技術はこれらの決済だけではなく、サーバの用途により様々な形で現在も利用されています。
HTTPS(SSL技術) の普及
先のネットワーク決済の話にも通じるものですが、HTTPのコンテンツは平文です。例えばこれらの通信を何らかのツールで第三者がキャプチャし、見ることができてしまったらどうでしょう。
あなたの買った品物、金額、それだけではなく住所、電話番号等の情報もガッツリ見られてしまうことになります。それでは誰も利用しませんし、このシステムが普及されるとは思えません。そのための専用技術ということではありませんが、これらの情報を暗号化し、他人から見られないようにするという技術がHTTPSの技術となります。
実際はこの技術にはSSLという技術を使い、それを暗号化したものがHTTPSと呼ばれています。 この技術を利用して、センシティブな情報がある程度安心して利用できるようになり、決済システムを初めとした様々な技術やサービスがリリースされてゆくことになります。
SSLアクラレーションの誕生と普及
SSL/HTTPSの普及がされるにつれ、また新たな問題が発生することになります。
このSSL/HTTPSは暗号化、鍵交換等サーバ側の計算処理が多い技術となり、多大な負荷をWebサーバへ強いることになりました。多大な負荷がかかるということはWebサービスのそのものの遅延が発生するということです。古い資料ではありますが、Amazonでは2007年にこのような発言をしています。
「サイト表示が0.1秒遅くなると、売り上げが1%減少し、1秒高速化すると売り上げが10%向上する」
そのためサーバ台数の増加やスペックの増加が更に余儀なくされていきましたが、設備の投資には資金にも場所にも多大な負荷を生じます。そこに対応するための技術がSSLアクセラレーション(SSL Offload等とも呼ばれます)技術です。これはサーバ側に負荷のかかる暗号化処理を別の機器で行い、Webサーバ自体は単純にHTTPのコンテンツ配信のみに集中させる技術となります。結果Webサーバのレスポンスを劇的に改善させることができるようになりました。
では実際にその暗号化処理を代行する機器はどこが適切なのか?ということを決めなくてはなりません。
Webサーバにその役割を行わせるのは結局これまでと同じことです。であればWebサーバとの間に必ずあって、それらの処理を行っているものが適切だという判断がなされました。
そう、その適切な機器というものはSLB機器になります。SLB機器自体はこれまではHTTP等のアクセスやTCPの通信を割り振るだけであり、比較的内部スペックに余裕がある実装となっていました。
そこへSSL処理をH/Wレベルで複合化できるチップを搭載する等して、この処理をWebサーバの代わりに行うことができるような機能が実装されていくようになりました。
SSLアクラレーションは瞬く間に普及し、現在ではSLBを取り扱いするベンダーの機器やシステムには必ずと言っていいほど搭載される技術になることになります。
次回のコラムではこれより歴史が進んだ2010-2020年以降の歴史を紹介したいと思います。
著者
1999年CTCテクノロジー株式会社に入社。
入社よりネットワークのサポートエンジニアを勤め続け現在に至る。
Cisco以外のネットワークで育った異端児ネットワークエンジニアという側面を持つ。