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(Cassandra Thrift がすべてのインターフェースでリッスンできる)を使用するように conf_cassandra_rpc_address を変更します。
  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 の修復も行います(ZooKeeper ノードの IP アドレスの変更をご覧ください)。それ以外の場合は、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. 他のすべてのノードに対して、ステップ 3 と 4 で行った変更を繰り返して、Cassandra リング内のこのノードの位置を通知します。さらに、ステップ 1 の説明に従ってシードノードの IP を変更します。
  7. 残りの Cassandra ノードを 1 つずつ再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  8. 変更したノードで nodetool ring コマンドを実行して、リングが完全であることを確認します。このユーティリティは /opt/apigee/apigee-cassandra/bin にあります。
    nodetool [-u username -pw password] -h localhost ring
  9. 変更したノードで nodetool repair を実行します。この処理には時間がかかることがあるため、API トラフィックのピーク時には行わないことを強くおすすめします。
    nodetool [-u username -pw password] -h localhost repair -pr
  10. 必要に応じて ZooKeeper を修復し(ZooKeeper ノードの IP アドレスの変更を参照)、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 アドレスを登録します。必要なコマンドは、変更したノードのタイプによって異なります。
    • type="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
    • type="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
    • type="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 の取得をご覧ください。