by shigemk2

当面は技術的なことしか書かない

今夜わかるHTTP 6

前回
今夜わかるHTTP 5 セキュリティ技術 - by shigemk2

webを快適にするための技術

ロードバランシング
リクエストをある条件で複数台のサーバーに分散させる。
冗長性を確保するためにサーバーを複数用意する。
振り分けるアルゴリズムとして

  • ラウンドロビン 順番に振り分け
  • ウェイテッドラウンドロビン サーバーの処理能力に合わせて振り分け
  • コネクション(同時接続) 接続の少ないサーバーに振り分け
  • コネクション(応答時間) 応答時間の短いサーバーに振り分け
  • サーバー負荷 CPU負荷やメモリ、ネットワークの負荷から振り分け

L4スイッチ トランスポート層のリクエスト(TCP)から振り分け ポートで振り分ける
L7スイッチ アプリケーション層のリクエスト(HTTP)から振り分け HTTPメッセージの中身で振り分ける

DNSによる負荷分散も行える

キャッシング
オリジンサーバーのリクエストに対するレスポンスをキャッシュサーバーが記憶しておくことで、
同じリクエストがあればオリジンサーバーに代わってキャッシュサーバーがレスポンスを返す。

  • プロキシキャッシュ

組織内で利用されるリクエストを処理するのに使われる。

Internet Service Provider同士での接続を管理する。
キャッシュサーバーとルーターが協調動作をすることでキャッシングを行う。
HTTPメッセージを見つけると、トランスペアレントキャッシュサーバーに迂回させ、
キャッシュサーバーにキャッシュがあればそれを返し、なければ実際のリクエスト先の
webサーバーにリクエストを送る。これによってISP自身がISPから先のネットワーク
帯域幅の節約ができる。

  • リバースプロキシキャッシュ

webサイトの運営者が配置するキャッシュサーバーである。
webサイト利用者は、ネットワーク先に近いリバースプロキシサーバーか、
オリジンサーバーにアクセスできる。キャッシュサーバーを配置するときは、
なるたけネットワーク的に遠いところに配置するほうがよりキャッシングの効果を
得ることができる。

SSLアクセラレーター
暗号化の負荷により、SSLの負荷はHTTPより2倍-100倍重い。
SSLの計算をサーバーの代わりにやってくれる。

webを快適にするためには、
ネットワーク的に近いところからレスポンスを取得できるようになることが望ましい。
また、サーバー自身の負担を減らし、サーバーの代わりにレスポンスを返すキャッシュサーバーを用意
することも大切である。

また、リソースを圧縮するというアプローチも存在する。

今夜わかるHTTP (Network)

今夜わかるHTTP (Network)