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 の保護の一環としてこれらの認証情報を変更できます。詳細については、以下をご覧ください。
- https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
- https://www.owasp.org/index.php/Securing_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 |
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 とポートです。形式は次のとおりです。 API BaaS Stack ノードが 1 つしかないテスト環境または開発環境では、API BaaS Stack ノードの URL とポート番号を次の形式で指定できます。 http://stackIPorDNS:8080 API BaaS Stack サーバーのポート番号は 8080 です。 |
|
BAAS_PORTAL_URL |
Portal の前にロードバランサがある場合は、ロードバランサの URL とポート番号。形式は次のとおりです。 |
|
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 認証を有効にするをご覧ください。
- インターネットまたはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
- コマンド プロンプトで、設定スクリプトを実行します。
> /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 をインストールするには:
- インターネットまたはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
- コマンド プロンプトで、設定スクリプトを実行します。
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
「-p e」オプションは、ElasticSearch をインストールすることを指定します。
構成ファイルは、「apigee」ユーザーがアクセスまたは読み取り可能である必要があります。たとえば、ノードの /tmp ディレクトリにファイルを配置します。 - (省略可)ElasticSearch をスタンドアロン ノードにインストールする場合(API BaaS Stack と一緒にインストールしない場合)、デフォルトのメモリ オプションを調整して、ElasticSearch に割り当てられるメモリを 4 GB から 6 GB に増やします。
- エディタで /opt/apigee/customer/application/elasticsearch.properties を開きます。このファイルが存在しない場合は作成します。
- setenv_elasticsearch_max_mem_size プロパティを 6g に設定します(デフォルトは 4g)。
setenv_elasticsearch_max_mem_size=6g - ファイルを保存します。
- 次のコマンドを実行します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
構成により、ノードのセットアップが正常に完了します。
API BaaS Stack をインストールする: マシン 4、5、6
API BaaS Stack をインストールするには:
- インターネットまたはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
- コマンド プロンプトで、設定スクリプトを実行します。
> /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 をインストールするには:
- インターネットまたはインターネット以外の手順を使用して、ノードに Edge apigee-setup ユーティリティをインストールします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
- コマンド プロンプトで、設定スクリプトを実行します。
> /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 を編集した後:
- Stack ノードを構成します。
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure - 変更を Tomcat にデプロイします。
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - BaaS Stack を再起動します。
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - portal.properties を変更した場合は、Portal ノードを構成します。
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - 変更をデプロイします。
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy - 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>'
組織を作成するには:
- ディレクトリを /opt/apigee/baas-usergrid/bin に変更します。
- create_org_and_user.py Python スクリプトを呼び出します。
BaaS システム管理者のユーザー名とパスワードの入力を求められます。これにより、システム管理者のみが実行できるようになります。 - API BaaS Portal URL のインストールが完了したときにメモした URL を使用して、ウェブブラウザで API BaaS Portal にログインします。ポータルにアクセスするには、API BaaS ポータルの URL を次の形式で入力します。
http://{portalExternalIP}:9000/
注: IP は、ポータルマシンの外部 IP アドレス/ホスト名です。このポートが開いていることを確認します。 - ポータルのログイン画面が表示されたら、次のいずれかを行います。
- 組織管理者のユーザー名とパスワードを使用してログインします。
- システム管理者のユーザー名とパスワードを使用してログインします。
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)をご覧ください。