複数のデータセンターのインストールによる API BaaS

Edge for Private Cloud v4.18.01

複数のデータセンターにまたがって API BaaS をインストールするには、アクティブ/アクティブ できます。このドキュメントでは、既存の BaaS データに BaaS データセンターを追加する方法について説明します。 選択します。

データセンターの追加は Cassandra クラスタは Edge と共有されます。

すべてのデータセンターに同じ数の Cassandra ノードが必要です。API BaaS のインストールでは、 独自の Cassandra クラスタを使用することも、Cassandra クラスタを Edge と共有することもできます。

BaaS インストールで Cassandra クラスタを Edge と共有する場合は、 Management Server を起動して、元のデータセンター内の Cassandra ノードを認識するように構成します。 構築します。

既存のデータセンターを更新する

新しい BaaS データセンター(データセンター 2)を追加するには、 ただし、元の BaaS データセンターを更新する必要もあります。 (データセンター 1)これらの変更が必要な理由は次のとおりです。

  • 新しいデータセンターに新しい Cassandra ノードを追加し、これらのノードに 接続します。
  • データ内の BaaS スタックノードで使用されるレプリケーション情報を構成する必要がある データセンター 2 からの情報を含める。この構成は、 データセンター 2 が設置されました。

データセンター 1 でこの更新を実行するには、 データセンター 1 をインストールしてから、データの Cassandra ノードで apigee-setup を再実行します あります。データセンター 1 の Cassandra クラスタが Edge インストールと共有されている場合、 Management Server も更新する必要があります。

構成ファイルの作成

データセンター 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 をインストールする クラスタ: <ph type="x-smartling-placeholder">
      </ph>
    1. 最初に Edge apigee-setup ユーティリティを dc-2 の Cassandra ノード、マシン 8(インターネットまたはインターネット以外の手順を使用)。詳しくは、 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 ノードを データセンター 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-1 構成ファイルを使用して setup.sh を実行します。 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-2 Cassandra ノードを dc-1 の Management Server ノードの構成ファイルに追加し、次のコマンドを実行します。 setup.sh:
    &gt; /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile
  8. 2 つのデータセンターの正しいレプリケーション係数を使用して Cassandra キースペースを更新します。マイページ この手順は、いずれかのデータセンターの Cassandra サーバーで 1 回だけ実行する必要があります。

    : 以下のコマンドはすべて、レプリケーション係数を「3」に設定します。 3 つの Cassandra ノードが必要です。実際のインストールに応じて、この値を変更します。
    1. Cassandra cqlsh ユーティリティを起動します。
      &gt; /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 「cqlsh>」で次の CQL コマンドを実行します。レプリケーションを設定 次のとおりです。 <ph type="x-smartling-placeholder">
        </ph>
      1. cqlsh&gt;変更 KEYSPACE「Apigee_Baas_dc_1」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
      2. cqlsh&gt;変更 KEYSPACE「Apigee_Baas」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
      3. cqlsh&gt;変更 KEYSPACE「Apigee_Baas_Locks」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
      4. cqlsh&gt;キースペースの変更 system_tracesWITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
      5. cqlsh&gt;変更 KEYSPACE「system_auth」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
      6. 次のコマンドを使用して、キースペースを表示します。
        cqlsh&gt;select * from 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 ノードが [Owns] 値が「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 データセンターと rack の接尾辞を省略
      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 Stack をインストールします。:
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
    4. マシン 7 に BaaS Portal をインストールします。
      &gt; /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
  12. データセンター 1 の BaaS Stack ノードを更新します。 <ph type="x-smartling-placeholder">
      </ph>
    1. データセンター 1 の最初の BaaS スタックノードで、/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 Stack ノードで、手順 a と b を繰り返します。
    4. すべての BaaS Stack ノードを再起動します。

      : BaaS Stack ノードを再起動する場合は、同じ手順で再起動してください。 BAAS_CLUSTER_SEEDS にリストされる順序を指定します。 BAAS_CLUSTER_SEEDS のリスト: ほとんど 2 つのスタックノードで構成されます。この 2 つのノードを順番に再起動した後で、 任意の順序で配置できます。

      &gt; /opt/apigee/apigee-service/bin/apigee-service baas-usergrid の再起動
  13. BaaS キースペースの値を更新します。これらのキースペースはインストール時にレプリケーション用に設定する必要があります。 実行時に行う必要はありませんレプリケーションを削除すると、Cassandra のメモリも節約されます。

    この手順は、いずれかのデータセンターの Cassandra サーバーで 1 回だけ実行する必要があります。 <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 replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
      2. cqlsh&gt;キースペースの変更 &quot;Apigee_Baas_dc_2&quot;WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
      3. 次のコマンドを使用して、キースペースを表示します。
        cqlsh&gt;選択 * system.schema_keyspaces;
      4. cqlsh を終了します。
        cqlsh&gt;終了

2 つ目のデータセンターの設置が完了しました。

2 つのデータセンターのインストールと構成が完了したら、次のことができます。 次の手順でインストールを検証します。

  1. すべての BaaS Stack ノードでステータスを確認します。
    &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 に複製されていることを確認し、 たとえば dc-1 に作成されたコレクションなどです