API BaaS のインストール

Edge for Private Cloud バージョン 4.17.05

インストールの概要

apigee-setup ユーティリティをノードにインストールした後、そのユーティリティを使用して 1 つ以上の BaaS コンポーネントをノードにインストールします。

apigee-setup ユーティリティの形式は次のとおりです。

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

インストールに関する情報を含む構成ファイルを apigee-setup ユーティリティに渡します。構成ファイルに必要な情報が不足している場合、apigee-setup ユーティリティによって、コマンドラインでその情報の入力を求められます。

唯一の要件は、構成ファイルが「apigee」ユーザーからアクセス可能で、読み取れることです。

たとえば、API BaaS スタックをインストールするには、次のコマンドを使用します。

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

インストールするコンポーネントの指定

Apigee setup.sh ユーティリティは、API BaaS コンポーネントをインストールするためのいくつかのオプションをサポートしています。以下の手順では、スタンドアロンのオプション(c、e、b、p)を使用していますが、ノードの構成に応じて異なるオプションを使用できます。

オプション

Description

e

ElasticSearch のみをインストールします。

b

API BaaS Stack のみをインストールします。これにより、Tomcat もインストールされます。

p

API BaaS ポータルのみをインストールします。これにより、ウェブサーバーとして使用する Nginx ルーターもインストールされます。

c

Cassandra のみをインストールします。

eb

ElasticSearch、API BaaS Stack、Tomcat をノードにインストールする。

ebp

ElasticSearch、API BaaS Portal、API BaaS Stack、Tomcat をインストールしますが、Cassandra はインストールしないでください。このポータルは軽量なので追加のリソースは必要ありません。

ASA

すべての API BaaS コンポーネントを単一のノードにインストールします(Cassandra、Elasticsearch、API BaaS Stack、API BaaS Portal、Tomcat)。このオプションは開発とテストにのみ使用し、本番環境には使用しないでください。

構成ファイルの作成

構成ファイルには、API BaaS のインストールに必要なすべての情報が含まれています。多くの場合、同じ構成ファイルを使用して、BaaS インストールのすべてのコンポーネントをインストールできます。

以下で説明する各インストール トポロジでは、そのトポロジの構成ファイルの例を示しています。構成ファイルの完全なリファレンスについては、BaaS 構成ファイルのリファレンスをご覧ください。

API BaaS を単一ノードにインストールする

以下は、API BaaS を単一のノードにインストールするための構成ファイルです。このファイルを構成に応じて編集してください。構成ファイルの完全なリファレンスについては、BaaS 構成ファイルのリファレンスをご覧ください。

IP1=192.168.56.101   # IP address of single node

# 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

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# 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 Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster. 
# For a single node install, specify the IP address of the node. 
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

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

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.  
BAAS_PORTAL_URL="http://$IP1: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

API BaaS を専用のノードにインストールするには:

  1. インターネットを使用する手順、またはインターネット以外での手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
  2. コマンド プロンプトで、セットアップ スクリプトを実行します。
    > /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile

    「-p asa」オプションは、すべての API BaaS コンポーネントを単一のノード(Cassandra、Elasticsearch、API BaaS Stack、API BaaS Portal、Tomcat)にインストールすることを指定します。
    構成ファイルは、「apigee」ユーザーからアクセス可能で、読み取り可能である必要があります。
  3. ElasticSearch をスタンドアロン ノードにインストールしたため、デフォルトのメモリ オプションを調整して、ElasticSearch に割り当てられるメモリを 4 GB から 6 GB に増やします。
    1. エディタで /opt/apigee/customer/application/elasticsearch.properties を開きます。このファイルが存在しない場合は作成します。
    2. setenv_elasticsearch_max_mem_size プロパティを 6g(デフォルトは 4g)に設定します。
      setenv_elasticsearch_max_mem_size=6g
    3. ファイルを保存します。
    4. 次のコマンドを実行します。
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
  4. 以下の新しい組織のオンボーディングの説明に沿って、組織をオンボーディングします。

この構成により、ノードでの設定が正常に完了します。

API BaaS を 7 ノードまたは 10 ノードにインストールする

API BaaS の 7 ノード バージョンまたは 10 ノード バージョンのインストール手順は、非常によく似ています。唯一の違いは、

  • 10 ノードのインストールでは、3 つの ElasticSearch コンポーネントと 3 つの API BaaS Stack コンポーネントを別々のノードにインストールします(合計 6 ノード)。ElasticSearch は大量のディスク I/O とメモリを必要とするため、これは最高のパフォーマンスを得るために推奨される構成です。
  • 7 ノード構成では、3 つの ElasticSearch コンポーネントと 3 つの API BaaS Stack コンポーネントを同じノード(合計 3 つのノード)にインストールします。

API BaaS の 7 ノード バージョンと 10 ノード バージョンの両方で、Cassandra クラスタに接続する必要があります。Edge がすでにインストールされている場合は、Cassandra クラスタに接続できます。つまり、API BaaS のインストールの一環として Cassandra をインストールする必要はありません。

