7 ホストおよび 10 ホストの API BaaS のインストール

Edge for Private Cloud v. 4.16.05

ロードバランサの使用

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

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

Cassandra への接続

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

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

日付の同期

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

Tomcat のセキュリティ

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

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

インストールの概要

ノードに Edge の apigee-setup ユーティリティをインストールしたら、そのユーティリティを使用して、ノードに 1 つ以上の BaaS コンポーネントをインストールします。apigee-setup ユーティリティの形式は次のとおりです。

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

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

唯一の要件は、構成ファイルが「apigee」ユーザーによってアクセス可能または読み取り可能であることです。たとえば、ノードの /tmp ディレクトリにファイルを配置します。

たとえば、次のコマンドを使用して 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 をインストールします。ポータルは非常に軽量であるため、追加のリソースは必要ありません。

asa

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

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

以下に、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 をインストールする場合は、Cassandra ノードの IP(DNS 名ではない)を指定し、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 Stack ノードの前にあるロードバランサの URL とポートです。形式は次のとおりです。

http://myStackLoadBalancer:8443

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

http://stackIPorDNS:8080

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

BAAS_PORTAL_URL

Portal の前にロードバランサがある場合は、ロードバランサの URL とポート番号。形式は次のとおりです。

http://myPortalLoadBalancer:8443

ロードバランサがない場合は、Portal ノードの URL とポート番号。形式は次のとおりです。

http://portalIPorDNS:9000

デフォルトでは、API BaaS Portal のポート番号は 9000 です。

BAAS_PORTAL_LISTEN_PORT

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

BAAS_PORTAL_URL を Portal ノードの 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」ユーザーがアクセスまたは読み取り可能である必要があります。たとえば、ノードの /tmp ディレクトリにファイルを配置します。

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

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

Cassandra cron ジョブを設定する

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」ユーザーがアクセスまたは読み取り可能である必要があります。たとえば、ノードの /tmp ディレクトリにファイルを配置します。
  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」ユーザーがアクセスまたは読み取り可能である必要があります。たとえば、ノードの /tmp ディレクトリにファイルを配置します。

インストーラは、正しい管理者認証情報を取得した後、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/setup/bin/setup.sh -p p -f configFile

    「-p p」オプションは、API BaaS Portal をインストールすることを指定します。
    構成ファイルは、「apigee」ユーザーがアクセスまたは読み取り可能である必要があります。たとえば、ノードの /tmp ディレクトリにファイルを配置します。

インストーラが Nginx ウェブサーバーを起動し、API BaaS Portal の構成を完了します。

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_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 以外)を使用している場合のみです。

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

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

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

Portal ノードの前にロードバランサを使用する場合は、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.properties と portal.properties を編集した後:

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