アプリケーション デリバリー コントローラー(ADC)とは

PDFとしてダウンロード  

アプリケーション デリバリー コントローラー(ADC)は、過去10年で大きな成長を遂げました。これは主に、より高度なアプリケーション配信要件を処理し、アプリケーションパフォーマンスを向上させるためのレガシー負荷分散アプライアンスに対する需要が一層高まってきたためです。

アプリケーション デリバリー コントローラー(ADC)はWebなどで配信されるアプリケーションのパフォーマンス、セキュリティ、および冗長性を向上させるための専用アプライアンスです。

アプリケーションデリバリー

アプリケーションは長年にわたって大きく進化しました。「配信」という用語は、モビリティとクラウドの新しい時代の中でアプリケーションをユーザーにもたらすという意味で一般的に使用されるようになりました。エンタープライズでは、ビジネスアプリケーションはLAN経由でユーザーがアクセス可能なローカルサーバーにインストールされたデスクトップ向けソフトウェアから移行しました。最新のアプリケーションは、物理的なワークスペースの枠を超え、あらゆるタイプのネットワーク上で機能する必要があります。

エンタープライズに欠かせない存在として広く導入されているアプリケーション デリバリー コントローラーは、企業アプリケーションを今日のネットワーク設計やプロトコルにあわせて最適化します。また、アプリケーションの性能向上、可用性、およびユーザーやビジネスへのセキュリティリスクへの対策も提供します。

アプリケーションの可用性

一般消費者の間では、毎日使用するデバイスやアプリケーションが常時機能し、情報をオンデマンドで即座に入手できることが求められています。このような消費者からの期待は、使用するデバイスやアプリケーションのタイプにも反映されています。今日のワーカーを満たすために、ビジネスアプリケーションは、個人的な作業や娯楽用に使用するものと同じくらい直観的で簡単に使用できなくてはなりません。

多くの場合、社員はロックダウンされた会社所有のデバイスに限らず、個人用デバイスをいつでも仕事で使用できるようになりました、昼夜関係なく働いている社員がいる状況の中、IT部門は職場のサーバーとアプリケーションが24時間稼動可能な状態にあることを確認する必要があります。企業は、社員が必要なときにアプリケーションと情報に常にアクセスできるように、ITインフラストラクチャに多額の投資を行っています。

サーバーは、機械的な問題から過剰使用やセキュリティ違反にいたるまで、さまざまな理由で障害が発生する場合があります。サーバーが停止すると、稼動しているアプリケーションは使用することも、アクセスすることもできなくなります。

IT組織はこうした事態に備えて、フォールトトレラントな環境を構築します。データセンターまたはホスティングされたサイトにサーバーを追加導入してフェイルオーバーする方法が、一般的に使用されている可用性確保の手法です。ADCは、シームレスなフェイルオーバーを提供し、アプリケーションの高可用性を確保できます。このために、ADCは1つまたは複数のサイトで稼働しているサーバー全体のアプリケーション負荷のバランスを取ります。

サーバー ロード バランシングの利点

サーバー ロード バランシングは、サーバー全体のトラフィックを分散させ、使用率の最適化、応答性の改善、および可用性の向上に役立ちます。

アプリケーション デリバリー コントローラーは、アルゴリズムとポリシーを使用してインバウンド アプリケーション トラフィックの分散方法を特定します。クライアントの要求を各サーバーに順番に転送するラウンドロビン形式は、かなり基本的な負荷分散形式です。この方法では、すべてのサーバーが同じであり、アカウントの正常性や応答性を考慮に入れないことを想定しています。管理者は、インバウンド要求の送信先サーバーを特定する前に、ADCに多数の条件を確認するように指示する追加ポリシーを実装できます。アプリケーション デリバリー コントローラーは、パケットヘッダーでキーワードまたは要求したファイルタイプがないかを点検し、この情報に基づいて適切なサーバーに要求を送信します。

図1:使用可能なサーバーにリクエストを確実に送信するためのADCによるアクティブなモニタリング

また、アプリケーション デリバリー コントローラーは優れたモニタリング機能を提供します。ADCはサーバーの動作健全性を、一般的な ping チェックよりも精緻にモニタできます。サーバーに問題があるか、またはサーバーの信頼性を保証するために必要な特定のヘルスチェック基準が満たされていないと判断された場合、ADCは別のサーバーにトラフィックをリダイレクトし、業務停止のリスクを回避します(図1参照)。

