用語集
SSLアクセラレーターとは
SSLとは、インターネットに代表されるIPネットワーク上において、セキュアな通信を行うためのプロトコルです。SSLを利用すると、通信内容の暗号化・通信相手が正しいかの確認・改竄の検出などが可能になります。
SSLは、「OSI参照モデル」におけるトランスポート層のプロトコルとアプリケーションの間に位置し、主にアプリケーションの通信を暗号化する目的で利用されています。SSLは、さまざまな上位プロトコル(アプリケーション)と組み合わせて使うことができますが、最も一般的な利用例はWebページを閲覧するHTTPと組み合わせた「HTTPS」でしょう。そのほかには、メールを送信するSMTPと組み合わせた「SMTPS」やメールボックスを読むIMAPと組み合わせた「IMAPS」なども広く利用されています。
なお、厳密にはSSLと呼ばれるプロトコルはセキュリティ上の問題からすでに利用されておらず、2020年現在は後継のプロトコルであるTLSが利用されています。しかし、SSLという呼び名が世間に広く普及しているため、従来通りSSL、もしくはSSL/TLSと併記するのが一般的となっています。
2020年現在、後述する理由により、インターネット上のWebサイトはSSLに対応(HTTPS化)することが事実上必須となっています。しかし、SSL通信を行うとデータの暗号化や復号処理のため、平文での通信時に比べてサーバーのCPUに負荷がかかってしまうという問題があります。
サーバーのCPUは有限なリソースです。その限られたリソースが、通信の暗号化というサービスの本質とは異なる部分で消費されてしまうのは、望ましいことではありません。そこで、こうしたSSLの処理コストをサーバー外に逃がすための手段が「SSLアクセラレーター」です。
本記事をご覧いただいた方向けに、おすすめの記事をまとめました。こちらもあわせてご確認ください。
WebページのSSL対応が必要になった背景とは
Google Chromeのバージョン68(2018年7月リリース)以降では、SSLに対応していないサイトを閲覧すると、アドレスバーの左端に「保護されていません」という警告が表示されるようになりました。また、GoogleはWebサイトのランキング(検索結果の上位表示)アルゴリズムにおいて、そのサイトがSSLに対応しているかどうかを考慮していると公表しています。
従来は、Webサイト全体をSSL化する必要はなく、ログインページやクレジットカード決済のような、重要な情報のやりとりが発生するページのみをSSLで保護すればよいという考え方が一般的でした。しかし、こうした背景から現在では機密情報や個人情報を扱わないWebサイトであっても、全体をSSL化することが事実上必須となっています。
SSLアクセラレーターとは
「SSLアクセラレーター」とは、SSL通信におけるデータの暗号化/復号の処理を、サーバーにかわって行う専用のハードウェアです。
冒頭で述べた通り、サーバー上で行われているSSLの暗号化や復号は、CPUに対する負荷が大きい処理となります。1つ1つの通信セッションにおける負荷は微々たるものでも、同時に大量のアクセスを処理するWebサーバーでは、積み重なったオーバーヘッドが無視できなくなってきます。SSLアクセラレーターを使えば、そうした負荷を専用のハードウェアが肩代わりしてくれるため、サーバーのCPU負荷を軽減することができます。
SSLアクセラレーターは、ファイアウォールなどの機器と同様にネットワーク上のWebサーバーの前段に配置され、ここでクライアントとのSSL通信を終端します。SSLアクセラレーターとサーバーの間の通信は平文で行われるため、結果としてサーバーは暗号化や復号を行う必要がなくなり、SSL通信の負荷から解放されます。
クラウドサービスでSSLアクセラレーターを利用するには
オンプレミスにおけるSSLアクセラレーターは、専用のハードウェアをサーバーの前段に設置する必要がありました。対して、クラウドではサーバーの負荷分散に使うロードバランサーが、SSLアクセラレーターの機能を兼ね備えている場合があります。例えば、FJCloud-V(旧ニフクラ)の「ロードバランサー」は、SSL証明書を適用することで、SSLアクセラレーターとしても利用できるようになっています。
また、SSLアクセラレーターを利用すると、配下にある各サーバーに個別にSSL証明書を配置する必要がなくなります。つまり、SSLアクセラレーターの利用には、負荷の軽減だけでなく、SSL証明書の管理を一元化できるというメリットもあるのです。
FJCloud-V(旧ニフクラ)でWebサーバーを運用するのであれば、サーバー負荷と運用コストを共に軽減できる、ロードバランサーのSSLアクセラレーター機能の利用をお勧めします。