以下は、10 ノード API BaaS インストール用のサイレント構成ファイルの例です。ElasticSearch と API BaaS Stack コンポーネントを同じ 3 つのノードにインストールする場合は、次のようにファイルを編集します。

  • IP1 と IP4 が同じ IP アドレスに設定されています
  • IP2 と IP5 が同じ IP アドレスに設定されている
  • IP3 と IP6 が同じ IP アドレスに設定されています

このファイルを必要に応じて編集してください。構成ファイルの詳細については、BaaS 構成ファイルのリファレンスをご覧ください。

# Specify IP address or DNS name of node.
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 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# 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

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Specify the Cassandra region.
REGION=dc-1

# 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.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

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

# ElasticSearch IPs or DNS names, separated by spaces.
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

省略可 - Cassandra をインストールする: マシン 8、9、10

API BaaS は、Edge で使用されているのと同じ Cassandra クラスタに接続できます。Edge をまだインストールしていない場合は、必要に応じて Cassandra をインストールして API BaaS で使用できるようにします。

Cassandra クラスタが認証を使用するか、Cassandra 認証を無効にできます。詳細については、Cassandra 認証を有効にするをご覧ください。

  1. インターネットまたはインターネット以外の方法で、Edge apigee-setup ユーティリティをノードにインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
  2. コマンド プロンプトで、セットアップ スクリプトを実行します。
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    「-p c」オプションは、Cassandra をインストールすることを指定します。
    構成ファイルは、「apigee」ユーザーからアクセス可能で、読み取り可能である必要があります。

この構成により、ノード上のデータストアの設定が正常に完了します。

Cassandra では JMX がデフォルトで有効になっていることに注意してください。Cassandra への JMX リモート アクセスにパスワードは必要ありません。JMX の認証を使用するように Cassandra を構成できます。詳細については、モニタリング方法をご覧ください。

Cassandra の cron ジョブを設定する

Cassandra をインストールする必要がある場合は、nodetool を使用してすべての Cassandra ノードで 1 時間ごとにロックが実行されるようにフラッシュする cron ジョブを設定します。

複数の Cassandra ノードがある場合は、すべてのノードが同時にフラッシュしないように、各サーバーの cron ジョブを 5 分オフセットします。

cron ジョブは、次のコマンドを実行する必要があります。

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

ここで、IP_address は Cassandra ノードの IP アドレスです。

ElasticSearch をインストールする: マシン 1、2、3

ElasticSearch を独自のノードにインストールするには:

  1. インターネットを使用する手順、またはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
  2. コマンド プロンプトで、セットアップ スクリプトを実行します。
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    「-p e」オプションは、ElasticSearch のインストールを指定します。
    構成ファイルは、「apigee」ユーザーからアクセス可能で、読み取り可能である必要があります。
  3. (省略可)ElasticSearch をスタンドアロン ノードにインストールする(API BaaS Stack とともにインストールされていない)場合は、デフォルトのメモリ オプションを調整して、ElasticSearch に割り当てられたメモリを 4 GB から 6 GB に増やします。
    1. エディタで /opt/apigee/customer/application/elasticsearch.properties を開きます。このファイルが存在しない場合は作成します。
    2. setenv_elasticsearch_max_mem_size プロパティを 6g(デフォルトは 4g)に設定します。
      setenv_elasticsearch_max_mem_size=6g
    3. ファイルを保存します。
    4. 次のコマンドを実行します。
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

この構成により、ノードでの設定が正常に完了します。

API BaaS スタックをインストールする: マシン 4、5、6

API BaaS スタックを独自のノードにインストールするには:

  1. インターネットを使用する手順、またはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
  2. コマンド プロンプトで、セットアップ スクリプトを実行します。
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    「-p b」オプションは、API BaaS スタックのインストールを指定します。
    構成ファイルは、「apigee」ユーザーからアクセス可能で、読み取り可能である必要があります。

正しい管理者認証情報を取得すると、Tomcat をインストールして API BaaS キースペースを作成し、サーバー上で API BaaS スタックを設定します。UI がパスワード確認メールを送信できるように SMTP も構成されています。

API BaaS ポータルのインストール: マシン 7

API BaaS ポータルをインストールするには:

  1. インターネットを使用する手順、またはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティのインストールをご覧ください。
  2. コマンド プロンプトで、セットアップ スクリプトを実行します。
    > /opt/apigee/apigee-setup/bin/setup.sh -p -f configFile

    「-p p」オプションを指定すると、API BaaS ポータルのインストールが指定されます。
    構成ファイルは、「apigee」ユーザーからアクセス可能で、読み取り可能である必要があります。

    インストーラにより Nginx ウェブサーバーが起動し、API BaaS ポータルの構成が完了します。
  3. 次のステップは、インストール状況によって異なります。
    1. Portal または Stack ノードの前にロードバランサがある場合は、次のセクションで、ロードバランサ用に API BaaS を構成する方法について説明します。
    2. Portal またはスタックノードの前にロードバランサがない場合は、以下の新しい組織のオンボーディングの説明に従って組織をオンボーディングします。

