API BaaS のインストール

Edge for Private Cloud v4.18.01

インストールの概要

ノードに Edge の 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 Stack をインストールします。

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

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

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

オプション

説明

e

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

b

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

p

API BaaS Portal のみをインストールします。これにより、ウェブサーバーとして使用される 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
SMTPMAILFROM="My Company <myco@company.com>"

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. 新しい組織のオンボーディングの説明に従って、組織をオンボーディングします。

構成により、ノードのセットアップが正常に完了します。

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

7 ノードまたは 10 ノード バージョンの API BaaS をインストールする手順は、ほぼ同じです。唯一の違いは、次の点です。

  • 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
SMTPMAILFROM="My Company <myco@company.com>"

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

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

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 を使用してロックをフラッシュする cron ジョブを設定し、すべての Cassandra ノードで 1 時間ごとに実行します。

複数の 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 Stack をインストールする: マシン 4、5、6

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

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

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

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

API BaaS Portal をインストールする: マシン 7

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

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

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

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

API BaaS Portal の URL をメモします。これは、API BaaS Portal ユーザー インターフェースにアクセスするためにブラウザに入力する URL です。

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

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

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

Stack ノードの前にロードバランサを使用する場合は、/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 以外)を使用している場合のみです。

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

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

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

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

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

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

usergrid.properties と portal.properties を編集した後:

  1. Stack ノードを構成します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. BaaS Stack を再起動します。
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

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

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

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

オンボーディングとは、組織と組織管理者を作成するプロセスです。組織と組織管理者を作成したら、API BaaS Portal 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 Portal URL のインストールが完了したときにメモした URL を使用して、ウェブブラウザで API BaaS Portal にログインします。ポータルにアクセスするには、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 コンポーネントを単一のノードにインストールできます。つまり、単一の API BaaS Stack が存在します。また、1 つの API BaaS Stack ノードがあり、ロードバランサがない小規模な環境の場合もあります。このような環境では、API BaaS Stack ノードに直接 API 呼び出しを行うことができます。

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

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