データセンターの廃止

場合によっては、データセンターを廃止する必要があります。たとえば、オペレーティング システムをアップグレードする場合は、新しいデータセンターに新しいオペレーティング システムをインストールしてから、古いデータセンターを廃止する必要があります。以下のセクションでは、12 ノードクラスタ構成で 2 つのデータセンター(dc-1 と dc-2)が含まれるデータセンターを廃止する例を説明します。

  • dc-1 は、廃止するデータセンターです。
  • dc-2 は、廃止手順で使用する 2 つ目のデータセンターです。

オペレーティング システムをアップグレードする場合、dc-2 を、新しいバージョンのオペレーティング システム(OS)をインストールしたデータセンターとして使用できます。ただし、新しい OS のインストールは、データセンターを廃止するための要件ではありません。

データセンターの廃止にあたっての考慮事項

データセンターを廃止する際には、以下の点を考慮してください。

  • 廃止するデータセンターへのランタイム トラフィックと管理トラフィックをすべてブロックし、他のデータセンターにリダイレクトします。
  • データセンターの廃止後には、Apigee クラスタの容量が減ります。 これに対処するために、残りのデータセンターの容量の増加や、廃止後のデータセンターの追加を検討します。
  • 廃止するデータセンターにインストールされている分析コンポーネントによっては、廃止プロセスで分析データが失われる可能性があります。詳しくは、Qpid ノードの追加と削除をご覧ください。
  • データセンターを廃止する前に、すべてのデータセンターですべてのコンポーネント(特に OpenLDAP、ZooKeeper、Cassandra、Postgres サーバー)がどのように構成されているかを把握しておく必要があります。また、すべてのコンポーネントとその構成のバックアップを取る必要もあります。

始める前に

  • Management Server: すべての廃止手順は Management Server に大きく依存します。利用可能な Management Server が 1 つのみの場合は、dc-1 で Management Server を廃止する前に、dc-1 以外のデータセンターに新しい Management Server コンポーネントをインストールし、いずれかの Management Server が常に利用可能であることを確認することをおすすめします。
  • Router: Router を廃止する前に、ポート 15999 をブロックして Router のネットワーク到達性を無効にします。廃止する Router にランタイム トラフィックが送信されていないことを確認します。
  • Cassandra と ZooKeeper: 以下のセクションでは、2 データセンター構成で dc-1 を廃止する方法について説明します。

    3 つ以上のデータセンターがある場合は、廃止するノード(この場合は dc-1)へのすべての参照を、その他のすべてのデータセンターのすべてのサイレント構成ファイルから削除します。 廃止する Cassandra ノードについては、CASS_HOSTS からそれらのホストを削除します。 残りの Cassandra ノードは CASS_HOSTS の元の順序のままにする必要があります。

  • Postgres: Postgres マスターを廃止する場合は、使用可能なスタンバイ ノードのいずれかを新しい postgres マスターに昇格させます。Qpid Server ではバッファがキューに保持されますが、Postgres マスターが長時間使用できない場合、分析データが失われる可能性があります。

前提条件

  • コンポーネントを廃止する前に、すべてのノードの完全なバックアップを行うことをおすすめします。現在の Edge バージョンのバックアップ手順を使用してください。 バックアップの詳細については、バックアップと復元をご覧ください。

  • 廃止を行う前に、次のコマンドを使用して Edge が稼働していることを確認します。
    /opt/apigee/apigee-service/bin/apigee-all status
  • 廃止するデータセンターに現在着信しているランタイム トラフィックがないことを確認します。

コンポーネントの廃止順序

Edge for Private Cloud を複数のノードにインストールする場合は、これらのノードの Edge コンポーネントを次の順序で廃止する必要があります。

  1. Edge UI(edge-ui)
  2. Management Server(edge-management-server)
  3. OpenLDAP(apigee-openldap)
  4. Router(edge-router)
  5. Message Processor(edge-message-processor)
  6. Qpid Server と Qpidd(edge-qpid-server と apigee-qpidd)
  7. Postgres と PostgreSQL データベース(edge-postgres-server と apigee-postgresql)
  8. ZooKeeper(apigee-zookeeper)
  9. Cassandra(apigee-cassandra)