API BaaS ポータルの URL をメモします。この URL をブラウザに入力すると、API BaaS ポータルのユーザー インターフェースにアクセスできます。

Stack または Portal のロードバランサ用に API BaaS ノードを構成する

スタックノードまたはポータルノードの前にロードバランサを配置する場合は、ロードバランサの正しい URL を使用してノードを構成する必要があります。たとえば、次の場合はスタックノードでこの情報が必要になります。

  • BaaS API リクエストのレスポンスに URL を含める。
  • パスワードの再設定や他の通知の送信を行う際に、メール テンプレートにリンクを追加する。
  • 特定のポータル ページにユーザーをリダイレクトする

スタックノードの前にロードバランサを使用する場合は、/opt/apigee/customer/application/usergrid.properties に次のプロパティを設定します。

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

http://localhost:8080 をロードバランサの URL に置き換えます。ロードバランサが TLS を使用するように構成されている場合は、HTTPS プロトコルを使用します。標準以外のポート(HTTP 用のポート 80 と HTTPS 用のポート 443 以外)を使用する場合にのみ、このポートを含める必要があります。

また、スタックノードの前にロードバランサを使用する場合は、/opt/apigee/customer/application/portal.properties に次のプロパティを設定する必要があります。

baas.portal.config.overrideUrl=http://localhost:8080

http://localhost:8080 は、スタックのロードバランサの URL に置き換えます。

ポータルノードの前にロードバランサを使用する場合は、usergrid.properties に次のプロパティを設定します。

usergrid-deployment_portal.url=http://localhost:9000

http://localhost:9000 をロードバランサの URL に置き換えます。ロードバランサが TLS を使用するように構成されている場合は、HTTPS プロトコルを使用します。標準以外のポート(HTTP 用のポート 80 と HTTPS 用のポート 443 以外)を使用する場合にのみ、このポートを含める必要があります。

usergrid.propertiesportal.properties を編集した後:

  1. スタックノードを構成します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid Configure
  2. BaaS スタックを再起動します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    注: BaaS Stack ノードを再起動する場合は、BAAS_CLUSTER_SEEDS にリストされている順序で再起動してください。BAAS_CLUSTER_SEEDS は、最大 2 つのスタックノードを一覧表示します。これら 2 つのノードを順番に再起動すると、残りのノードを任意の順序で再起動できます。

  3. portal.properties を変更した場合は、ポータル ノードを構成します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-portalconfigure
  4. BaaS ポータルを再起動します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

新しい組織のオンボーディング

オンボーディングは、組織および組織管理者を作成するプロセスです。組織と組織管理者を作成したら、API BaaS ポータル UI にログインして、API BaaS REST API にリクエストを送信できます。

組織を作成すると、組織管理者のメールアドレスは次のようになります。

  • システム管理者のメールアドレスとは異なるメールアドレスを指定する必要があります。
  • 他のすべての組織の中で一意である必要があります。つまり、組織管理者に同じメールアドレスを使用して 2 つの組織を作成することはできません。ただし、組織を作成した後に、管理者を追加できます。この管理者を複数の組織に複製できます。

オンボーディングを行うには、create_org_and_user.py Python スクリプトを使用します。コマンドライン引数を指定せずにこのスクリプトを呼び出すと、すべての情報の入力を求められます。

> python create_org_and_user.py

あるいは、任意またはすべてのオプションをコマンドライン引数として渡すことができます。コマンドラインから省略した情報の入力を求められます。

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

組織を作成するには:

  1. /opt/apigee/baas-usergrid/bin ディレクトリに移動します。
  2. create_org_and_user.py Python スクリプトを呼び出します。
    システム管理者のみが実行できるように、BaaS システム管理者のユーザー名とパスワードの入力を求められます。
  3. API BaaS ポータルの URL インストールの最後にメモした URL を使用して、ウェブブラウザで API BaaS ポータルにログインします。ポータルにアクセスするには、API BaaS ポータルの URL を次の形式で入力します。
    http://{portalExternalIP}:9000/

    : IP は、ポータルのマシンの外部 IP アドレス/ホスト名です。ポートが開いていることを確認します。
  4. ポータルのログイン画面が表示されたら、次のいずれかを行います。
    • 組織管理者のユーザー名とパスワードを使用してログインします。
    • システム管理者のユーザー名とパスワードを使用してログインします。

API BaaS REST API へのアクセス

API BaaS REST API にアクセスするには、次の形式の URL を使用します。

https://{loadBalancerIP}:8080/{your-org}/{your-app}

開発環境では、すべての API BaaS コンポーネントを 1 つのノードにインストールできます。つまり、単一の API BaaS スタックを利用できます。また、API BaaS スタックが 1 つあり、ロードバランサがない小規模な環境でもかまいません。このタイプの環境では、API BaaS スタックノードに直接 API 呼び出しを行うことができます。

curl -v "http://portalExternalIP:8080/status"

API BaaS ポータルの使用を開始する方法について詳しくは、Apigee ドキュメント(http://apigee.com/docs/content/build-apps-home)をご覧ください。