プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Coherenceリモート・クライアントの開発
12c (12.2.1.3.0)
E90212-01
目次へ移動
目次

前

B F5 BIG-IP LTMとの統合

F5 BIG-IP Local Traffic Manager (LTM)ハードウェア・ロード・バランサを使用して、Coherence*Extendクライアント接続の負荷を分散できます。BIG-IPシステムを使用してSSL処理の負荷を軽減するための指示も含まれています。

この指示はCoherence*Extend設定に関係するので、BIG-IP構成ユーティリティを使用する場合に特有です。使用方法に関する指示を実行する方法の詳細は、ユーティリティに付属しているヘルプを参照してください。さらに、指示はBIG-IP LTM 10.2.1に基づいて作成されており、将来リリースされるBIG-IP LTMでは正確でなくなる場合があります。

この付録の内容は次のとおりです。

B.1 基本概念

F5 BIG-IP LTMとは、Coherence*Extendクライアント(クライアント層)を実行している1台以上のコンピュータとCoherence*Extendプロキシ・サーバー(プロキシ層)を実行している1台以上のコンピュータとの間にあるハードウェア・デバイスのことです。アプリケーション・トラフィックの保護、最適化およびロード・バランシングに関して多様なテクニックを使用して、LTMによりクライアント接続を複数のクラスタ化プロキシ・サーバーにおいて分散させます。

図B-1は、外部ネットワーク・クライアントと内部ネットワーク・サーバーとの間において設定されているBIG-IPシステムの概念図を示します。

図B-1 F5 BIG-IP LTMの概念図

図B-1の説明が続きます
「図B-1 F5 BIG-IP LTMの概念図」の説明

B.2 ノードの作成

ノードとは、ネットワーク上にある物理リソースのIPアドレスを識別するBIG-IPシステム上の論理オブジェクトのことです。Coherence*Extendの場合、内部ネットワークで1台以上のプロキシ・サーバーをホストする各コンピュータに対してノードを構成します。

ノードを作成するには、次の手順を実行します。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開してから「Nodes」をクリックします。
  3. 画面の右上隅にある「Create」をクリックします。「New Node」画面が表示されます。
  4. 「Address」設定で、ノードのIPアドレスを入力します。
  5. その他の設定のそれぞれに関して値を指定するか、そのままにするか、変更します。
  6. 「Finished」をクリックします。

図B-2に、ノード構成例を示します。

B.3 ロード・バランシング・プールの構成

ロード・バランシング・プールは、トラフィックを受信および処理する論理デバイス(プロキシ・サーバーなど)のグループです。クライアントのリクエストで指定された送信先IPアドレスにクライアントのトラフィックを送信するのではなく、BIG-IPシステムではそのプールのメンバーであるサーバーにリクエストを送信します。これによって、サーバーのリソースに関して負荷が効率的に分散されます。

プールを作成する際、プール・メンバーをプールに割り当てます。プール・メンバーとは、サーバー・エンドポイントをネットワーク上で示す論理オブジェクトのことです。Coherence*Extendの場合、プロキシ層コンピュータ上で実行している各JVMプロキシ・サーバーに対してプール・メンバーを作成します。

BIG-IPシステムがリクエストの送信先に選択した特定プール・メンバーは、そのプールに割り当てたロード・バランシング方法により判別されます。ロード・バランシング方法とは、リクエストを処理するプール・メンバーを選択するためにBIG-IPシステムで使用するアルゴリズムのことです。たとえば、デフォルトのロード・バランシング方法はラウンド・ロビンで、これによってBIG-IPシステムで各入力リクエストを次に利用可能なプール・メンバーに送信し、プールにあるサーバーにおいてリクエストが均等に分散されます。

この項には次のトピックが含まれます:

B.3.1 ロード・バランシング・プールの作成