以降のセクションでは、各コンポーネントの廃止方法について説明します。

Edge UI

dc-1 の Edge UI コンポーネントを停止してアンインストールするには、次のコマンドを入力します。

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

管理サーバー

dc-1 で Management Server を廃止する手順は次のとおりです。

  1. dc-1 で Management Server を停止します。
    apigee-service edge-management-server stop
  2. dc-1 に登録されている Management Server の UUID を確認します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. サーバーを削除します。注: このサーバーに他のコンポーネントもインストールされている場合は、UUID を削除する前に、それらをすべて登録解除してください。
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. dc-1 の Management Server コンポーネントをアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

このセクションでは、dc-1 で OpenLDAP を廃止する方法について説明します。

注: 3 つ以上のデータセンターがある場合は、以下の3 つ以上のデータセンターからなる構成をご覧ください。

dc-1 で OpenLDAP を廃止する手順は次のとおりです。

  1. バックアップ方法の手順に沿って、dc-1 OpenLDAP ノードをバックアップします。
  2. データセンター dc-1 と dc-2 の両方で次の手順を実施して、この 2 つのデータセンター間のデータ レプリケーションを停止します。

    1. 現在の状態を確認します。
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      出力例を以下に示します。

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. 次のコマンドを含む break_repl.ldif ファイルを作成します。
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. ldapmodify コマンドを実行します。
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      出力例を以下に示します。

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. dc-2 が dc-1 にレプリケートされていないことを確認するには、dc-2 LDAP にエントリを作成し、dc-1 の LDAP にこのエントリが表示されないことを確認します。

    必要に応じて、次の手順を実施できます。この手順では、dc-2 OpenLDAP ノードに読み取り専用ユーザーを作成してから、このユーザーがレプリケートされているかどうかを確認します。このユーザーはその後削除されます。

    1. dc-2 で readonly-user.ldif ファイルを作成し、次の内容を追加します。
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. dc-2 で「ldapadd」コマンドを使用してユーザーを追加します。
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      出力は次のようになります。

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. dc-1 でユーザーを検索し、ユーザーがレプリケートされていないことを確認します。ユーザーが dc-1 に存在しない場合は、両方の LDAP がレプリケートしていないことがわかります。
      ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      出力例を以下に示します。

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. 前の手順で追加した読み取り専用ユーザーを削除します。
      ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. dc-1 で OpenLDAP を停止します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. dc-1 で OpenLDAP コンポーネントをアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

ルーター

このセクションでは、Router を廃止する方法について説明します。Router の削除について詳しくは、 サーバーの削除をご覧ください。

次の手順では、dc-1 の Router を廃止します。 dc-1 で複数の Router ノードが構成されている場合は、すべての Router ノードで、この手順をノードごとに行います。

注: ここでは、ロードバランサで Router のヘルスチェック ポート 15999 が構成されており、このポート 15999 をブロックすることで Router が到達不可能になることを前提としています。ポートをブロックするために、ルートアクセス権が必要になることがあります。

Router を廃止する手順は次のとおりです。

  1. ポート 15999(ヘルスチェック ポート)をブロックして、Router のネットワーク到達性を無効にします。 このデータセンターでランタイム トラフィックがブロックされていることを確認します。

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. Router が到達可能であることを確認します。

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    出力例を以下に示します。

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. UUID の取得の説明に沿って、Router の UUID を取得します。
  4. Router を停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. 次のコマンドを使用して、組織で使用可能なゲートウェイ Pod を一覧表示します。
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Pod についてをご覧ください。

  6. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. サーバーの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. edge-router をアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    サーバーの削除をご覧ください。
  9. iptables ルールをフラッシュして、ブロックされているポート 15999 を有効にします。
    iptables -F

Message Processor

このセクションでは、dc-1 の Message Processor を廃止する方法について説明します。 Message Processor の削除について詳しくは、 サーバーの削除をご覧ください。

