ロードバランサーとは
大量のアクセスに対するサーバーへの負荷を分散させるための仕組みです。
また複数サーバーへアクセスを分散させる際、ダウンしているサーバーを検知してそのサーバー以外に分散させます。そのため、システムダウンを防いでくれます。
アクセス集中によるシステムダウンやサーバーが故障して停止するといったアクシデントはwebサイトを運営するうえで起こりえるものなので、ロードバランサーのような機能が必要になってくるのです。
(補足: ロードバランサーはLBと略されたり、負荷分散装置と呼んだりします。)
ロードバランサーのメリット
システムダウンを防ぐ
先ほど大体書きましたが、サーバーへのアクセスを分散させることによりサーバーへの負荷が軽減します。アクセスが一極集中すると高負荷になりシステムダウンを招く恐れがありますが、アクセスを分散させれば回避できます。
複数サーバーの内、システムダウンしているサーバーを避けて振り分けてくれるため、ユーザーはシステムダウンしているサーバーを利用できないようにしてくれます。
その間にサーバーのメンテナンスを行うこともできるのでシステムの可用性は高まります。
処理速度の低下を抑えることができる
サーバーへの負荷を分散させることにより、CPU・リソースなどが効率的に使用可能になる。分散させない時より処理が高速になり、webページの表示速度が向上します。
拡張性に優れている
今後サービスが拡大してアクセス数が増大すると、現状のままでは処理能力不足が懸念されるかもしれません。
しかし、ロードバランサーでは必要分のリソースに合わせて拡張することができます。
ロードバランサーのデメリット
導入費用が高額
ロードバランサーの導入には必要な機器を用意する必要があるので、高額な費用がかかってしまいます。
その費用を払えるかどうかを検討してから導入するべきです。
ただ、上記はハードウェアタイプのお話で今だとクラウドタイプのロードバランサーがあり、機器を揃えなくても利用できるため、こちらのほうが安価で導入することができます(AWSなどで利用できる)。
サービスの選定が難しい
ロードバランサー製品を提供している会社はいくつもあり、取り扱うサービスに適した製品かどうかを選択するのが難しいです(こちら でどのようなサービスがあるか確認できます)。
リバースプロキシとは
その前にプロキシとは
プロキシサーバーは内部ネットワーク(社内ネットワークなど)とインターネットの間に立って代理人としての役割を果たしています。
図のように一連の通信の流れの中で中継役をしています。
クライアントのwebサイトへのリクエストをプロキシサーバーが受け取り、クライアントの代わりにプロキシサーバーがwebサーバーへリクエストします。
プロキシサーバーは、webサーバーからのレスポンスを受け取りクライアントに返します。
プロキシサーバーのメリット
プロキシサーバー上にログが記録される
サイトへのアクセスなどがログとして記録に残されます。サイバー攻撃による被害発生時でもログ解析を行い対応方法を考える材料になります。
匿名性が確保できる
個人のIPアドレスではなくプロキシサーバーのIPアドレスが送信されます。
アクセスした端末を隠すことでインターネット上の様々な脅威から守ることができます。
ウイルスチェックができる
個人が使用しているPC端末ではなく、プロキシサーバーでウイルスチェックを行うことができます。社内ネットワークへのウイルスの侵入を防ぐ役割にもなり、安全性の向上につながっています。
リバースプロキシ
リバースプロキシは外部からのwebサイトなどのアクセスを代理で受けてPrivateな領域に配置しているwebサーバーへリクエストを行う役割を果たしています。
図のように一連の通信の流れの中で中継役をしています。
クライアント(PC)のwebサイトへのリクエストをインターネット経由でリバースプロキシサーバーに送信されます。
リバースプロキシサーバーはwebサーバーへリクエストを行います。
webサーバーはリバースプロキシサーバーにレスポンスを行い、リバースプロキシサーバーはクライアント(PC)にレスポンスします。
リバースプロキシのメリット
負荷の分散
リバースプロキシを1台用意することで、クライアントに対して単一サーバーとしてふるまえます。クライアント側から見ればリバースプロキシ1台ですが、リバースプロキシの裏にはwebサーバーが複数配置されており、大量アクセスを各サーバーに振り分け処理することが可能(ロードバランサーと似たようなもの)です。
SSL証明書の管理が最小限
リバースプロキシ1台が複数のwebサーバへアクセスする場合でも、SSL暗号化はクライアント⇔リバースプロキシ間で済みます。
クライアント⇔リバースプロキシ間はhttpsによる通信、リバースプロキシ⇔webサーバー間はhttpによる通信が可能になります。
異なるアプリケーションの統合
リバースプロキシ1台で役割が異なるwebサーバーを複数用意可能で、1つのIPに異なるアプリケーションを統合させることができます。
例:
example1.com → 動的ページ応答
example2.com → 静的ページ応答
プロキシ・リバースプロキシのデメリット
サイバー攻撃を受ける可能性がある
プロキシおよびリバースプロキシは、DMZ(非武装ネットワーク)に設置されるのが一般的であるため、セキュリティ上の考慮が必要になります。
DMZは内部のネットワークに接続を許可しないが、外部と接続する領域にサーバーが配置され、外部ネットワークと接続を行います。
つまり、外部から直接アクセスが可能であり、サイバー攻撃の対象となります。
定期的に設定の確認をして、意図しない動作や設定でないか確認、またパッチにより最新の状態を保つなど対応していく必要があります。