ロード・バランシング・プールを作成するには、次の手順を実行します。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開してから「Pools」をクリックします。「Pools」画面が表示されます。
  3. 画面の右上隅にある「Create」をクリックします。「New Pool」画面が表示されます。
  4. 「Configuration」リストで、「Advanced」を選択します。
  5. 「Name」設定で、プールの名前を入力します。
  6. その他の設定のそれぞれに関して値を指定するか、そのままにするか、変更します。
  7. 「Finished」をクリックします。

図B-3は、プール構成例を示します。

B.3.2 ロード・バランシング・プールのメンバーの追加

プールのメンバーをロード・バランシング・プールに追加するには、次の手順を実行します。

  1. 「Members」タブで、表示されている番号をクリックします。これによって、プールの既存メンバーが一覧表示されます。
  2. 画面の右にある「Add」をクリックします。「New Pool Member」画面が表示されます。
  3. 「Address」ボックスで、「Node List」を選択してからIPアドレスを選択します。
  4. 「Service Port」ボックスで、対応プロキシ・サーバーがリスニングするポート番号を入力します。
  5. その他の設定のそれぞれに関してそのままにするか変更します。
  6. 「Finished」をクリックします。

図B-4は、プール構成例を示します。以前に作成したノード上で2つのプロキシ・サーバー用プール・メンバーが稼働し、ポートの7100と7077をそれぞれリスニングしていることが示されています。さらに、接続数最小型ロード・バランシング・ポリシーを使用するようにプールが構成されます。

図B-4 プールのメンバー例

図B-4の説明が続きます
「図B-4 プールのメンバー例」の説明

B.4 仮想サーバーの構成

仮想サーバーとは、BIG-IPシステム上でIPアドレスとポートで示されるトラフィック管理オブジェクトのことです。外部ネットワークにあるクライアントは、アプリケーション・トラフィックを仮想サーバーに送信できます。それから、構成指示に応じてそのトラフィックが転送されます。仮想サーバーの主な目的は、内部ネットワークにあるサーバーのプールにおいてトラフィックの負荷を分散させることにある場合が多いです。仮想サーバーを使用することで、クライアント・リクエストを処理するためのリソースの可用性が向上します。Coherence*Extendの場合、以前に構成したプロキシ・サーバーのプールにトラフィックを転送するように仮想サーバーを構成する必要があります。

仮想サーバーを作成するには、次の手順を実行します。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション画面の「Main」タブで、「Local Traffic」を展開してから「Virtual Servers」をクリックします。「Virtual Servers」画面が表示されます。
  3. 画面の右上にある「Create」をクリックします。「New Virtual Server」画面が表示されます。
  4. 「Name」設定で、仮想サーバーの名前を入力します。
  5. 「Destination」ボックスで、BIG-IPデバイスの外部IPアドレスを割り当て、「Service Port」ボックスでリスニング・ポートを指定します。これは、Coherence*Extendクライアントの接続先となるIPアドレスとポートです。
  6. 「SNAT Pool」リストから「Automap」を選択します。
  7. 以前に作成したプールを「Default Pool」ドロップダウン・ボックスで選択します。
  8. その他の設定のそれぞれに関してそのままにするか変更します。
  9. 「Finished」をクリックします。

図B-5は、10.196.21.3:7077上でTCP/IP接続においてリスニングする仮想構成例を示します。

さらに、図B-6に示すように、構成されたプールにトラフィックがこの仮想サーバーにより転送されます。

図B-6 構成プールを使用する仮想サーバー例

図B-6の説明が続きます
「図B-6 構成プールを使用する仮想サーバー例」の説明

B.5 BIG-IP LTMを使用するようにCoherence*Extendを構成する方法

BIG-IP LTM仮想サーバーを使用するようにCoherence*Extendを構成する必要があります。クラスタ側とクライアント側のキャッシュ構成ファイルの両方で構成が行われている必要があります。

