API BaaS용 여러 데이터 센터 설치

Private Cloud용 Edge v4.18.01

활성/활성 사용자 인증 정보를 사용하여 여러 데이터 센터에 API BaaS를 구성할 수 있습니다 이 문서에서는 기존 BaaS 데이터에 BaaS 데이터 센터를 추가하는 방법을 설명합니다. 센터를 방문하세요.

데이터 센터를 추가할 때 Cassandra 클러스터가 Edge와 공유됨

모든 데이터 센터에 동일한 수의 Cassandra 노드가 있어야 합니다. API BaaS 설치는 Cassandra 클러스터를 Edge와 공유할 수 있습니다.

BaaS 설치가 Edge와 Cassandra 클러스터를 공유하는 경우 Management Server를 설정하여 새로운 데이터 센터를 구축했습니다.

기존 데이터 센터 업데이트

새 BaaS 데이터 센터 (데이터 센터 2)를 추가하려면 설치 및 새 데이터 센터를 구성하지만 원래 BaaS 데이터 센터를 업데이트해야 함 (데이터 센터 1) 이러한 수정이 필요한 이유는 다음과 같습니다.

  • 새 데이터 센터에 새 Cassandra 노드를 추가하는데 이 노드는 관리할 수 있습니다
  • 데이터의 BaaS 스택 노드에서 사용하는 복제 정보를 구성해야 함 데이터 센터 2의 정보를 포함시킵니다. 해당 구성을 수행할 수 없습니다. 데이터 센터 2가 설치되어 있습니다

데이터 센터 1에서 이러한 업데이트를 수행하려면 데이터 센터 1을 설치한 후 데이터의 Cassandra 노드에서 apigee-setup을 다시 실행하세요. 중앙 1. 데이터 센터 1의 Cassandra 클러스터를 Edge 설치와 공유하는 경우 관리 서버도 업데이트해야 합니다.

구성 파일 만들기

데이터 센터 1을 설치하려면 API BaaS 설치에 표시된 구성을 사용합니다. 구성 파일 데이터 센터를 설치할 때 데이터 센터 2에 대한 어떠한 정보도 포함할 필요가 없음 1.데이터 센터를 설치한 후 구성 파일에 정보를 추가합니다 2.

다음은 데이터 센터 2의 구성 파일입니다. 이 구성 파일은 설치 토폴로지에 설명된 대로 dc-2를 10개 노드에 설치하고 있습니다. 이 파일을 7개 노드에 설치됩니다

데이터 센터 2 (dc-2)의 구성 파일에는 데이터 센터 1에 대한 정보가 포함되어 있습니다. (dc-1):

# Specify IP address or DNS name of node for dc-2.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra dc-2 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra dc-2 (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra dc-2 (shared with Edge or standalone)

# Specify node information for dc-1
IP11=192.168.1.11   # Cassandra dc-1 (shared with Edge or standalone)
IP12=192.168.1.12   # Cassandra dc-1 (shared with Edge or standalone)
IP13=192.168.1.13   # Cassandra dc-1 (shared with Edge or standalone)
IP14=192.168.1.14   # API BaaS Stack
IP15=192.168.1.15   # API BaaS Stack

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWord

# Specify Cassandra data center and rack suffix.
# List dc-2 nodes first, then dc-1.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1"

# Specify the Cassandra region.
REGION=dc-2

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name as dc-2.
BAAS_CASS_LOCALDC=dc-2    

# Specify both data centers.
BAAS_CASS_DC_LIST=dc-1,dc-2

# Replication is in the form "dataCenterName:#CassandraNodes". 
# Specify both data centers.
BAAS_CASS_REPLICATION=dc-1:3,dc-2:3

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes per data center.
# Specify both data centers. 
BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5"

# ElasticSearch IPs or DNS names, separated by spaces, for dc-2.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