dc-1 は 12 ノードクラスタ構成であると想定しているため、dc-1 では 2 つの Message Processor ノードが構成されています。両方のノードで次のコマンドを実行します。

  1. UUID の取得の説明に沿って、Message Processor の UUID を取得します。
  2. Message Processor を停止します。
    apigee-service edge-message-processor stop
  3. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. 環境と Message Processor との関連付けを解除します。
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. Message Processor をアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. サーバーの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Qpid Server と Qpidd

このセクションでは、Qpid Server(edge-qpid-server)と Qpidd(apigee-qpidd)を廃止する方法を説明します。dc-1 では 2 つの Qpid ノードが構成されているため、両方のノードで次の手順を行う必要があります。

  1. UUID の取得の説明に沿って、Qpidd の UUID を取得します。
  2. edge-qpid-serverapigee-qpidd を停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. 分析グループとコンシューマ グループのリストを取得します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. コンシューマ グループから Qpid を削除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. 分析グループから Qpid を削除します。
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. Edge 環境から Qpid Server の登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. Edge 環境から Qpid Server を削除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. すべてのノードですべての edge-qpid-server コンポーネントを再起動し、この変更をすべてのコンポーネントに反映させます。
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. edge-qpid-server と apigee-qpidd をアンインストールします。
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres と Postgresql

廃止するデータセンターに、Postgres マスターまたは Postgres スタンバイが存在する可能性があります。以降のセクションでは、これらの廃止方法について説明します。

Postgres マスターの廃止

注: Postgres マスターを廃止する場合は、使用可能なスタンバイ ノードのいずれかを新しい postgres マスターに昇格させます。QPID によりバッファデータがキューに保持されますが、Postgres マスターが長時間使用できない場合、分析データが失われる可能性があります。