BIG-IP LTMを使用するようにCoherence*Extendを構成するには、次の手順を実行します。

  1. プロキシ・サーバーのキャッシュ構成ファイルを開きます。
  2. プロキシ・スキーム定義を編集して、client<load-balancer>要素内で入力することで、クライアント用ロード・バランシング戦略を指定します。次に例を示します。
    <proxy-scheme>
       <service-name>ExtendTcpProxyService</service-name>
       <load-balancer>client</load-balancer>
       <autostart>true</autostart>
    </proxy-scheme>
    
  3. プロキシ・サーバーのキャッシュ構成ファイルを保存してから閉じます。追加プロキシ・サーバーに対して手順2を繰り返します。
  4. クライアントのキャッシュ構成ファイルを開きます。
  5. <remote-cache-scheme>要素で、BIG-IP仮想サーバーのIPアドレスとポートを一覧表示します。「仮想サーバーの構成」を参照してください。さらに、<heartbeat-interval>要素を<outgoing-message-handler>要素内で指定します。これによって、構成されている時間間隔でTCP/IP接続上にクライアントが定期的にハートビート・メッセージを送信します。アイドル状態のクライアントからBIG-IPデバイスが接続を切断するのを防止するには、これが必要です。次に例を示します。
    <remote-cache-scheme>
       <scheme-name>extend-direct</scheme-name>
       <service-name>ExtendTcpCacheService</service-name>
       <initiator-config>
          <tcp-initiator>
             <remote-addresses>
                <socket-address>
                   <address>10.196.21.3</address>
                   <port>7077</port>
                </socket-address>
             </remote-addresses>
          </tcp-initiator>
          <outgoing-message-handler>
             <heartbeat-interval>5s</heartbeat-interval>
          </outgoing-message-handler>
       </initiator-config>
    </remote-cache-scheme>
    
  6. クライアントのキャッシュ構成ファイルを保存してから閉じます。

B.6 高度なヘルス・モニタリングの使用

サーバーが稼働状態にありトラフィックを受信できることをヘルス・モニターにより確認できます。モニターするトラフィックのタイプに応じて、プールに関連付けることができる多様な事前定義済ヘルス・モニターがBIG-IPシステムにはあります。

Coherence*Extendの場合、TCPヘルス・モニターを使用して、プロキシ・サーバーのプールをモニターできます。BIG-IPデバイスがプロキシ・サーバーとTCP/IP接続を確立できる場合に、このタイプのモニターでプロキシ・サーバーがマークアップされます。プロキシ・サーバーが機能していることが示されているとしても、プロキシ・サーバーで実際にクライアントのトラフィックを処理できることは保証されません。より詳細にモニタリングするには、BIG-IPを使用すればカスタム・ヘルス・モニターを作成して、Coherence*Extendのpingリクエストをプロキシ・サーバーに送信して適切なレスポンスが返されることを確認できます。これによって、プロキシ・サーバーが稼働してクライアントのトラフィックを処理できます。

注意:

BIG-IP LTMモニターは、SSL over TCPをサポートしていません。ヘルス・モニタリング・チェック(pingなど)はクリア・テキストで送信されます。プロキシ・サーバーとのすべての通信を確実に保護するには、SSLオフロードを使用します。「SSLオフロードの有効化」を参照してください。

この項には次のトピックが含まれます:

B.6.1 カスタム・ヘルス・モニターを作成してCoherenceにpingを送信する方法

Coherence*Extendのpingリクエストをプロキシ・サーバーに送信して稼働していることを確認するカスタムCoherence*Extendヘルス・モニターを作成する手順は次のとおりです。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開してから「Monitors」をクリックします。「Monitors」画面が表示されます。
  3. 画面の右上隅にある「Create」をクリックします。「New Monitor」画面が表示されます。
  4. モニターの名前を「Name」ボックスに入力します。
  5. 「TCP」を「Type」ドロップダウン・ボックスで選択します。
  6. 次を「Send String」ボックスで入力します。
    \x07\x00\x03\x00\x00\x42\x00\x40
    
  7. 次を「Receive String」ボックスで入力します。
    \x09\x00\x04\x03\x00\x42\x00\x03\x64\x40
    
  8. 「Finished」をクリックします。

図B-7は、カスタムCoherence*Extendヘルス・モニター構成例を示します。

図B-7 Coherence*Extend pingヘルス・モニター例

