API BaaS のインストール

Edge for Private Cloud バージョン 4.16.09

ロードバランサの使用

API BaaS の本番環境インストールでは、API BaaS ポータルノードと API BaaS スタックノードの間でロードバランサを使用します。ポータルを構成するときに、スタックノードではなく、ロードバランサの IP アドレスまたは DNS 名を指定します。

ロードバランサの代わりに、ラウンドロビン DNS を使用することもできます。このシナリオでは、BaaS スタック IP アドレスに対応する複数の A レコードを持つ DNS エントリを作成します。DNS ルックアップ中に、DNS サーバーはラウンドロビン方式で A レコード値を自動的に返します。

Cassandra への接続

BaaS のインストール時に、BaaS と Edge を同じ Cassandra クラスタに接続するか、BaaS 用に別の Cassandra クラスタを作成するかを選択できます。BaaS が小さい環境(トラフィック量が少ない環境)では、多くの場合、Cassandra クラスタを Edge と共有します。

高いスループットと可用性を実現する場合、または Cassandra クラスタを異なるネットワーク ゾーンに分割する場合は、別々の Cassandra クラスタを使用することをおすすめします。BaaS でトラフィック負荷が高い場合は、個別のクラスタを使用してパフォーマンスを最大化します。

日付の同期

すべてのサーバーの日時が同期されている必要があります。まだ構成していない場合は、ntpdate ユーティリティがこの目的に役立ち、サーバーの時刻が同期されているかどうかを検証します。「yum install ntp」を使用してこのユーティリティをインストールできます。

Tomcat のセキュリティ

API BaaS インストーラは、Tomcat 管理者 UI を含むすべての API BaaS Stack ノードに Apache Tomcat サーバーをインストールします。インストーラにより、デフォルトの管理者認証情報は admin:admin から変更されません。

Tomcat の保護の一環として、これらの認証情報を必要に応じて変更できます。詳細については、次をご覧ください。

インストールの概要

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 をインストールします。このポータルは軽量なので追加のリソースは必要ありません。

ASA

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

サイレント構成ファイルの作成

以下は、10 ノード API BaaS インストール用のサイレント構成ファイルの例です。このファイルを構成に応じて編集してください。このファイルをインクルードするには、setup.sh の -f オプションを使用します。

# 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=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# 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"

# 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.

# 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

# 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

次の表に、これらのプロパティに関する追加情報を示します。

プロパティ

CASS_HOSTS

Cassandra をインストールする場合は、(DNS 名ではなく)Cassandra ノードの IP を指定し、Cassandra ノードのデータセンターとラックを指定する「:dc,ra」修飾子を追加します。

たとえば、192.168.124.201:1,1 はデータセンター 1 とラック/アベイラビリティ ゾーン 1、'192.168.124.204:2,1 はデータセンター 2 とラック/アベイラビリティ ゾーン 1 です。

CASS_USERNAME
CASS_PASSWORD

Cassandra のユーザー名とパスワード。

Cassandra 認証が無効になっている場合でも、これらの値を渡す必要があります。ただし、値は無視されます。

BAAS_CASS_LOCALDC

リージョン名は dc-# の形式にする必要があります。# は整数値に対応します。

たとえば、dc-1、dc-2 などです。Edge とともにインストールされた Cassandra クラスタに接続する場合は、Edge システム管理者にこの値を問い合わせてください。Edge のシングル データセンター インストールでは、デフォルト値は dc-1 です。

API BaaS のインストールの一環として Cassandra をインストールした場合は、Cassandra のインストール中に Cassandra の IP アドレスに「:dc,ra」修飾子を追加しました。最初の値「dc」はデータセンター番号です。データセンター名は、データセンター番号を接尾辞として付加した文字列「dc-」です。

BAAS_CASS_REPLICATION

形式は「dataCenterName:#CassandraNodes」です。たとえば、3 つの Cassandra ノードがある dc-1 の場合、dc-1:3 です。

BAAS_USERGRID_URL

本番環境では、これは API BaaS スタックノードの前面にあるロードバランサの URL とポートです。形式は次のとおりです。

http://myStackLoadBalancer:8443

API BaaS スタックノードが 1 つしかないテスト環境または開発環境では、API BaaS スタックノードの URL とポート番号を次の形式で指定できます。

http://stackIPorDNS:8080

API BaaS Stack サーバーのポート番号は 8080 です。

BAAS_PORTAL_URL

ロードバランサの URL とポート番号(ポータルの前に存在する場合は、次の形式)。

http://myPortalLoadBalancer:8443

ロードバランサがない場合、ポータル ノードの URL とポート番号。形式:

http://myPortalLoadBalancer:8443

デフォルトでは、API 9 のポータルのポート番号は Ba0S0 です。

BAAS_PORTAL_LISTEN_PORT

API BaaS ポータル サーバーのポート番号は 9000 です。このポートを使用できない場合は、別のポートを指定します。

BAAS_PORTAL_URL をポータル ノードの URL に設定する場合、ポート番号は両方のプロパティで同じである必要があります。

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

API BaaS は Edge と同じ Cassandra クラスタに接続できますが、Apigee では別々のクラスタを使用することをおすすめします。

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 ジョブを設定する

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 ポータルの構成が完了します。

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

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

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

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

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

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

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_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

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

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

  1. スタックノードを構成します。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergridconfigure
  2. 変更を Tomcat にデプロイします。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. BaaS スタックを再起動します。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. portal.properties を変更した場合は、ポータル ノードを構成します。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portalconfigure
  5. 変更をデプロイします。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. BaaS ポータルを再起動します。
    > /<inst_root>/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)をご覧ください。