プロキシサーバーのキャッシュのメリットとデメリットは?

プロキシサーバーにはさまざまなメリットがあります。
キャッシュ機能もその1つです。

今回は、プロキシサーバーのキャッシュについて見ていきましょう。

プロキシサーバーのキャッシュはどのように動作する?

前提として、キャッシュの定義をおさらいしておきます。

Tips
キャッシュとは:
ネット用語としてのキャッシュ(cache)は、
「訪問したWebページの情報を一時的に保存する仕組み、また、そのときに保存したデータそのもの」を指します。
基本的には、「一度使用したものを保存しておいて、次回以降の速度アップのために役立てる」ために使用されます。

プロキシサーバーは、クライアント端末とコンテンツサーバーの中間に設置されます。

クライアント – プロキシサーバー – コンテンツサーバー

というような位置関係ですね。

プロキシサーバーはコンテンツサーバーへアクセスし、最新の状態をチェックします。
そして、コンテンツサーバーの情報をプロキシサーバーは自身にキャッシュします。

一般ユーザーの使用するクライアント端末は、プロキシサーバーに蓄積されたキャッシュに対してアクセスすることになります。
(これについて、一般ユーザーは、プロキシサーバーの存在を意識することなくアクセスすることが可能です)

プロキシサーバーのキャッシュによるメリットは?

コンテンツサーバーのデータをプロキシサーバーがキャッシュすることによるメリットは、以下のようなものがあります。

・ネットワークのトラフィックを減少させることができる
・クライアントPCへの応答時間が短縮できる
・コンテンツサーバーへの負荷を小さくすることができる

順番に詳しく見ていきましょう。

ネットワークのトラフィックを減少させることができる

Tips
トラフィックとは:
ネットワークの分野におけるトラフィック(Traffic)とは、インターネットおよびLANなどでのコンピュータやサーバどうしの通信において、ネットワーク上で転送されるデータ量のことを指します。

トラフィックの種類:
トラフィックには大きく分けて、以下のタイプがあります。

・1対1のトラフィック
・1対多のトラフィック
です。

1対1のトラフィック:
・送信側端末が受信側端末を特定できており、1つのパケットは1つの端末だけに届く。
たとえば、PCからサーバーへのファイルアップロードなど。

1対多のトラフィック:
・制御用のトラフィック(1対1の通信を行う前に、送信側端末が受信側端末を特定するために、ネットワークセグメント全体に呼びかけるタイプの通信)

・単純なマルチキャストによるトラフィック
(マルチキャストについては下記参照)

があります。

マルチキャストを正しく理解するには、ユニキャストをはじめとした各種キャストについての説明をお読みいただくことをおすすめします。
・ユニキャスト(Unicast)
・ブロードキャスト(Broadcast)
・マルチキャスト(Multicast)
については下記を参照してください。

Tips
各種キャストについて

ユニキャストとは:
ユニキャスト(Unicast)とは、特定のネットワークアドレスを指定し、1対1で行われるデータ送信のことです。

ユニキャストは1対1で行われるため、すべての送信先ネットワークアドレスごとに個別にデータ送信を行う必要があります。ファイルのダウンロードや、Webサイトの閲覧などでは問題ありませんが、動画のストリーミング配信など、大容量のデータを送信する必要がある場合には、送信元サーバーの負荷が大きくなりすぎるため、ユニキャストではなく別のキャスト方法を使ったほうが良いです。

ブロードキャストとは:
ブロードキャスト(Broadcast)とは、不特定多数の受信者に対して同時にデータを送信することです。送信元サーバーからの送信パケット自体はコピーして使用されるので、同じものを何度も送る必要はなく、1度で済みます。
そのおかげで、送信元サーバー側のネットワーク帯域の消費や負荷は大きくならずに済みます。
しかし、同一セグメント上のすべての端末がデータを受信することになる(ブロードキャストは、半無差別的に送信しているようなものです)ため、同一ネットワーク全体としては負荷となります。
また、ブロードキャストされたデータが必要ない受信者側端末にとっては、無駄な処理とネットワーク帯域消費が発生するというデメリットがあります

マルチキャストとは:
マルチキャスト(Multicast)とは、1つの送信元から、「特定の」複数の送信先へ向けて、同じデータを同時に送信すること。

経路の共通部分においては1つのパケットだけを転送します。
そして、経路が分かれるときにそのパケットをコピーすることにより、低負荷にて効率的にデータ送信をおこなうことが可能です。

たとえば、テレワークなどで、リモート会議を3人以上で行う場合などはマルチキャストによって音声や映像の送信がおこなわれています。個別にユニキャストを繰り返す場合と比較してネットワーク負荷を軽減できます。
他にも、マルチキャストは動画配信、株や為替、暗号資産(仮想通貨)のレート配信などにも活用されています。

マルチキャストのメリット:
・送信先アドレスの管理が容易である
・回線効率が良い
・送信元端末の負荷が小さくて済む

マルチキャストのデメリット:
・基本的には一方通行であり、双方向通信はできない

各種キャストについてのまとめ

TCP/IPにおいてデータを送信する場合、1対1のデータ送信を行うユニキャスト、1対多のデータ送信を行うブロードキャスト、そして1つの端末から特定のグループに所属する端末に対してデータ送信するマルチキャストの3つの方法がある。

クライアント端末からのリクエストに対する応答時間が短縮できる

クライアント端末からのリクエストに対してコンテンツサーバーがすべての処理をおこなう場合よりも、キャッシュ機能の役割を持つプロキシサーバーが応答するほうが、短い応答時間で済みます。
ただし、キャッシュ機能目的のプロキシサーバーには、それなりの実メモリ量が要求されます。(実メモリの必要量はキャッシュするコンテンツの量に比例して増大します)

コンテンツサーバーへの負荷を小さくすることができる

多数存在するクライアント端末からの膨大なリクエストに対しても、プロキシサーバーに蓄積されたキャッシュのデータを返す挙動となるため、コンテンツサーバー自身が直接応答する必要が無くなり、コンテンツサーバーへの負荷を小さく抑えることができます。

ログをプロキシサーバーに残すことができる

どのような経路でどこにアクセスしたか、また、逆にどこからアクセスが試みられていたのか、などの記録を残しやすいです。万が一、サイバー攻撃などをされた場合であっても、ログを解析することで被害状況を迅速に把握したり、不正アクセス元を特定し早期解決につなげることができるなどのメリットがあります。

プロキシサーバーのキャッシュによるデメリットは?

構築が正しければまず起こらないことですが、クライアントからのリクエストに対する応答が最新のデータではなくなる場合があります。(古いキャッシュを返してしまう場合)
ただし、キャッシュデータ自体が最新のコンテンツを反映しているかどうかのチェックも行うことができますので、これはデメリットというよりは人為的なミスと言えるでしょう。

 

あわせて読みたい記事