図B-7の説明が続きます
「図B-7 Coherence*Extend pingヘルス・モニター例」の説明

B.6.2 カスタム・ヘルス・モニターを手動で作成してCoherenceにpingを送信する方法

10.2.1より前のバージョンのBIG-IPを使用する解決法では、手動で外部ヘルス・モニターを構成する必要があります。このためには、実行可能ファイルのシェル・スクリプトをextend_pingの名前でBIG-IPデバイスの/usr/bin/monitorsディレクトリに作成します。スクリプトの内容は次のようにします。

#! /bin/bash
###############################################################################
###  EXTERNAL MONITOR FOR COHERENCE*EXTEND 
###   INPUTS:
###     $1    The IPV6 formatted IP address of the pool member to test
###     $2    The port number of the pool member to test
###     $3+   White space delimited parms as listed in the monitor "args"
###   OUTPUTS:
###     If null is returned, the member is "down"
###     If any string of one or more characters is returned, the member is "up"
###############################################################################
 
IP=${1:-"127.0.0.1"}
IP=${IP##*:} # This removes the leading ::ffff:
PORT=${2:-"80"}
TIMEOUT=${3:-1}
SLEEP=${4:-1}
 
PID_FILE="/var/run/extend_ping.$IP.$PORT.pid"
HEX_REQUEST="0700030000420040"
HEX_RESPONSE="09000403004200036440"
 
###
### Terminate existing process, if any
###
if [ -f $PID_FILE ]
then
   kill -9 `cat $PID_FILE` > /dev/null 2>&1
fi
echo "$$" > $PID_FILE
 
###
###  Ping the server and return a user friendly result
###
RESULT=`/bin/echo "$HEX_REQUEST" | /usr/bin/xxd -r -p | /usr/bin/nc -i \
    $SLEEP -w $TIMEOUT $IP $PORT | /usr/bin/xxd -p | /bin/grep \
    "$HEX_RESPONSE" 2> /dev/null`
 
if [ "$RESULT" != "" ] ; then
   /bin/echo "$IP:$PORT is \"UP\""
fi
 
rm -f $PID_FILE

extend_pingスクリプトを使用するようにBIG-IPを構成する手順は次のとおりです。

  1. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開してから「Monitors」をクリックします。「Monitors」画面が表示されます。
  2. 画面の右上隅にある「Create」をクリックします。「New Monitor」画面が表示されます。
  3. モニターの名前を「Name」ボックスに入力します。
  4. 「External」を「Type」ドロップダウン・ボックスで選択します。
  5. 次を「External Program」ボックスで入力します。
    /usr/bin/monitors/extend_ping
    
  6. 「Finished」をクリックします。

図B-8は、外部Coherence*Extendヘルス・モニター構成例を示します。

図B-8 シェル・スクリプトで実装されたCoherence*Extendヘルス・モニター例

図B-8の説明が続きます
「図B-8 シェル・スクリプトで実装されたCoherence*Extendヘルス・モニター例」の説明

B.6.3 カスタム・ヘルス・モニターをロード・バランシング・プールと関連付ける方法

カスタム・ヘルス・モニターはロード・バランシング・プールと関連付ける必要があります。カスタムCoherence*Extendモニターを作成したら、それをCoherence*Extendロード・バランシング・プールと関連付けます。

カスタム・ヘルス・モニターをロード・バランシング・プールと関連付けるには、次の手順を実行します。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開してから「Pools」をクリックします。「Pools」画面が表示されます。
  3. Coherence*Extendプールの名前をクリックします。「Pool」画面が表示されます。
  4. カスタムCoherence*Extendヘルス・モニターの名前を「Health Monitors」ボックスで選択します。
  5. 「Update」をクリックします。

図B-9は、カスタム・ヘルス・モニターを使用するCoherence*Extendプールを示します。

図B-9 Coherence*Extendプールをカスタム・ヘルス・モニターと関連付ける方法

図B-9の説明が続きます
「図B-9 Coherence*Extendプールをカスタム・ヘルス・モニターと関連付ける方法」の説明

B.7 SSLオフロードの使用

SSLを使用するようにCoherence*Extendを構成して、クライアントとプロキシ・サーバーのプロセスとの間における通信を保護できます。ただし、これには代償があります。特に、SSLを有効にすると、プロキシ層のCPU使用率が劇的に上昇し、各リクエストの待機時間が長くなります。プライバシの理由で保護されているデータの暗号化と復号化の困難な処理からプロキシ・サーバーが、BIG-IP SSL Accelerationにより解放されます。SSLトランザクションをより効率的に処理するように設計されている高いパフォーマンスのデバイスに、CPU負荷の高い復号化処理が移行されます。この手法はSSLオフロードと知られています。

この項には次のトピックが含まれます:

B.7.1 SSLオフロードの有効化

SSLオフロードを有効にするには、次の手順を記載順に実行する必要があります。

  1. Coherence*Extendクライアントのキャッシュ構成ファイルでSSLを有効にします。『Securing Oracle Coherence』のSSLを使用したExtendクライアント通信の保護に関する項を参照してください。
  2. サーバーのSSL証明書とキーのインポート
  3. クライアントSSLプロファイルの作成
  4. クライアントSSLプロファイルの関連付け

B.7.2 サーバーのSSL証明書とキーのインポート

サーバーのSSL証明書とキーをBIG-IPシステムにインポートする手順は、次のとおりです。

  1. BIG-IP構成ユーティリティにログインします。
  2. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開し、マウスのポインタを「SSL Certificates」の上に移動してから「Import」選択します。「SSL Certificate」画面が表示されます。
  3. 「Import Type」ドロップダウン・ボックスで、「PKCS12」を選択します。
  4. 証明書の名前を「Certificate Name」ボックスに入力します。
  5. 「Choose File」をクリックしてから、サーバーのPKCS12ファイルを参照します。
  6. PKCS12ファイルのパスワードを入力します。
  7. 「Import」をクリックします。

図B-10は、サーバーSSL証明書構成例を示します。

図B-10 BIG-IPシステムにおけるSSL証明書構成例

図B-10の説明が続きます
「図B-10 BIG-IPシステムにおけるSSL証明書構成例」の説明

B.7.3 クライアントSSLプロファイルの作成

クライアントSSLプロファイルを作成するには、次の手順を実行します。

  1. ナビゲーション・ペインの「Main」タブで、「Local Traffic」を展開し、マウスのポインタを「Profiles」の上に移動してから「SSL」の上に移動し、「Client」を選択します。「Client SSL Profiles」画面が表示されます。
  2. 画面の右上隅にある「Create」をクリックします。「New Client SSL profile」画面が表示されます。
  3. クライアントSSLプロファイルの名前を「Name」ボックスに入力します。
  4. 右側で「Custom」チェック・ボックスを選択します。
  5. 以前にインポートしたサーバー証明書の名前を「Certificate」と「Key」の両ドロップダウン・ボックスで選択します。
  6. 「Finished」をクリックします。

図B-11は、クライアントSSLプロファイル構成例を示します。

図B-11 SSLプロファイル構成例

図B-11の説明が続きます
「図B-11 SSLプロファイル構成例」の説明

B.7.4 クライアントSSLプロファイルの関連付け

クライアントSSLプロファイルを使用するようにCoherence*Extend仮想サーバー構成を変更する手順は次のとおりです。

  1. ナビゲーション画面の「Main」タブで、「Local Traffic」を展開してから「Virtual Servers」をクリックします。「Virtual Servers」画面が表示されます。
  2. 仮想サーバーの名前をクリックします。
  3. クライアントSSLプロファイルの名前を「SSL Profile (Client)」ドロップダウン・ボックスで選択します。
  4. 「Update」をクリックします。

図B-12は、クライアントSSLプロファイルを使用する仮想サーバー構成例を示します。

図B-12 クライアントSSLプロファイルのある仮想サーバー構成例

図B-12の説明が続きます
「図B-12 クライアントSSLプロファイルのある仮想サーバー構成例」の説明