Apigee サーバーの移動

あるマシンから別のマシンにコンポーネントを移動する場合、コンポーネント構成ファイル内の IP アドレスを同期させないと、構成の不一致につながる可能性があります。

このセクションでは、構成の不一致を診断して修正する方法について説明します。

IP アドレス対ホスト名

コンポーネント構成ファイルでは、ホスト名ではなく IP アドレスを使用してください。

一部のコンポーネント構成ファイルでは IP アドレスの代わりにホスト名を使用できますが、ホスト名を使用するとトラブルシューティングが複雑になる可能性があります。たとえば、ホスト名が原因で DNS サーバーの接続の問題、検索(ルックアップ)の失敗、同期に関連する問題が発生することがあります。

そのため、すべてのコンポーネント構成に対して IP アドレスを使用することを強くおすすめします。また Cassandra などではホスト名を使用できず、必ず IP アドレスを使用しなければなりません。このドキュメントのほとんどの例では、コンポーネント構成に IP アドレスを使用しています。

Apigee サーバーを移動する際は、ホスト名と IP アドレスに関して次のシナリオの影響を考慮してください。

シナリオ サーバーの移動に対する影響
IP アドレスを変更する 変更前の IP アドレスを参照しているすべての関連ファイルを更新する
ホスト名を変更し、IP アドレスは変更しない 影響なし
ホスト名と IP アドレスの両方を変更する IP アドレスを変更する場合と同じ

Cassandra ノードの IP アドレスの変更

Cassandra ノードの IP アドレスを変更するには、次の手順を行います。

単一の Cassandra ノードを使用する構成の場合

  1. 変更されるシステム上の /opt/apigee/customer/application/cassandra.properties を編集します。ファイルが存在しない場合は作成します。
  2. 次のパラメータを変更します。
    • conf_cassandra_seeds および conf_cassandra_listen_address パラメータを設定して、システムの新しい IP アドレスを指定します。
    • 新しい IP アドレスまたは 0.0.0.0 を使用するように conf_cassandra_rpc_address を変更します。後者の場合、Cassandra Thrift はすべてのインターフェースでリッスンできます。
  3. /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties をエディタで開きます。古い IP アドレスとデフォルト設定が次のように表示されます。
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1

    その情報を保存します。

  4. /opt/apigee/customer/application/cassandra.properties を編集して、指定されている古い IP アドレスを新しい IP アドレスに変更します。
    conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n

    IP アドレスの後ろに必ず「\n」を挿入し、上記の手順 3 と同じデフォルト設定を指定します。

  5. Cassandra を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 必要に応じて ZooKeeper(下記参照)も修正し、Management Server から順にすべての Apigee プラットフォーム コンポーネントを再起動します。

複数の Cassandra ノード(リング)を使用する構成の場合

  1. 変更されるノードがシードノードである場合、リングの各システム上の /opt/apigee/customer/application/cassandra.properties ファイルを編集して、変更されるシステムの新しい IP が含まれるように conf_cassandra_seeds パラメータを変更します。cassandra.properties ファイルが存在しない場合は作成します。
  2. 変更されるシステム上で /opt/apigee/customer/application/cassandra.properties を編集し、次のパラメータを変更します。
    • 新しい IP アドレスを使用するように conf_cassandra_listen_address を設定します。
    • 新しい IP アドレスまたは「0.0.0.0」を使用するように conf_cassandra_rpc_address を設定します。後者の場合、Cassandra Thrift はすべてのインターフェースでリッスンできます。
  3. /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties をエディタで開きます。すべての Cassandra IP アドレスとデフォルト設定が次のように表示されます。
    192.168.56.101=dc-1:ra-1
    192.168.56.102=dc-1:ra-1
    192.168.56.103=dc-1:ra-1
    default=dc-1:ra-1

    その情報を保存します。

  4. /opt/apigee/customer/application/cassandra.properties を編集して、指定されている古い IP アドレスを新しい IP アドレスに変更します。
    conf_cassandra-topology_topology=192.168.56.101=dc-1:ra-1\n192.168.56.102=dc-1:ra-1\n192.168.56.104=dc-1:ra-1\ndefault=dc-1:ra-1\n

    各 IP アドレスの後に必ず「\n」を挿入し、上記の手順 3 で記録したのと同じデフォルト設定を使用します。

  5. 変更されるシステムの Cassandra を再起動します。変更されるシステムがシードノードである場合は、変更対象のシードノードを使用していた各システムも再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 変更対象のノードで nodetool ring コマンドを実行して、リングが完全であることを確認します。このユーティリティは /opt/apigee/apigee-cassandra/bin にあります。
    nodetool [-u username -pw password] -h localhost ring

    ユーザー名とパスワードを渡す必要があるのは、Cassandra で JMX 認証を有効にした場合のみです。

  7. 変更対象のノードで nodetool repair を実行します。このプロセスには時間がかかる可能性があるので、API トラフィックのピーク時には行わないよう強くおすすめします。
    nodetool [-u username -pw password] -h localhost repair -pr
  8. 必要に応じて ZooKeeper を修正し(下記を参照)、Management Server から順にすべての Apigee プラットフォーム コンポーネントを再起動します。

