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_seedsconf_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. 1 つの ZooKeeper をリーダーで起動してから再起動し、IP アドレスを変更したノードで終了させます。複数の 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 の取得をご覧ください。