また、アプリケーション デリバリー コントローラーでは、往復時間、帯域幅使用量、データセンターとWANのレイテンシに関するメトリクスを含む、すべてのユーザーおよびネットワークトラフィックのリアルタイム履歴分析も行うことができます。この情報により、ヘルプデスクのスタッフは問題の原因を特定するために費やす時間を短縮でき、ユーザーには短時間で解決策が提供されます。

複数サイトにわたる負荷分散サーバー

負荷分散はトラフィック量の多いデータセンターでは重要なサービスですが、アプリケーション デリバリー コントローラーは、まったく別のデータセンターに置かれたサーバーのクラスターにトラフィックをリダイレクトすることもできます。これはグローバル サーバー ロード バランシングと呼ばれます。その他のデータセンターのサーバーは、最初のアプライアンスと並行して動作する別のADCのフロントエンドになります。これらのサイトは、アクティブ-パッシブモードまたはアクティブ-アクティブモードのいずれかで構成できます。アクティブ-アクティブモードの場合、両方のサイトは受信トラフィックをアクティブにサポートします。各アプリケーション デリバリー コントローラーは特定のユーザーに最も近いデータセンターを検出し、クライアントの要求をそのデータセンターのサーバーに振り向けます。このプロセスにより、ユーザーの要求に対するレイテンシと往復時間が最小限に短縮され、エクスペリエンスが良好に維持されます。

また、この構成により、データセンターがダウンした場合にも事業継続性がサポートされます。ダウンしたデータセンターにトラフィックがルーティングされている場合、ADCはそのトラフィックを、並置されたサイトの使用可能なADCに振り向け、これによってトラフィックを実行可能なサーバーリソースにルーティングできるようになります。

アプリケーションのパフォーマンス

アプリケーションのパフォーマンスがユーザーの期待に応えられない場合、その生産性は著しく損なわれます。アプリケーション デリバリー コントローラーでは一連のメカニズムを採用して、特にモバイルと高レイテンシネットワーク向けの、アプリケーションのパフォーマンスを改善します。

SQLデータベースの負荷分散は、パフォーマンスの向上を実現するメカニズムの1つです。SQL負荷分散では、負荷分散TCPトラフィックで採用されるものと同じテクニックを多数使用しますが、この情報をデータベースレベルで適用します。これは、各SQLトランザクションに対してポリシー駆動型のロジックを使用し、データベースのクラスター内で処理できる要求数と接続数を改善します。

アプリケーション デリバリー コントローラーが提供するその他の一般的なアプリケーションパフォーマンスの最適化サービスには、サーバー集約型タスクの負荷軽減、接続の多重化、圧縮、およびキャッシングがあります。

SSLとTLSは、Web上でビジネスを行うための中心的な役割を果たします。新しい暗号で暗号化されたトラフィックの管理では、CPUに大きな負荷がかかります。アプリケーション デリバリー コントローラーは、暗号化されたトラフィックと暗号化されていないトラフィックを大量に処理することができます。ADCは、証明書と解読されたトラフィックをサーバーに到達する前に管理します。

TCPの多重化は、大量の受信サーバー要求を処理するための有効な方法です。TCPの多重化では、ADCとサーバー間のアクティブな接続が維持されます。トラフィックがADCに到達すると、ADCはこれらのオープンチャネルを使用して要求をルーティングします。これにより、サーバーのパフォーマンスに悪影響を及ぼす可能性のある各トランザクションに対して、非効率な「オープン-クローズ」のオーバーヘッドを排除します。

モバイルネットワークにおけるパフォーマンスの最適化

アプリケーションデリバリーコントローラーは、モバイルネットワークにおいてもパフォーマンス上のメリットを提供します。高速インターネットリンク用に設計されたWebページの場合、帯域幅に制約のあるネットワークで接続されたモバイルデバイスでは、同じユーザーエクスペリエンスを実現できないことがしばしばあります。

アプリケーション デリバリー コントローラーでは、いくつかの創造的なメカニズムにより、モバイルネットワークでのWebコンテンツの配信が最適化されます。ドメインシャーディングはその一例です。単一のドメインに対して接続レイヤーの最適化が適用されます。各ページのコンテンツは一連のサブドメインに分割され、これによって大量のチャネルが同時に開かれ、その結果としてページの読み込み時間が短縮され、パフォーマンスが向上します。