データストア登録の更新

  1. 次のコマンドを使用して、古い IP アドレスを指定するデータストア登録の UUID を見つけます。「type」および「UUID」パラメータをメモしておきます。
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=central&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=gateway&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=analytics&region=DC" | egrep -i '[type|internalip|uuid|region]'

      ここで DC はデータセンター名です。単一のデータセンター インストールでは通常、値は「dc-1」です。

  2. 次のいずれかのコマンドを使用して新しい IP アドレスを登録します。必要なコマンドは、変更するノードのタイプによって異なります。
    • タイプが「application-datastore」の場合
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=application-datastore&Type=audit-datastore&InternalIP=NEWIP&region=REGION&pod=central" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST
    • タイプが「kms-datastore」の場合
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=kms-datastore&Type=dc-datastore&Type=keyvaluemap-datastore&Type=counter-datastore&Type=cache-datastore \
        &InternalIP=NEWIP&region=REGION&pod=GATEWAY_POD" -H 'content-type: \
        application/x-www-form-urlencoded' -X POST
    • タイプが「reportcrud-datastore」の場合
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers" -d \
        "Type=reportcrud-datastore&InternalIP=NEW_IP&region=REGION&pod=analytics" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST 
  3. IP アドレスの変更対象となったシステムの UUID に関する古い登録を削除します。該当する各 UUID に対して、次のコマンドを発行します。
    curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE

ZooKeeper ノードの IP アドレスの変更

ZooKeeper ノードの IP アドレスを変更するには、次の手順を行います。

IP アドレスを変更し、ZooKeeper アンサンブルを再起動する(複数ノードのアンサンブル構成の場合のみ)

  1. /opt/apigee/apigee-zookeeper/conf/zoo.cfg をエディタで開きます。すべての ZooKeeper IP アドレスとデフォルト設定が次のように表示されます。
    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    server.3=192.168.56.103:2888:3888

    その情報を保存します。

  2. 各 ZooKeeper ノードで /opt/apigee/customer/application/zookeeper.properties ファイルを編集し、conf_zoo_quorum プロパティを正しい IP アドレスに設定します。ファイルが存在しない場合は作成します。
    conf_zoo_quorum=server.1=192.168.56.101:2888:3888\nserver.2=192.168.56.102:2888:3888\nserver.3=192.168.56.104:2888:3888\n

    各 IP アドレスの後に必ず「\n」を挿入し、そのエントリの順序がすべてのノードで同じであることを確認してください。

  3. 次のコマンドを使用して、ZooKeeper アンサンブルのリーダーを見つけ(node を Zookeeper マシンの IP アドレスに置き換えます)。
    echo srvr | nc node 2181

    出力の Mode 行は「leader」と表示されます。

  4. まずリーダーの ZooKeeper を再起動します。その後、IP アドレスが変更されたノードの ZooKeeper を再起動します。複数の ZooKeeper ノードで IP アドレスが変更された場合は、すべてのノードを再起動する必要が生じることがあります。
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. 上記の echo コマンドを使用して各 ZooKeeper ノードを確認します。

Apigee ノードに構成の変更を通知する

  1. 各 Router ノードで、次のように /opt/apigee/customer/application/router.properties ファイルを編集します。ファイルが存在しない場合は作成します。
    • 新しい IP アドレスを含めるように conf_zookeeper_connection.string パラメータを変更します。
    • 新しい IP アドレスを含めるように conf_zookeeper_zk1.host パラメータを変更します。
  2. すべての Message Processor ノードで、次のように /opt/apigee/customer/application/message-processor.properties ファイルを編集します。ファイルが存在しない場合は作成します。
    • 新しい IP アドレスを含めるように conf_zookeeper_connection.string パラメータを変更します。
    • 新しい IP アドレスを含めるように conf_zookeeper_zk1.host パラメータを変更します。
  3. Management Server ノードで、次のように /opt/apigee/customer/application/management-server.properties ファイルを編集します。ファイルが存在しない場合は作成します。
    • 新しい IP アドレスを含めるように conf_zookeeper_connection.string パラメータを変更します。
    • 新しい IP アドレスを含めるように conf_zookeeper_zk1.host パラメータを変更します。
  4. 各ノードで次のコマンドを実行して、すべての Apigee プラットフォーム コンポーネントを再起動します。
    /opt/apigee/apigee-service/bin/apigee-all restart

LDAP サーバー(OpenLDAP)の IP アドレスの変更

OpenLDAP ノードの IP アドレスを変更するには、次の手順を行います。

  1. Management Server ノードで、/opt/apigee/customer/application/management-server.properties ファイルを編集します。ファイルが存在しない場合は作成します。
  2. management-server.properties ファイルで、conf_security_ldap.server.host パラメータを新しい IP アドレスに設定します。
  3. Management Server を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

他の Apigee ノードタイプの IP アドレスの変更

ノードタイプ Router、Message Processor、Postgres Server(postgresql ではない)、Qpid Server(qpidd ではない)のいずれかの IP アドレスを変更するには、次のようにします。

  1. 次の curl コマンドを使用して、新しい内部 IP アドレスと外部 IP アドレスを登録します。
    curl -u ADMINEMAIL:PW -X PUT \
      http://MSIP:8080/v1/servers/uuid -d ExternalIP=ip
    curl -u ADMINEMAIL:PW -X PUT \
      http://$MSIP:8080/v1/servers/uuid -d InternalIP=ip

    ここで uuid はノードの UUID です。

コンポーネントの UUID を取得する方法については、UUID の取得をご覧ください。