데이터 센터 사용 중지

데이터 센터를 폐기해야 하는 경우가 있습니다. 예를 들어 운영체제를 업그레이드하는 경우 새 데이터 센터에 새 운영체제를 설치한 후 이전 데이터 센터를 폐기해야 합니다. 다음 섹션에서는 12노드 클러스터 설치에 데이터 센터가 두 개(dc-1, dc-2) 있는 데이터 센터 폐쇄의 예를 보여줍니다.

  • dc-1은 폐쇄할 데이터 센터입니다.
  • dc-2는 폐기 절차에 사용되는 두 번째 데이터 센터입니다.

운영체제를 업그레이드하는 경우 dc-2는 새 버전의 운영체제 (OS)를 설치한 데이터 센터일 수 있습니다. 하지만 데이터 센터를 폐기하는 데 새 OS를 설치할 필요는 없습니다.

데이터 센터 폐기 전 고려사항

데이터 센터를 폐쇄할 때는 다음 사항을 고려하세요.

  • 폐쇄되는 데이터 센터로 향하는 모든 런타임 및 관리 트래픽을 차단하고 다른 데이터 센터로 리디렉션합니다.
  • 데이터 센터를 폐쇄하면 Apigee 클러스터의 용량이 줄어듭니다. 이를 보완하려면 폐기 후 나머지 데이터 센터의 용량을 늘리거나 데이터 센터를 추가하는 것이 좋습니다.
  • 폐기 프로세스 중에 폐기되는 데이터 센터에 설치된 분석 구성요소에 따라 분석 데이터가 손실될 수 있습니다. 자세한 내용은 Qpid 노드 추가 또는 삭제를 참고하세요.
  • 데이터 센터를 폐쇄하기 전에 모든 데이터 센터에서 모든 구성요소가 구성되는 방식, 특히 SymasLDAP, ZooKeeper, Cassandra, Postgres 서버를 이해해야 합니다. 모든 구성요소와 해당 구성을 백업해야 합니다.

시작하기 전에

  • 관리 서버: 모든 폐기 단계는 관리 서버에 크게 의존합니다. 사용 가능한 관리 서버가 하나만 있는 경우 dc-1의 관리 서버를 폐기하기 전에 dc-1이 아닌 데이터 센터에 새 관리 서버 구성요소를 설치하고 관리 서버 중 하나가 항상 사용 가능한지 확인하는 것이 좋습니다.
  • 라우터: 라우터를 폐기하기 전에 포트 15999를 차단하여 라우터의 도달 가능성을 사용 중지합니다. 폐기되는 라우터로 런타임 트래픽이 전송되지 않는지 확인합니다.
  • Cassandra 및 ZooKeeper: 아래 섹션에서는 데이터 센터가 두 개인 설정에서 dc-1을 폐기하는 방법을 설명합니다.

    데이터 센터가 3개 이상인 경우 폐기되는 노드(이 경우 dc-1)에 대한 모든 참조를 나머지 모든 데이터 센터의 모든 자동 구성 파일에서 삭제해야 합니다. 사용 중단할 Cassandra 노드의 경우 CASS_HOSTS에서 해당 호스트를 삭제합니다. 나머지 Cassandra 노드는 CASS_HOSTS의 원래 순서대로 유지되어야 합니다.

  • Postgres: Postgres 마스터를 폐기하는 경우 사용 가능한 대기 노드 중 하나를 새 Postgres 마스터로 승격해야 합니다. QPID 서버는 대기열에 버퍼를 유지하지만 Postgres 마스터를 장시간 사용할 수 없으면 분석 데이터가 손실될 위험이 있습니다.

기본 요건

  • 구성요소를 폐기하기 전에 모든 노드를 완전히 백업하는 것이 좋습니다. 현재 버전의 Edge에 해당하는 절차를 사용하여 백업을 실행합니다. 백업에 대한 자세한 내용은 백업 및 복원을 참고하세요.

  • 다음 명령어를 사용하여 폐기하기 전에 Edge가 실행 중인지 확인합니다.
    /opt/apigee/apigee-service/bin/apigee-all status
  • 현재 폐기 중인 데이터 센터에 런타임 트래픽이 도착하지 않는지 확인합니다.

