OSI参照モデルとロードバランサーの関係性とは?
OSI 参照モデルは、コンピュータ間で通信するための機能を7つの階層にわけた概念モデルです。
TCP/IPモデルとOSI参照モデルに対応したロードバランサーとアプリケーション配信コントローラー
ロードバランサーの機能は、複数のサービスエンドポイントに通信と処理の負荷を透過的に分散させ、高いアプリケーション可用性、最適なパフォーマンス、弾力的なスケーラビリティを確保します。つまり、ロードバランサーは、組織が構築する本格的なオンラインサービスプラットフォームにおいて、アプリケーション配信と アプリケーションの可用性の点で、戦略的かつ重要なコンポーネントなのです。負荷分散(ロードバランシング)がどのようにネットワークに影響するかを理解し、どのようなロードバランサーが利用可能かを把握するためには、ネットワーク通信の主要なモデルについて知る必要があります。
TCP/IPモデルとOSI参照モデル
【IPv4とは】【IPv6とは】の記事で、TCP/IPモデルを取り上げ、ネットワークアドレスの仕組みを説明しました。今回説明したTCP/IPモデルは、ネットワーク通信を4つの層に分解したものです。
- イーサネットなどの物理ネットワークに接続するリンク層
- IPv4とIPv6のプロトコルが定義されているインターネット層
- TCPやUDPなどのプロトコルを含むトランスポート層
- DNS、DHCP、FTP、HTTP/S、SMTPなどのプロトコルが含まれるアプリケーション層
このモデルは、 ネットワーク業界において、あるエンドポイントから別のエンドポイントへのデータ移動を考える際の最も一般的な方法です。TCP/IP モデルが最も広く使用されていますが、OSI(Open Systems Interconnection)参照モデルもそれに次ぐものです。OSI 参照モデルは、 多くの点でより洗練されたモデルであり、 より大きな構造と機能的な粒度を提供し、 その両方が工学的に大きな利点をもたらします。さらに、OSI参照モデルは国際標準化機構(ISO)によって作成されたものであり、事実上のネットワーク通信アーキテクチャとなっています。
ウィキペディアにも以下のように書かれています。「いくつかのネットワークモデルは、ネットワークの概念と活動を明確にするための知的枠組みを作ろうとしたが、OSI参照モデルほど、情報技術の分野でネットワークの手順について議論し、教え、学ぶための標準となることに成功したものはなかった。」
OSI参照モデル
OSI参照モデルには7つの層があります。
- レイヤー1:ネットワークへの物理的な接続を提供し、電気的・物理的な特性を定義します。
- レイヤー2:データリンク層は、概念的にはネットワークエンドポイント間のポイントツーポイント接続を作成し、ネットワーク層との間でデータの受け渡しを行います。
- レイヤー3:ネットワーク層は、ネットワークのエンドポイント間のデータの経路決定(routing)を担当します。
- レイヤー4:トランスポート層は、配信とサービス品質機能を保証します。
- レイヤー5:セッション層は、ネットワークエンドポイント間のセッションを作成、維持、終了します。
- レイヤー6:プレゼンテーション層は、データストリームを下位層が扱える形式に変換し、データの圧縮/解凍、暗号化/復号も行います。
- レイヤー7:アプリケーション層は、下位レイヤーが提供するサービスへのアクセスを提供します。
ネットワーク通信モデルの比較
OSI 参照モデルはTCP/IPモデルに比べてレイヤーが3つ多いだけでなく、2つのモデルのレイヤーの機能が微妙に、また概念的に異なるため、この2つのモデルを比較するのは少し困難です。例えば、TCP/IPは特定の標準化されたプロトコルに基づく機能モデルであるのに対し、OSI 参照モデルは汎用的でプロトコルに依存しないモデルです。また、OSI参照モデルでは、アプリケーション通信の仲介に必要なのはレイヤー 1、2、3のみですが、TCP/IPモデルのアプリケーションでは通常、すべての層が使用されることも両モデルの違いのひとつです。つまり、この2つのモデルを機能的に並べると、次のようになります。
- TCP/IPのリンク層は、OSIの物理層とデータリンク層(レイヤー1とレイヤー2)に相当する。ただし、OSIモデルとは異なり、TCP/IPモデルでは、シーケンスとパケット受信の確認はトランスポート層に任されている
- 両モデルのネットワーク層とトランスポート層は、機能的にはほぼ同じ
- OSIのセッション層、プレゼンテーション層、アプリケーション層(レイヤー5、6、7)を合わせると、TCP/IPのアプリケーション層に相当する
ロードバランサーの役割
ロードバランサーには2つのタイプがあります。トランスポート層であるOSI参照モデルのトランスポート層(レイヤー4)で動作するものと、アプリケーション層であるOSI参照モデルアプリケーション層(レイヤー7)で動作するものです。
レイヤー4負荷分散は、使用されているプロトコル、送信元と送信先のポートなどの情報に基づいてネットワークトラフィックを管理し、高い可用性を提供しますが、メッセージの実際のコンテンツに対する可視性は提供されません。これは、メッセージが検査されたり復号されたりしないため、迅速、効率的、かつ安全に転送することができ、単純なパケットレベルの高可用性ロードバランシングには効果的な手法です。しかし、レイヤー4負荷分散では、メッセージの内容に基づいて判断することはできず、メディアタイプ、ローカライズルール、またはラウンドロビンルーティングのような単純なアルゴリズムを超える他の基準に基づいてトラフィックをルーティングすることは不可能です。
レイヤー7負荷分散は、データの流れを管理し、どのようにルーティングするかという、より繊細な方法を用います。
レイヤー7負荷分散はHTTP、HTTPS、SMTPなどのプロトコルを監視し、各メッセージのコンテンツに基づいた決定を行います。レイヤー7ロードバランサーはまた、単にトラフィックを転送するだけでなく、セッションを終端し、HTTPSが関係している場合は復号化を行い、メッセージを検査し、コンテンツベースのルーティング決定を行い、適切な上流サーバーへの新しいTCP接続を開始し、選択したサーバーに要求を送信することができます。
アプリケーション識別ネットワーキングをサポートすることで、レイヤー7負荷分散はインテリジェントなトラフィック分散した結果をサーバー群に提供します。また、Cookieを閲覧、変更し、固有のクライアントセッションを追跡することで、レイヤー7負荷分散はサーバーパーシスタンス、または「スティッキーセッション」を提供します。サーバーパーシステンスは、そのセッションに対するすべてのクライアントリクエストが同じサーバーに送られることを保証し、常に新しいセッションを開いてから状態データを復元する必要がないため、より高い効率を実現します。また、パケットレベルの可視化により、頻繁にアクセスされる項目をメモリに保持し、簡単に取り出すことができるコンテンツキャッシュを使用することができます。
企業にとって最も重要なのは、レイヤー7負荷分散が、単一のコネクション上の多重化されたリクエストを処理するプロトコルを操ることによって、トラフィックを最適化し、オーバーヘッドを削減するインテリジェンスを提供することです。
アプリケーション配信コントローラー(Application Delivery Controller)の導入
ロードバランサーは、複数のネットワークリソースにまたがる高トラフィックのスループットをいかに最適化するかについて、多くの問題を解決してくれますが、ネットワーク通信管理には、もう一つ高いレベルのものが存在します。アプリケーション配信コントローラー(ADC)です。
ADCは、アルゴリズムを使用して、受信したアプリケーショントラフィックをどのように分散させるかを決定します。ADCは、パケットヘッダのキーワードや要求されたファイルタイプを検査し、このデータに基づいて適切なサーバーに要求を誘導することで、アプリケーションの可用性と拡張性を確保します。
ADCは、サーバーの健全性を評価し、必要に応じて代替サーバーにトラフィックをルーティングすることで、詳細なトラフィック管理を行い、高可用性を保証します。また、ユーザーとネットワークのトラフィックのリアルタイム分析と履歴分析を行い、Ping やラウンドトリップ接続時間、帯域幅の使用量、遅延、ジッターを測定します。
A10のソリューション
従来のロードバランサーとADCのどちらを使うかは、レイヤー4負荷分散のパフォーマンスとレイヤー7負荷分散のオーバーヘッドのどちらを重視するかで決まります。しかし、どちらかを選択する必要はありません。A10のアプリケーション配信・負荷分散ソリューションA10 Thunder® ADCでは、レイヤー4負荷分散のパフォーマンスとレイヤー7負荷分散の詳細で粒度の高いデータストリーム検査という、両方のアプローチの長所を得ることができるのです。A10の戦略的アプローチの詳細については、A10のアプリケーション配信・負荷分散ソリューションA10 Thunder® ADCをご覧ください。