BaaS 데이터 센터 추가

  1. API BaaS 설치에 설명된 대로 첫 번째 데이터 센터를 설치합니다. 해당 문서 데이터 센터를 설치하는 데 사용하는 구성 파일이 포함됩니다 1.
  2. 위에서 설명한 대로 dc-2의 구성 파일을 만듭니다.
  3. 기존 Edge 설치의 일부로 또는 독립형으로 Cassandra를 설치합니다. kube-APIserver로 전송합니다 <ph type="x-smartling-placeholder">
      </ph>
    1. 먼저 Edge apigee-setup 유틸리티를 설치합니다. 인터넷 또는 비인터넷 절차를 사용하는 dc-2, 머신 8의 Cassandra 노드 자세한 내용은 Edge Apigee-setup 설치 유틸리티를 참고하세요.
    2. 명령어 프롬프트에서 설정 스크립트를 실행하여 첫 번째 노드에 Cassandra를 설치합니다.
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

      '-p c' 옵션은 Cassandra를 설치하도록 지정합니다.

      구성 파일은 'Apigee'에서 액세스하거나 읽을 수 있어야 합니다. 있습니다.
    3. 다음에서 나머지 Cassandra 노드, 머신 9 및 10에 대해 3단계와 4단계를 반복합니다. dc-2입니다.
  4. dc-1의 Cassandra 노드에서 Cassandra 노드를 추가하도록 구성 파일을 수정합니다. Cassandra를 설치한 방식에 따른 데이터 센터 2:

    # 먼저 dc-1 노드를 나열한 다음 dc-2를 나열하세요.
    # Cassandra 데이터 센터 및 랙 접미사 포함
    CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1"
  5. dc-1의 첫 번째 Cassandra 노드에서 dc-2의 Cassandra 노드 포함:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
  6. dc-1에 있는 나머지 Cassandra 노드에 대해 6단계와 7단계를 반복합니다.
  7. Edge와 공유된 dc-1에 대해 Cassandra 클러스터에 연결하는 경우 dc-1의 Management Server 노드에 대한 구성 파일에 dc-2 Cassandra 노드를 추가하고 setup.sh:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. 2개의 데이터 센터에 대해 올바른 복제 계수로 Cassandra 키스페이스를 업데이트합니다. 나 두 데이터 센터 중 하나의 Cassandra 서버에서 이 단계를 한 번만 실행하면 됩니다.

    참고: 아래의 모든 명령어는 복제 계수를 '3'으로 설정하며 이는 3개의 Cassandra 노드가 있어야 합니다 설치에 맞게 이 값을 수정합니다.
    1. Cassandra cqlsh 유틸리티를 시작합니다.
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 'cqlsh>'에서 다음 CQL 명령어를 실행합니다. 복제를 설정하라는 프롬프트가 Cassandra 키스페이스 레벨을 제공합니다. <ph type="x-smartling-placeholder">
        </ph>
      1. cqlsh&gt; 대체 KEYSPACE "Apigee_Baas_dc_1" WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh&gt; 대체 KEYSPACE "Apigee_Baas" WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh&gt; 대체 KEYSPACE 'Apigee_Baas_Locks' WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh&gt; 대체 키스페이스 'system_traces' WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh&gt; 대체 KEYSPACE 'system_auth' WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      6. 다음 명령어를 사용하여 키스페이스를 확인합니다.
        cqlsh&gt; 다음에서 * 선택 system.schema_keyspaces;
      7. cqlsh 종료:
        cqlsh&gt; 나가기
  9. dc-2의 모든 Cassandra 노드에서 rebuild 명령어를 실행하여 dc-1:
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP 재빌드 dc-1
  10. 'nodetool status' 실행 모든 Cassandra 노드에 대한 보고가 수행되고 모든 Cassandra 노드에 '소유' 값의 '100%':
    &gt; /opt/apigee/apigee-cassandra/bin/nodetool 상태
  11. dc-2에 BaaS를 설치합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. dc-2의 Cassandra 노드만 나열하도록 구성 파일을 수정합니다.
      # dc-2 Cassandra 노드 나열,
      # Cassandra 데이터 센터 및 랙 접미사 생략
      CASS_HOSTS="$IP8 $IP9 $IP10"
    2. dc-2의 노드 4, 5, 6에 ElasticSearch를 설치합니다.
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
    3. dc-2의 노드 4, 5, 6에 BaaS 스택을 설치합니다.:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. 머신 7에 BaaS 포털을 설치합니다.
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. 데이터 센터 1에서 BaaS 스택 노드를 업데이트합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 데이터 센터 1의 첫 번째 BaaS Stack 노드에서 /opt/apigee/customer/application/usergrid.properties를 편집합니다. 생성하는 방법을 알아보겠습니다 파일이 없으면 새로 만듭니다.
    2. 다음 속성을 usergrid.properties에 추가합니다.
      # BAAS_CLUSTER_SEEDS와 동일한 값 dc-2 구성 파일
      #. 큰따옴표 없이 입력하세요.
      usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2

      # dc-2 구성 파일의 BAAS_CASS_DC_LIST와 동일한 값입니다.
      usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2
    3. 나머지 BaaS 스택 노드에서 a와 b단계를 반복합니다.
    4. 모든 BaaS 스택 노드를 다시 시작합니다.

      참고: BaaS 스택 노드를 다시 시작할 때는 동일한 노드에서 다시 시작하세요. BAAS_CLUSTER_SEEDS에 나열된 순서대로 정렬되어야 합니다. BAAS_CLUSTER_SEEDS 목록: 스택 노드 최대 2개입니다 두 노드를 순서대로 다시 시작한 후 자동으로 읽을 수 있습니다

      &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid 다시 시작
  13. BaaS 키스페이스 값을 업데이트합니다. 이러한 키스페이스는 설치 시 복제를 위해 설정되어야 합니다. 런타임이 아니어도 됩니다 복제를 삭제하면 Cassandra 메모리도 절약됩니다.

    이 단계는 두 데이터 센터 중 하나의 Cassandra 서버에서 한 번만 실행하면 됩니다. <ph type="x-smartling-placeholder">
      </ph>
    1. Cassandra cqlsh 유틸리티를 시작합니다.
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 다음 CQL 명령어를 실행하여 Cassandra의 복제 수준 설정 사용할 수 있습니다. <ph type="x-smartling-placeholder">
        </ph>
      1. cqlsh&gt; 대체 키스페이스 &quot;Apigee_Baas_dc_1&quot; WITH 복제 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh&gt; 대체 키스페이스 &quot;Apigee_Baas_dc_2&quot; WITH 복제 = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. 다음 명령어를 사용하여 키스페이스를 확인합니다.
        cqlsh&gt; 선택 * 위치 system.schema_keyspaces;
      4. cqlsh 종료:
        cqlsh&gt; 종료

이제 두 번째 데이터 센터 설치가 완료되었습니다.

두 데이터 센터의 설치와 구성을 완료한 후에는 다음 작업을 수행할 수 있습니다. 다음 절차에 따라 설치의 유효성을 검사합니다.

  1. 모든 BaaS 스택 노드에서 상태를 확인합니다.
    &gt; curl 0:8080/status
  2. 토큰 API 호출이 작동하는지 확인합니다.
    &gt; curl -X POST &quot;http://localhost:8080/management/token&quot; -d &#39;{&quot;grant_type&quot;:&quot;password&quot;, "username":"adminEmail","password":"pWord"}'
  3. dc-2용 BaaS 포털에 로그인해 보세요. 모든 데이터가 dc-2에 복제되고 컬렉션 등이 있습니다