API BaaS のインストール

Edge for Private Cloud v. 4.17.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 スタックをインストールするには、次のコマンドを使用します。

> 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 ポータルのみをインストールします。これにより、ウェブサーバーとして使用される 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)を 1 つのノードにインストールします。このオプションは、本番環境ではなく開発やテストで使用します。

構成ファイルの作成

構成ファイルには、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 スタック、API BaaS ポータル、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

省略可 - 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 を使用してロックをフラッシュし、すべての 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 スタックにインストールしていない場合)、デフォルトのメモリ オプションを調整して、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 Stack を独自のノードにインストールするには:

  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 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 ポータルのインストールを指定します。
    構成ファイルは、「apigee」ユーザーがアクセス可能または読み取り可能である必要があります。

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

API BaaS ポータルの 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 スタックを再起動します。
    > /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 ポータルの 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 Stack を使用できます。または、1 つの API BaaS スタックノードがあり、ロードバランサがない小規模な環境もあります。このような環境では、API BaaS Stack ノードに対して直接 API 呼び出しを行うことができます。

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

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