Edge for Private Cloud v4.18.01
API BaaS は、アクティブ / アクティブ構成を使用して複数のデータセンターにインストールできます。このドキュメントでは、既存の BaaS データセンターに BaaS データセンターを追加する方法について説明します。
データセンターの追加は Cassandra クラスタは Edge と共有されます。
すべてのデータセンターで Cassandra ノードの数が同じである必要があります。API BaaS のインストールでは、独自の Cassandra クラスタを使用することも、Edge と Cassandra クラスタを共有することもできます。
BaaS インストールが Edge と Cassandra クラスタを共有している場合は、元のデータセンターの 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 の構成ファイルは次のとおりです。この構成ファイルは、インストール トポロジで説明されているように、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 データセンターを追加する
- API BaaS のインストールの説明に従って、最初のデータセンターをインストールします。このドキュメントには、データセンター 1 のインストールに使用する構成ファイルが含まれています。
- 上記の手順に沿って dc-2 の構成ファイルを作成します。
- Cassandra を既存の Edge インストールの一部として、または BaaS のスタンドアロン クラスタとしてインストールします。
- 最初に Edge apigee-setup ユーティリティを dc-2 の Cassandra ノード、マシン 8(インターネットまたはインターネット以外の手順を使用)。詳しくは、 Edge apigee-setup をインストールする ユーティリティをご覧ください。
- コマンド プロンプトで設定スクリプトを実行して、最初のノードに Cassandra をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
「-p c」オプションは、Cassandra をインストールすることを指定します。
構成ファイルは「apigee」ユーザーがアクセス可能または読み取り可能である必要があります。 - dc-2 の残りの Cassandra ノード(マシン 9 と 10)に対して手順 3 と 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" - dc-1 の最初の Cassandra ノードで、dc-2 の Cassandra ノードが含まれている新しい dc-1 構成ファイルを使用して setup.sh を実行します。
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile - dc-1 の残りの Cassandra ノードに、ステップ 6 と 7 を繰り返します。
- Edge と共有する dc-1 の Cassandra クラスタに接続する場合、
dc-2 Cassandra ノードを dc-1 の Management Server ノードの構成ファイルに追加し、次のコマンドを実行します。
setup.sh:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - 2 つのデータセンターの正しいレプリケーション係数を使用して Cassandra キースペースを更新します。このステップは、どちらかのデータセンターの任意の Cassandra サーバーで一度だけ行います。
注: 以下のコマンドはすべて、レプリケーション係数を 3 に設定します。これはクラスタ内に 3 つの Cassandra ノードがあることを示します。この値は実際の構成に合わせて変更してください。- Cassandra cqlsh ユーティリティを起動します。
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - 「cqlsh>」で次の CQL コマンドを実行します。レプリケーションを設定
次のとおりです。
<ph type="x-smartling-placeholder">
- </ph>
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh>ALTER KEYSPACE「Apigee_Baas_Locks」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh>ALTER KEYSPACE「system_auth」WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3'};
- 次のコマンドを使用してキースペースを表示します。
cqlsh> select * from system.schema_keyspaces; - cqlsh を終了します。
cqlsh> exit
- Cassandra cqlsh ユーティリティを起動します。
- dc-2 のすべての Cassandra ノードで、dc-1 のリージョン名を指定して rebuild コマンドを実行します。
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1 - nodetool status を実行します。すべての Cassandra ノードにすべての Cassandra ノードが
[Owns] 値が「100%」の場合:
> /opt/apigee/apigee-cassandra/bin/nodetool のステータス - dc-2 に BaaS をインストールします。
<ph type="x-smartling-placeholder">
- </ph>
- 構成ファイルを編集して、dc-2 の Cassandra ノードのみを一覧表示します。
# dc-2 Cassandra ノードを一覧表示します。
# Cassandra データセンターとラックのサフィックスを省略
CASS_HOSTS="$IP8 $IP9 $IP10" - dc-2 のノード 4、5、6 に ElasticSearch をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile - dc-2 のノード 4、5、6 に BaaS スタックをインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile - マシン 7 に BaaS Portal をインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
- 構成ファイルを編集して、dc-2 の Cassandra ノードのみを一覧表示します。
- データセンター 1 の BaaS Stack ノードを更新します。
- データセンター 1 の最初の BaaS Stack ノードで、エディタで /opt/apigee/customer/application/usergrid.properties を編集します。ファイルが存在しない場合は作成します。
- 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 - 残りの BaaS Stack ノードで手順 a と b を繰り返します。
- すべての BaaS Stack ノードを再起動します。
注: BaaS Stack ノードを再起動する場合は、BAAS_CLUSTER_SEEDS にリストされている順序で再起動します。BAAS_CLUSTER_SEEDS のリスト: ほとんど 2 つのスタックノードで構成されます。この 2 つのノードを順番に再起動した後で、 任意の順序で配置できます。
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
- BaaS キースペースの値を更新します。これらのキースペースはインストール時にレプリケーション用に設定する必要があります。
実行時に行う必要はありませんレプリケーションを削除すると、Cassandra メモリも節約できます。
この手順は、いずれかのデータセンターの Cassandra サーバーで 1 回だけ実行する必要があります。 <ph type="x-smartling-placeholder">- </ph>
- Cassandra cqlsh ユーティリティを起動します。
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - 次の CQL コマンドを実行して、Cassandra キースペースのレプリケーション レベルを設定します。
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
- 次のコマンドを使用してキースペースを表示します。
cqlsh> select * from system.schema_keyspaces; - cqlsh を終了します。
cqlsh> exit
- Cassandra cqlsh ユーティリティを起動します。
これで、2 番目のデータセンターの設置は完了です。
2 つのデータセンターのインストールと構成が完了したら、次の手順でインストールを検証できます。
- すべての BaaS Stack ノードでステータスを確認します。
>curl 0:8080/status - トークン API 呼び出しが機能していることを確認します。
>curl -X POST "http://localhost:8080/management/token"-d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}' - dc-2 の BaaS ポータルにログインしてみてください。dc-1 で作成されたコレクションなど、すべてのデータが dc-2 に複製されていることを確認します。