구성요소 서비스 종료 순서

여러 노드에 프라이빗 클라우드용 Edge를 설치하는 경우 다음 순서로 해당 노드에서 Edge 구성요소를 폐기해야 합니다.

  1. Edge UI (edge-ui)
  2. 관리 서버 (edge-management-server)
  3. Symas LDAP (apigee-openldap)
  4. 라우터 (에지 라우터)
  5. 메시지 프로세서 (edge-message-processor)
  6. Qpid 서버 및 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에서 관리 서버를 폐기하려면 다음 단계를 따르세요.

  1. dc-1에서 관리 서버를 중지합니다.
    apigee-service edge-management-server stop
  2. dc-1에 등록된 관리 서버의 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에서 관리 서버 구성요소를 제거합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Symas LDAP

이 섹션에서는 dc-1에서 SymasLDAP를 사용 중단하는 방법을 설명합니다.

참고: 데이터 센터가 3개 이상인 경우 아래의 데이터 센터가 3개 이상인 설정을 참고하세요.

dc-1에서 SymasLDAP를 폐기하려면 다음 단계를 따르세요.

  1. 백업 방법의 단계에 따라 dc-1 SymasLDAP 노드를 백업합니다.
  2. 두 데이터 센터(dc-1 및 dc-2) 간의 데이터 복제를 중단하려면 두 데이터 센터에서 다음 단계를 실행하세요.

    1. 현재 상태를 확인합니다.
            /opt/symas/bin/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}mdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. ldapmodify 명령어를 실행합니다.
            /opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      출력은 다음과 유사해야 합니다.

      modifying entry "olcDatabase={2}mdb,cn=config"
      modifying entry "olcDatabase={2}mdb,cn=config"
  3. dc-2 LDAP에 항목을 만들어 dc-1의 LDAP에 표시되지 않는지 확인하여 dc-2가 더 이상 dc-1에 복제되지 않는지 확인할 수 있습니다.

    원하는 경우 아래 단계에 따라 dc-2 SymasLDAP 노드에서 읽기 전용 사용자를 만든 다음 사용자가 복제되었는지 확인할 수 있습니다. 사용자가 삭제됩니다.

    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` 명령어를 사용하여 사용자를 추가합니다.
      /opt/symas/bin/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가 더 이상 복제되지 않는다는 것을 확인할 수 있습니다.
      /opt/symas/bin/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. 이전에 추가한 읽기 전용 사용자를 삭제합니다.
      /opt/symas/bin/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에서 SymasLDAP 중지:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. dc-1에서 SymasLDAP 구성요소를 제거합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

라우터

이 섹션에서는 라우터를 사용 중단하는 방법을 설명합니다. 라우터 삭제에 관한 자세한 내용은 서버 삭제를 참고하세요.

다음 단계에서는 dc-1에서 라우터를 폐기합니다. dc-1에 구성된 라우터 노드가 여러 개 있는 경우 모든 라우터 노드에서 한 번에 단계를 실행합니다.

참고: 여기서는 라우터의 상태 점검 포트 15999가 부하 분산기에 구성되어 있고 포트 15999를 차단하면 라우터에 연결할 수 없다고 가정합니다. 포트를 차단하려면 루트 액세스 권한이 필요할 수 있습니다.

라우터를 폐기하려면 다음 단계를 따르세요.

  1. 상태 점검 포트인 포트 15999를 차단하여 라우터의 연결 가능성을 사용 중지합니다. 이 데이터 센터에서 런타임 트래픽이 차단되었는지 확인합니다.

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. 라우터에 연결할 수 있는지 확인합니다.

    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 가져오기에 설명된 대로 라우터의 UUID를 가져옵니다.
  4. 라우터를 중지합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. 다음 명령어를 사용하여 조직에서 사용 가능한 게이트웨이 포드를 나열합니다.
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    포드 정보를 참고하세요.

  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. 차단된 포트 15999를 사용 설정하려면 iptables 규칙을 플러시합니다.
    iptables -F

메시지 프로세서

이 섹션에서는 dc-1에서 메시지 프로세서를 폐기하는 방법을 설명합니다. 메시지 프로세서를 삭제하는 방법에 관한 자세한 내용은 서버 삭제를 참고하세요.

dc-1에 12노드 클러스터 설치가 있다고 가정하므로 dc-1에 구성된 메시지 프로세서 노드가 두 개 있습니다. 두 노드에서 다음 명령어를 실행합니다.

  1. UUID 가져오기에 설명된 대로 메시지 프로세서의 UUID를 가져옵니다.
  2. 메시지 프로세서를 중지합니다.
    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. 메시지 프로세서에서 환경을 연결 해제합니다.
    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. 메시지 프로세서를 제거합니다.
    /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 서버 및 Qpidd

이 섹션에서는 Qpid 서버 (edge-qpid-server)와 Qpidd(apigee-qpidd)를 폐기하는 방법을 설명합니다. dc-1에 구성된 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 서버를 등록 해제합니다.
    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 서버를 삭제합니다.
    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 마스터에 호스트 항목을 추가하려면 아래의 적절한 섹션에 있는 단계를 따르세요.

    대기 노드가 하나만 남은 경우

    예를 들어 서비스 해제 전에 구성된 Postgres 노드가 3개 있었다고 가정해 보겠습니다. 기존 마스터를 폐기하고 남아 있는 postgres 대기 노드 중 하나를 마스터로 승격했습니다. 다음 단계에 따라 나머지 대기 노드를 구성합니다.

    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를 수정하고 새 Postgres 마스터의 IP 주소로 PG_MASTER 필드를 업데이트합니다.
      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. ZK_HOSTSCASS_HOSTS에서 사용 중지된 노드의 IP가 삭제된 구성 파일을 업데이트합니다.

      예: dc-1에 $IP1 $IP2 $IP3 IP가 있고 dc-2에 $IP4 $IP5 $IP6 IP가 있으며 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단계에서 수정됨)을 업데이트하고 관리 서버를 호스팅하는 모든 노드에서 관리 서버 프로필을 실행합니다.
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. 삭제된 서비스 해제 노드의 IP로 구성 파일을 업데이트하고 모든 라우터 및 메시지 프로세서 노드에서 MP/RMP 프로필을 실행합니다.
      • Edge 라우터와 메시지 프로세서가 동일한 노드에 구성된 경우 다음을 입력합니다.
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Edge 라우터와 메시지 프로세서가 별도의 노드에 구성된 경우 다음을 입력합니다.

        라우터의 경우:

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

        메시지 프로세서의 경우:

        /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'로 설정하여 클러스터에 Cassandra 노드가 3개 있음을 나타냅니다. 필요에 따라 이 값을 수정합니다.

      이 단계를 완료한 후에는 Cassandra 토폴로지에 키스페이스에 dc-1이 없어야 합니다.

    11. dc-1에서 Cassandra 노드를 하나씩 사용 중단합니다.

      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. 조직에서 사용 가능한 모든 포드를 나열합니다.
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. 모든 바인딩이 삭제되었는지 확인하려면 포드와 연결된 서버의 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. 포드에서 조직 연결 해제:
        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. 포드를 삭제합니다.
      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의 서비스 해제가 완료되었습니다.

    부록

    문제 해결

    이전 단계를 수행한 후에도 일부 포드에 서버가 남아 있는 경우 다음 단계에 따라 서버를 등록 해제하고 삭제하세요. 참고: 필요에 따라 유형과 포드를 변경하세요.

    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. 서버를 하나씩 삭제합니다.
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    유효성 검사

    다음 명령어를 사용하여 폐기를 검증할 수 있습니다.

    관리 서버

    1. 모든 지역의 관리 서버에서 다음 명령어를 실행합니다.
      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. 한 노드에서 다음을 입력합니다.
        /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 값은 observer, leader, follower 중 하나입니다.

      4. 한 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;

      로그

      구성요소의 로그를 확인하여 오류가 없는지 확인합니다.