アプリケーション配信コントローラー(ADC)は、インターネット上でのアプリケーション配信を最適化するために使用されるネットワーク・デバイスで、通常はアプリケーション配信ネットワーク(ADN)の一部として使用されます。
ADCはハードウェア・アプライアンスまたはソフトウェア・プログラムであり、通常は企業ネットワークの非武装地帯(DMZ)のファイアウォールと1つ以上のアプリケーション・サーバーの間に配置されます。ADCは、暗号化された応答をユーザーに送り返す前に、クライアント要求を受信、復号化、検証、ルーティングするリバース・プロキシとして機能します。
ADCは、企業がネットワーク・アプリケーションをモダナイズし、クライアント・マシンとWebサーバー間の接続を高速化し、グローバル・サーバー・ロード・バランシング(GSLB)を合理化してエンドユーザーのアプリケーション全体の可用性を向上させるのに役立ちます。
アプリケーション配信コントローラーの進化は、Webアプリケーション、データセンター、およびネットワーク管理の広範な分野の開発と密接に関連しています。
1990年代後半から2000年代初頭にかけて、インターネットが商業化し、Webトラフィックが増加するにつれ、企業はWebサイトやアプリが大量のアプリケーション・トラフィックを効率的に処理できるようにする方法を必要としていました。主な課題は、高可用性とネットワーク・レジリエンスを保証するために、受信リクエストを複数のサーバーに分散させる方法を見つけることでした。
この課題に対処するための第1世代のデバイスは、ロード・バランサーと呼ばれていました。当初、それらはシンプルで、トランスポート層で運用されていました。ロード・バランサーは、受信トラフィックを複数のサーバーに分散して負荷のバランスをとり、単一のサーバーを圧迫するのを防ぐことに重点を置いています。
しかし、アプリやWebサイトが複雑になるにつれて、従来のロード・バランサーは、ユーザー要求の内容(IPアドレスやポートだけでなく)を読み取って意思決定を行うことができないため、支持されなくなりました。これにより、開発者はアプリケーション層でメッセージの内容を検査できるレイヤー7のロード・バランシング・ソリューションにアップグレードするようになりました。
高度なロード・バランサーは、HTTPヘッダー、Cookie、さらには特定のページ要求などのファクターに基づいてトラフィックをルーティングできるため、セッションの永続性(または「定着性」)やコンテンツベースのルーティングなどのより高度なトラフィック管理戦略が促進されます。時間とともに、開発者が機能を追加し続けるにつれて、これらのロード・バランサーは、現在ADCと呼ばれるインテリジェント・コントローラーになります。
最新のアプリケーション配信コントローラーは、レジリエンスと可用性に優れたITインフラストラクチャー、特にネットワーク・データセンターの重要なコンポーネントです。クライアント・デバイスとバックエンド・サーバー間の効率的で安全なデータ・フローを保証する一連の複雑なプロセスと機能を使用して、アプリのトラフィックを管理します。これらの機能は次のとおりです。
ADCの主な機能の1つは、最小の接続、ラウンドロビン、サーバー応答時間などのアルゴリズムに基づいて、着信トラフィックを複数のサーバーに分散することです(ロード・バランシング)。1台のサーバーが過負荷になったりオフラインになったりした場合、ADCはトラフィックを他のサーバーにリダイレクトして、異常なサーバーがボトルネックになるのを防ぎ、ネットワーク・パフォーマンスとユーザー・エクスペリエンスに影響を与えないようにします(または最小限に抑えられます)。
ロード・バランサーはセッションの永続性も維持し、ユーザーのセッション・データがキャッシュされ、対話全体を通じて同じサーバー上に保持されるようにします。
グローバル・サーバー・ロード・バランシング(GSLB)は、しばしばロード・バランサーのロード・バランシングと呼ばれ、地理的に異なる場所にある複数のサーバーにリクエストを分散することができるため、ユーザーは最も近いデータセンターまたは最もパフォーマンスの高いデータセンターに自動的に誘導されます。
トランスポート層セキュリティ(TLS)とSecure Sockets Layer(SSL)の処理は、Webサーバーのリソースに負担をかけることがあります。SSLオフロードにより、ADCはバックエンド・サーバーを置き換え、SSLまたはTLSエンドポイントとして機能して暗号化と復号化を管理し、アプリのデータ処理のためにCPUリソースを解放し、サーバーのパフォーマンスを向上させます。
ADCは、TCP多重化プロセスを使用してネットワーク接続を最適化します。このプロセスでは、多数のクライアント側のTCP接続を(プールまたは再利用することによって)少数のサーバー側接続に統合します。ADCは、一連の永続的なサーバー接続を使用することで、これらの接続上でクライアントの要求を動的に多重化し、サーバーのオーバーヘッドを削減できます。
ADCは、頻繁に要求されるコンテンツ(画像、ビデオ、Webサイトなど)をユーザーの近くでキャッシュできるため、Webサーバーから繰り返し生成したり取得したりする必要がなくなります。これらのキャッシュ・ポリシーは、起点サーバーの処理負荷を大幅に軽減し、エンド・ユーザーへのサーバー応答時間を短縮することができます。
ADCは、Webコンテンツ(HTML、CSS、JavaScriptなど)をクライアントに送信する前に圧縮するため、帯域幅の需要を減らし、特にインターネット接続が遅いユーザー向けのコンテンツ配信が高速化されます。
ADCには、多くの場合、DNSアプリケーション・ファイアウォールとWebアプリケーション・ファイアウォール(WAF)が含まれており、着信トラフィックに悪意のあるパターンがないか検査し、潜在的に有害な要求をブロックすることで、SQLインジェクション、Cookieポイズニング、クロスサイト・スクリプティング(XSS)、その他のアプリケーション層攻撃などの一般的なセキュリティー脆弱性から保護します。
ADCは、悪意のあるトラフィックがアプリケーション・インフラストラクチャーに過負荷をかける前にフィルタリングすることで、分散型サービス妨害(DDoS)攻撃からアプリを保護するのにも役立ちます。アプリ固有のアクセス制御、レート制限プロトコル、ボット管理機能を備えたADCは、ゼロトラスト・アーキテクチャーを構築し、ネットワークの悪用や攻撃を防ぐのに役立ちます。
ADCはトラフィックに優先順位を付けて、トラフィックがピークのときでも重要なアプリケーションが必要な帯域幅を確保できるようにし、時間的制約のあるミッションクリティカルなデータがより速くネットワークを通過できるようにします。また、ADCはサービス品質(QoS)ポリシーを使用して帯域幅を管理し、ネットワークの輻輳を防止するのにも役立ちます。
ADCは、ディレクトリー・サービス(オンプレミスのActive Directoryなど)と対話して、ユーザー・アプリのアクセスを制御し、クライアント認証と承認の検証のための一元的な認証ポイントを提供します。また、多要素認証(MFA)やシングル・サインオン(SSO)などの新しいプロトコルもサポートしており、ネットワーク・セキュリティーを強化します。
クラウドネイティブ・アプリケーションへの移行により、アプリケーション配信コントローラーは、コンテナ化された環境とマイクロサービス・アーキテクチャーをサポートするように進化する必要性が生じています。ハードウェア・ベースおよびソフトウェア・ベースのADCは引き続き多くの面で効果的ですが、従来のADCはモノリシック・アプリ用に設計されており、今日のクラウドネイティブ・アプリケーションの動的な性質に追いつくのに苦労することがよくあります。
これに対処するため、Citrix、VMWare、Amazon Web Services(AWS)、Microsoft Azure、IBMなどのサービス・プロバイダーは、高度な俊敏性、拡張性、自動化機能を提供するクラウドネイティブADC(IaaS、PaaS、SaaSの形式)を開発しました。最新のADCは、クラウド・プロバイダーAPIやコンテナ・オーケストレーション・ツール(Kubernetesなど)とシームレスに統合して、優れたサービス検出、オートスケーリング、トラフィック管理機能を提供するように設計されています。
アプリケーション配信コントローラーは、基本的なロード・バランサーとして誕生したにもかかわらず、ITインフラストラクチャーとアプリケーション配信ソリューションの動的なニーズを満たすために一貫して適応してきました。今日のADCは、複雑なマルチクラウド環境全体でアプリケーションのパフォーマンス、セキュリティー、配信の最適化を提供する多面的なアプリケーション配信プラットフォームです。
大規模で複雑、または分散型のコンテンツ配信ネットワーク(CDN)を運用している企業はすべて、ADCを使用することで、ネットワーク・アプリケーションの一貫した可用性と優れたパフォーマンスを確保できます。
ADCは次の点でビジネスを支援します。
ADCは、ネットワーク・トラフィックをネットワーク上のデータセンターのサーバー・クラスターにリダイレクトできます。具体的には、他のADCと連携してインターネット上のトラフィックのパスを最適化し、各ADCがクライアントに最も近いデータセンターに要求をルーティングして、待ち時間と往復時間を最小限に抑えることができます。
ADCは、それに応じてタイムアウトとバッファー・サイズを調整することで、高速なクライアントと低速なクライアントを処理します。また、コントローラーは接続を終了して不要なリソースを解放したり、接続を多重化してネットワークの効率を高めたりすることもできます。
ADCはアプリ・サーバーのリアルタイムの健全性を継続的に監視し、応答性が高く利用可能なサーバーのみにトラフィックがルーティングされるようにします。Webサーバーにpingを送信し、TCP接続の確立を試み、アプリ・レベルの要求を実行して、サーバーが最適に機能していることを確認します。
サーバーに障害が発生したり、最適でない状態で機能し始めたりする場合、ADCはトラフィックを他のサーバーにリダイレクトし、サーバーの再起動やその他の回復アクション(そのように設定されていると仮定します)を開始することもできます。
マルチテナンシー設計により、組織内のさまざまなグループ(DevOps、マーケティング、営業、またはカスタマー・サービス、在庫、支払いなどの特定のアプリケーション・チーム)が同じアプリケーション・インフラストラクチャーを共有できるようになります。仮想、物理を問わず、より多くのサービスをより少ないデバイスに統合することで、組織はネットワークの俊敏性を高め、管理、取得、継続的なサポートに関連するコストを削減することができます。
エッジコンピューティングでは、中央データセンターだけに頼るのではなく、ソースの近く(ネットワークのエッジ)でデータを処理します。ネットワーク・エッジにデプロイされたADCは、ローカル・トラフィックを最適化し、ローカル・セキュリティーとコンプライアンス・ポリシーを管理し、分散環境でもアプリの効率的な動作を保証できます。これは、リアルタイム処理機能を必要とするIoT(モノのインターネット)アプリケーションやサービスに特に役立ちます。
ADCはよりプログラマブルになり、SDNアーキテクチャーとの統合も容易になりました。SDNアーキテクチャーでは、ネットワークの制御層とデータ層が分離され、より一元的で柔軟なリソース管理が可能になります。現在、ADCはソフトウェア・コントローラーを使用して動的に構成および管理できるため、ネットワーク・トラフィックの変動やアプリの要求により機敏に対応できます。
アプリケーション配信コントローラーは、特に大量のWebトラフィックを処理する企業、極めて重要なアプリケーションをホストする企業、または高レベルのデータ・セキュリティーを必要とする企業向けに、ビジネスでトラフィック・ルーティングを最適化し、ネットワークの可用性を最大化するのに役立ちます。
ADCは次のことをビジネスにもたらします。
ADCは、幅広いメトリクス(トラフィック量、サーバーの正常性、セキュリティー・イベントなど)に関するデータを収集し、ビジネスがネットワーク機能についての洞察を得るのに役立ちます。
ADCは、コンテンツ・スイッチングなどの無数の手法を使用してデータを圧縮、リサイクル、キャッシュし、ネットワーク・アプリやWebサイトを高速化します。
ADCは、利用可能なアプリケーション・サービスを自動的に拡張して、特に高遅延ネットワークやモバイル・ネットワークの場合に、高性能なトラフィック・ルーティングを確保できます。
ADCは、ビジネスが運用を継続でき、サーバーに障害が発生した場合のユーザーの遅延を最小限に抑えるためのフェイルオーバー機能を提供します。ADCは、サーバー間でユーザー・セッションを複製および同期するため、サーバーがオフラインになった場合でも、実行責任をセッションの複製に渡すことができます。
オンプレミス、クラウド、またはメインフレームのあらゆるアプリケーションのソフトウェア配信を自動化します。
DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。
IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。