Postgres マスターを廃止するには:

  1. 次のリンクの手順に沿って、dc-1 Postgres マスターノードをバックアップします。
  2. UUID の取得の説明に沿って、Postgres サーバーの UUID を取得します。
  3. dc-1 で現在のマスターの edge-postgres-serverapigee-postgresql を停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. dc-2 のスタンバイ ノードで、次のコマンドを入力してそのノードをマスターノードにします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    注: Postgres スタンバイ ノードが複数ある場合は、新しいマスターにホストエントリを追加し、使用可能なすべての Postgres スタンバイ ノードのレプリケーション設定を更新する必要があります。

    ホストエントリを新しい Postgres マスターに追加するには、以下の該当するセクションの手順を行ってください。

    残っているスタンバイ ノードが 1 つだけである場合

    たとえば、廃止前に 3 つの Postgres ノードが構成されているとします。 既存のマスターを廃止し、残りの Postgres スタンバイ ノードの 1 つをマスターに昇格したとします。次の手順に沿って、残りのスタンバイ ノードを構成します。

    1. 新しいマスターで、構成ファイルを編集して次のように設定します。
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. 新しいマスターノードでレプリケーションを有効にします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    スタンバイ ノードが複数残っている場合

    1. /opt/apigee/customer/application/postgresql.properties に次の構成を追加します。
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. ファイル /opt/apigee/customer/application/postgresql.properties の所有者が apigee ユーザーであることを確認します。
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. apigee-postgresql を再起動します。
      apigee-service apigee-postgresql restart
    4. スタンバイ ノードのレプリケーション設定を更新するには:

      1. 構成ファイル /opt/silent.conf を変更し、PG_MASTER フィールドを新しい Postgres マスターの IP アドレスに更新します。
      2. 次のコマンドを使用して、古い Postgres データをすべて削除します。
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. スタンバイ ノードでレプリケーションを設定します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. dc-2 で次のコマンドを実行して、Postgres マスターが正しく設定されていることを確認します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. 分析グループとコンシューマ グループから Postgresql サーバーを削除してから追加します。
      1. 分析グループから Postgres サーバーを削除するの手順に沿って、分析グループから古い Postgres サーバーを削除します。
      2. 既存の Postgres サーバーを分析グループに追加するの手順に沿って、分析グループに新しい postgres サーバーを追加します。
    7. dc-1 で、古い Postgres サーバーの登録を解除します。
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. dc-1 で、古い Postgres サーバーを削除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. これで古い Postgres マスターを安全に廃止できます。edge-postgres-serverapigee-postgresql をアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Postgres スタンバイの廃止

    注: 12 ノードクラスタ構成のドキュメントでは、dc-1 postgresql ノードがマスターとして示されていますが、このセクションでは便宜上、dc-1 postgresql ノードがスタンバイ、dc-2 postgresql ノードがマスターであると仮定します。

    Postgres スタンバイを廃止する手順は次のとおりです。

    1. UUID の取得の手順に沿って、Postgres サーバーの UUID を取得します。
    2. dc-1 の現在のスタンバイ ノードで apigee-postgresql を停止します。
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. 分析グループとコンシューマ グループから Postgresql サーバーを削除してから追加します。
      1. 分析グループから Postgres サーバーを削除するの手順に沿って、分析グループから古い Postgres サーバーを削除します。
      2. 既存の Postgres サーバーを分析グループに追加するの手順に沿って、分析グループに新しい postgres サーバーを追加します。
    4. dc-1 で、古い Postgres サーバーの登録を解除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. dc-1 で、古い Postgres サーバーを削除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. これで古い Postgres マスターを安全に廃止できます。edge-postgres-serverapigee-postgresql をアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper と Cassandra

    このセクションでは、2 データセンター構成で ZooKeeper サーバーと Cassandra サーバーを廃止する方法について説明します。

    3 つ以上のデータセンターがある場合は、廃止するノード(この場合は dc-1)へのすべての参照を、その他のすべてのデータセンターのすべてのサイレント構成ファイルから削除します。 廃止する Cassandra ノードについては、CASS_HOSTS からそれらのホストを削除します。 残りの Cassandra ノードは CASS_HOSTS の元の順序のままにする必要があります。

    ZooKeeper に関する注: ZooKeeper アンサンブルを機能させ続けるには、ZK_HOST プロパティの変更中にボーターノードのクォーラムを維持する必要があります。構成内のボーターノードの数は奇数である必要があります。詳細については、Apache ZooKeeper のメンテナンス タスクをご覧ください。

    ZooKeeper サーバーと Cassandra サーバーを廃止するには:

    1. 次のリンクの手順に沿って、dc-1 の Cassandra ノードと ZooKeeper ノードをバックアップします。
    2. Cassandra ノードがデコミッションされるデータセンターの ZooKeeper サーバーと Cassandra サーバーの UUID を一覧表示します。

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. サーバーのタイプの登録を解除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. サーバーの登録を解除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. 構成ファイルを更新して、廃止するノードの IP を ZK_HOSTSCASS_HOSTS から削除します。

      例: dc-1 に IP $IP1 $IP2 $IP3 があり、dc-2 に $IP4 $IP5 $IP6 がある場合に dc-1 を廃止するとします。その後、構成ファイルから IP $IP1 $IP2 $IP3 を削除する必要があります。

      • 既存の構成ファイルのエントリ:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • 新しい構成ファイルのエントリ:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. 削除された廃止ノードの IP でサイレント構成ファイル(ステップ e で変更)を更新し、Management Server をホストしているすべてのノードで Management Server プロファイルを実行します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. 削除された廃止ノードの IP で構成ファイルを更新し、すべての Router ノードと Message Processor ノードで MP/RMP プロファイルを実行します。
      • Edge Router と Message Processor が同じノードで構成されている場合は、次のように入力します。
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Edge Router と Message Processor が別々のノードで構成されている場合は、次のように入力します。

        Router:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        Message Processor:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. レスポンス ファイルから廃止されたノードの IP を削除し、すべての Qpid ノードを再構成します。
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. レスポンス ファイルから廃止されたノードの IP を削除し、すべての Postgres ノードを再構成します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. system_auth キースペースを変更します。既存の Cassandra ノードで Cassandra 認証が有効になっている場合は、次のコマンドを実行して、system_auth キースペースのレプリケーション係数を更新します。
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      このコマンドは、レプリケーション係数を '3' に設定します。これは、クラスタ内の 3 つの Cassandra ノードを示します。必要に応じてこの値を変更します。

      この手順の完了後は、Cassandra トポロジではどのキースペースにも dc-1 がない状態になります。

    11. dc-1 の Cassandra ノードを 1 つずつ廃止します。

      Cassandra ノードを廃止するには、次のコマンドを入力します。

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. 次のいずれかのコマンドを使用して、dc-1 の Cassandra ノードの接続を確認します。
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      廃止されたノードに対して実行するセカンダリ検証コマンド:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      上記のコマンドによって返される結果は次のとおりです。

      Mode: DECOMMISSIONED
    13. dc-2 のすべての Cassandra ノードと ZooKeeper ノードに対して DS プロファイルを実行します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. dc-1 で apigee-cassandraapigee-zookeeper を停止します。
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. dc-1 で apigee-cassandraapigee-zookeeper をアンインストールします。
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    dc-1 からバインディングを削除する

    dc-1 からバインディングを削除する手順は次のとおりです。

    1. dc-1 からバインディングを削除します。
      1. 組織で使用可能なすべての Pod を一覧表示します。
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. すべてのバインディングが削除されたかどうかを確認するには、Pod に関連付けられているサーバーの UUID を取得します。
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        このコマンドが UUID を返さない場合は、前のステップですべてのバインディングが削除されているため、次のステップをスキップできます。それ以外の場合は、次のステップに進みます。

      3. 前のステップで取得した UUID のサーバー バインディングをすべて削除します。
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. 組織と Pod の関連付けを解除します。
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. Pod を削除します。
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. リージョンを削除します。
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    これで、dc-1 の廃止が完了しました。

    付録

    トラブルシューティング

    上記の手順を行っても一部の Pod 内にサーバーが残っている場合は、次の手順に沿ってサーバーの登録を解除して削除します。注: 必要に応じてタイプと Pod を変更します。

    1. 次のコマンドを使用して UUID を取得します。
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. サーバータイプの登録を解除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. サーバーを 1 つずつ削除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    検証

    次のコマンドを使用して、廃止を検証できます。

    管理サーバー

    1. すべてのリージョンで Management Server から次のコマンドを実行します。
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. すべてのコンポーネントで次のコマンドを実行して、すべての管理ポートのポート要件を確認します。
      curl -v http://MS_IP:8080/v1/servers/self
    3. 分析グループを確認します。
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. Cassandra/ZooKeeper ノード

      1. すべての Cassandra ノードで、次のように入力します。
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        その特定のノードのステータスとして running または not running が返されます。

      2. 1 つのノードで次のように入力します。
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        上記のコマンドは、有効なデータセンター情報を返します。

      3. ZooKeeper ノードでは、最初に次のように入力します。
        echo ruok | nc <host> 2181
        

        このコマンドは imok を返します。

        次に、次のように入力します。

        echo stat | nc <host> 2181 | grep Mode
        

        上記のコマンドで返される Mode の値は、observerleaderfollower のいずれかです。

      4. 1 つの ZooKeeper ノードで、次のコマンドを実行します。
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. Postgres マスターノードで次のコマンドを実行します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        レスポンスでノードがマスターであると示されていることを検証します。

      6. スタンバイ ノードで次のコマンドを実行します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        レスポンスでノードがスタンバイであることを確認します。

      7. 次のコマンドを使用して PostgreSQL データベースにログインします。
        psql -h localhost -d apigee -U postgres

        プロンプトが表示されたら、postgres ユーザーのパスワードを入力します(デフォルト: postgres)。

        次に、次のクエリを実行して最大 client_received_start_timestamp を確認します。

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      ログ

      コンポーネントのログを調べて、エラーがないことを確認します。