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

Private Cloud용 Edge v4.18.01

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

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

모든 데이터 센터의 Cassandra 노드 수는 동일해야 합니다. API BaaS 설치는 자체 Cassandra 클러스터를 사용하거나 Edge와 Cassandra 클러스터를 공유할 수 있습니다.

BaaS 설치가 Edge와 Cassandra 클러스터를 공유하는 경우 원래 데이터 센터의 관리 서버를 업데이트하여 새 데이터 센터의 Cassandra 노드를 인식하도록 구성해야 합니다.

기존 데이터 센터 업데이트

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

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

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

구성 파일 만들기

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

다음은 데이터 센터 2의 구성 파일입니다. 이 구성 파일은 설치 토폴로지에 설명된 대로 10개의 노드에 dc-2를 설치한다고 가정합니다. 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를 설치합니다.
      > /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를 설치한 방식에 따라 데이터 센터 2의 Cassandra 노드를 추가합니다.

    # 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의 관리 서버 노드 구성 파일에 dc-2 Cassandra 노드를 추가하고 setup.sh를 실행합니다.
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. 두 데이터 센터의 올바른 복제 인수로 Cassandra 키스페이스를 업데이트합니다. 이 단계는 두 데이터 센터의 Cassandra 서버에서 한 번만 실행하면 됩니다.

    참고: 아래 명령어는 모두 복제 계수를 '3'으로 설정하여 클러스터에 Cassandra 노드가 3개 있음을 나타냅니다. 설치에 필요한 경우 이 값을 수정합니다.
    1. Cassandra cqlsh 유틸리티를 시작합니다.
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 'cqlsh>" 프롬프트에서 다음 CQL 명령어를 실행하여 Cassandra 키스페이스의 복제 수준을 설정합니다.
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh&gt; ALTER KEYSPACE "Apigee_Baas" WITH 복제본 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. cqlsh&gt; ALTER KEYSPACE 'Apigee_Baas_Locks' WITH 복제 = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      4. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      5. cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { '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 스택을 설치합니다.
      > /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 스택 노드를 업데이트합니다.
    1. 데이터 센터 1의 첫 번째 BaaS Stack 노드에서 /opt/apigee/customer/application/usergrid.properties를 편집합니다. 생성하는 방법을 알아보겠습니다 파일이 없으면 새로 만듭니다.
    2. usergrid.properties에 다음 속성을 추가합니다.
      # dc-2 구성 파일의 BAAS_CLUSTER_SEEDS와 동일한 값입니다(따옴표 제외).
      #
      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 서버에서 한 번만 실행하면 됩니다.
    1. Cassandra cqlsh 유틸리티를 시작합니다.
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 다음 CQL 명령어를 실행하여 Cassandra 키스페이스의 복제 수준을 설정합니다.
      1. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. 다음 명령어를 사용하여 키스페이스를 확인합니다.
        cqlsh&gt; 선택 * 위치 system.schema_keyspaces;
      4. cqlsh 종료:
        cqlsh&gt; 종료

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

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

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