アプリケーション デリバリー コントローラーは、配信されるコンテンツを解析することができるので、圧縮効率の低いGIF画像をより効率的なPNG形式に変換して送出するなど画像を含むWebページの配信をさらに最適化することができます。

Webページのその他の大型コンポーネントとしては、拡張スクリプトやカスケーディングスタイルシート(CSS)のファイルがありますが、ADCは不要な文字やスペースを削除することによりこれらを圧縮できます。

圧縮により、ファイルはネットワーク上ではるかに高速で転送され、ダウンロード時間が大幅に短縮されます。

アプリケーションとユーザーセキュリティ

Webを介した配信により、従来のLANに束縛されたアプリケーションでは絶対に対応できない新たな脅威と脆弱性が生じています。業務面でのモバイルへの依存度が高まり、アプリケーションとデータへのリモートアクセスが増えるにつれて、外的な攻撃やデータの漏えいに対してIT部門ではより厳格なセキュリティ保護を備える必要があります。

アプリケーション デリバリー コントローラーは、ネットワークに対する自然のエントリポイントまたはゲートウェイの役割を果たします。ADCでは、アプリケーションにアクセスしようとする各ユーザーの認証を行います。アプリケーションがSaaSベースの場合、ADCはオンプレミスのActive Directoryデータストアを使用してユーザーのIDを検証できるため、証明書をクラウドに保存する必要がありません。このプロセスはセキュリティが高いだけでなく、シングルサインオンで複数のアプリケーションを使用できるため、ユーザーエクスペリエンスも強化できます。

XMLベースのプロトコルであるSAMLは現在、アプリケーションのログインプロセスを簡素化するために広く使用されています。ADCはSAMLエージェントとして機能し、ユーザーのIDを確認できるデータストア経由でユーザーの認証を行うことができます。一部のアプリケーションではFacebookやGoogle+などのサイトからの証明書を使用でき、アクセス権を付与する前にIDを検証できます。ADCはこの面で、SAMLのIDまたはサービスのプロバイダーとして機能することができます。

分散型サービス妨害(DDoS)攻撃が頻繁に発生しています。1企業のサーバーをオーバーフローさせ、ビジネスの遂行能力を阻害する目的で、特に企業のWeb資産がその対象となっています。ADCはレートを制限する手段の導入により、これらの特殊な攻撃から社内サーバーリソースを保護します。受信要求が異常に大量に押し寄せた場合、ADCはこれらの要求を絞り、攻撃者が使用可能な帯域幅の量を最小限に抑えるか、要求全体を拒絶することができます。

最新のアプリケーション デリバリー コントローラーでは、負荷分散機能に高度なレイヤー7保護が統合されています。これらは従来スタンドアロンのソリューションのみで提供されていました。アプリケーションファイヤウォールはデータ パケットのヘッダー情報を精査し、ネットワークファイヤウォールでは検出できない疑わしいコンテンツや悪意のあるスクリプトをチェックします(図2参照)。

図2. ネットワークのファイアウォール機能を超えるレイヤー7保護

1 Jonathan Keane、2015年第2四半期のDDoS攻撃が記録的な数字に、Digital Trends、2015年8月19日。http://www.digitaltrends.com/computing/ddos-attacks-hit-record-numbers-in-q2-2015/

アプリケーション デリバリー コントローラーはポジティブとネガティブの両方のセキュリティモデルをサポートできます。ADCが「学習」モードの場合、トラフィックを解析して通常の動作を表す使用量のパターンを決定します。たとえば、SQLインジェクションまたはクロスサイトスクリプティングを使用した、悪意のある受信要求が送信されると、その要求に自動的にフラグを付けてブロックします。また、Qualysなどのサードパーティセキュリティプロバイダーとの統合により、署名ベースの保護も採用します。これらの保護方法の組み合わせにより、ADCは、アプリケーションとユーザー向けの包括的なハイブリッドのセキュリティモデルを使用できるようになっています。

ADCの今後の予定

ADCはIT組織に計り知れない価値を既に提供しており、ユーザーにアプリケーションとデータを安全に配信できるようにしています。しかしアプリケーションの進化に伴って、ADCもさらに高度化することが期待されています。ソフトウェア定義ネットワーキングにより、アプリケーション デリバリー コントローラーが「サービスとして」機能することへの需要が高まっています。ネットワークのプロトコルがアプリケーション中心になるにつれて、ADCはそれに適応し、より一層「自己自動化」して、あらゆるタイプのアプリケーションに対してシームレスな最適化と保護を提供する必要があります。

次のステップ