Edge のインストールの概要

Edge for Private Cloud v. 4.16.09

一般的な Edge インストールは、複数のノードに分散された Edge コンポーネントで構成されます。ノードに Edge をインストールしたら、ノードに 1 つ以上の Edge コンポーネントをインストールして構成します。

インストール プロセス

ノードに Edge をインストールする手順は次のとおりです。

  • ノードで SELinux を無効にするか、permissive モードに設定します。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
  • 推奨トポロジのリストから Edge 構成を選択します。たとえば、テスト用に 1 つのノードに Edge をインストールすることも、本番環境用に 13 個のノードにインストールすることもできます。詳細については、インストール トポロジをご覧ください。
  • 選択したトポロジの各ノードに、Edge の apigee-setup ユーティリティをインストールします。
    • Edge の bootstrap_4.16.09.sh ファイルを /tmp/bootstrap_4.16.09.sh にダウンロードします。
    • Edge apigee-service ユーティリティと依存関係をインストールします。
    • Edge apigee-setup ユーティリティと依存関係をインストールします。

      詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
  • apigee-setup ユーティリティを使用して、選択したトポロジに基づいて各ノードに 1 つ以上の Edge コンポーネントをインストールします。
    ノードに Edge コンポーネントをインストールするをご覧ください。
  • Management Server ノードで、apigee-setup ユーティリティを使用して apigee-provision をインストールします。これは、Edge 組織の作成と管理に使用するユーティリティです。
    詳細については、組織のオンボーディングをご覧ください。

インストール エラーの処理

Edge コンポーネントのインストール中にエラーが発生した場合は、問題を修正してから、インストーラを再度実行します。このインストーラは、障害が検出された場合や、インストール後にコンポーネントを変更または更新する場合に、繰り返し実行できるように設計されています。

Postgres のマスター / スタンバイ レプリケーションを構成する

デフォルトでは、すべての Postgres ノードがマスターモードでインストールされます。ただし、複数の Postgres ノードがある本番環境システムでは、マスター スタンバイ レプリケーションを使用するように構成します。これにより、マスターノードに障害が発生した場合でも、スタンバイ ノードがトラフィックの処理を継続できます。詳細については、Postgres のマスター / スタンバイ レプリケーションを設定するをご覧ください。

インストールを実行できるユーザー

Apigee Edge ディストリビューション ファイルは、RPM と依存関係のセットとしてインストールされます。Edge をインストール、アンインストール、更新するには、root ユーザーまたは sudo フルアクセス権を持つユーザーが Edge コマンドを実行する必要があります。完全な sudo アクセス権とは、ユーザーが root と同じオペレーションを実行するための sudo アクセス権を持っていることを意味します。

次のコマンドまたはスクリプトを実行するユーザーは、root であるか、完全な sudo アクセス権を持つユーザーである必要があります。

  • apigee-service ユーティリティ:
    • apigee-service コマンド: install、uninstall、update。
    • apigee-all コマンド: install、uninstall、update。
  • setup.sh スクリプト。Edge コンポーネントをインストールします(必要な RPM をインストールするために「apigee-service install」をすでに使用している場合を除く)。不要な場合は、root または完全な sudo アクセス権を削除します。
  • Edge コンポーネントを更新する update.sh スクリプト

また、Edge インストーラは、システムに「apigee」という名前の新しいユーザーを作成します。多くの Edge コマンドは、sudo を呼び出して「apigee」ユーザーとして実行します。

上記以外のコマンドを実行するユーザーは、「apigee」ユーザーに対する sudo フルアクセス権限を持つユーザーである必要があります。これらのコマンドには次のものがあります。

  • apigee-service ユーティリティ コマンド。以下が含まれます。
    • start、stop、restart、configure などの apigee-service コマンド。
    • apigee-all コマンド(start、stop、restart、configure など)。

「apigee」ユーザーに対する sudo フルアクセス権限を持つユーザーを構成するには、sudoers ファイルを編集して、次の行を追加します。

installUser        ALL=(apigee)      NOPASSWD: ALL

ここで、installUser は、Edge を操作するユーザーのユーザー名です。

Edge コマンドで使用されるファイルやリソースには、「apigee」ユーザーがアクセスできる必要があります。これには、Edge ライセンス ファイルと構成ファイルが含まれます。

構成ファイルを作成するときに、所有者を「apigee:apigee」に変更して、Edge コマンドからアクセスできるようにします。

  1. 任意のユーザーとしてエディタでファイルを作成します。
  2. ファイルの所有者を「apigee:apigee」に変更します。Edge サービスを実行するユーザーを「apigee」ユーザーから変更した場合は、Edge サービスを実行しているユーザーにファイルの所有者を変更します。

インストール構成ファイルの場所

Edge のインストールに関する情報を含む構成ファイルを apigee-setup ユーティリティに渡す必要があります。自動インストールの唯一の要件は、構成ファイルが「apigee」ユーザーによってアクセス可能または読み取り可能であることです。たとえば、ノードの /usr/local/var または /usr/local/share ディレクトリにファイルを配置し、chown で「apigee:apigee」に変更します。

構成ファイル内のすべての情報(Edge システム管理者のパスワードを除く)は必須です。パスワードを省略すると、apigee-setup ユーティリティによってコマンドラインでパスワードの入力を求められます。

詳細については、ノードに Edge コンポーネントをインストールするをご覧ください。

インターネットまたはインターネット以外のインストール

ノードに Edge をインストールするには、ノードが Apigee リポジトリにアクセスできる必要があります。

  • 外部インターネット接続を持つノード

    外部インターネット接続を持つノードは、Apigee リポジトリにアクセスして Edge RPM と依存関係をインストールします。
  • 外部インターネット接続のないノード

    外部インターネット接続のないノードは、内部で設定した Apigee リポジトリのミラー バージョンにアクセスできます。このリポジトリにはすべての Edge RPM が含まれていますが、他のすべての依存関係が内部ネットワーク上のリポジトリから利用可能であることを確認する必要があります。

    注: Apigee は、すべてのサードパーティ依存関係を公開リポジトリでホストしているわけではありません。これらの依存関係は、一般公開されているリポジトリからダウンロードしてインストールする必要があります。

RPM インストールの依存関係の解決

Apigee Edge のディストリビューション ファイルは、一連の RPM ファイルとしてインストールされます。各 RPM ファイルには、独自のインストール依存関係チェーンを設定できます。これらの依存関係の多くは、Apigee の管理外のサードパーティ コンポーネントによって定義されており、いつでも変更される可能性があります。そのため、ドキュメントには各依存関係の明示的なバージョン番号は記載されていません。

インターネットにアクセスできるマシンにインストールする場合、ノードは必要な RPM と依存関係をダウンロードできます。ただし、インターネットにアクセスできないノードからインストールする場合は、通常、必要なすべての依存関係を含む内部リポジトリを設定します。すべての依存関係がローカル リポジトリに含まれていることを保証する唯一の方法は、インストールを試行し、不足している依存関係を特定して、インストールが成功するまでローカル リポジトリにコピーすることです。

仮想ホストの設定

Edge の仮想ホストは、API プロキシが公開されるドメインと Edge Router ポートを定義します。さらに、拡張機能により、アプリが API プロキシへのアクセスに使用する URL も定義されます。仮想ホストは、API プロキシへのアクセスに HTTP プロトコルを使用するか、暗号化された HTTPS プロトコルを使用するかも定義します。

Edge のオンボーディング プロセスの一環として、組織、環境、仮想ホストを作成する必要があります。Edge には、新規ユーザーがこのプロセスを簡単に行えるように setup-org コマンドが用意されています。

仮想ホストを作成するときに、次の情報を指定する必要があります。

  • API プロキシで参照するために使用する仮想ホストの名前。
  • 仮想ホストの Router のポート。通常、これらのポートは 9001 から始まり、新しい仮想ホストごとに 1 ずつ増加します。
  • 仮想ホストのホスト エイリアス。通常は仮想ホストの DNS 名です。

Edge Router は、受信リクエストの Host ヘッダーを、使用可能なホスト エイリアスのリストと比較して、リクエストを処理する API プロキシを特定します。仮想ホストを介してリクエストを行う場合は、仮想ホストのホスト エイリアスに一致するドメイン名を指定するか、ルーターの IP アドレスとホスト エイリアスを含む Host ヘッダーを指定します。

たとえば、ポート 9001 でホスト エイリアスが myapis.apigee.net の仮想ホストを作成した場合、その仮想ホストを介して API に送信される cURL リクエストは、次のいずれかの形式を使用できます。

  • myapis.apigee.net の DNS エントリがある場合:

    curl http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}
  • myapis.apigee.net の DNS エントリがない場合:

    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} -H 'Host: myapis.apigee.net'

    この形式では、Router の IP アドレスを指定し、Host ヘッダーでホスト エイリアスを渡します。

    注: curl コマンド、ほとんどのブラウザ、その他多くのユーティリティでは、リクエストの一部としてドメインを含む Host ヘッダーが自動的に追加されるため、実際には次の形式の curl コマンドを使用できます。


    curl http://<routerIP>:9001/{proxy-base-path}/{resource-path}

仮想ホストの DNS エントリがない場合のオプション

DNS エントリがない場合の 1 つのオプションは、ホスト エイリアスを <routerIP>:port の形式で Router の IP アドレスと仮想ホストのポートに設定することです。次に例を示します。

192.168.1.31:9001

次に、以下の形式で curl コマンドを作成します。

curl http://<routerIP>:9001/{proxy-base-path}/{resource-path} 

このオプションは Edge UI と連携するため、推奨されます。

複数の Router がある場合は、Router ごとにホスト エイリアスを追加し、各 Router の IP アドレスと仮想ホストのポートを指定します。

または、ホスト エイリアスを temp.hostalias.com などの値に設定することもできます。この場合、すべてのリクエストで Host ヘッダーを渡す必要があります。

curl -v http://<routerIP>:9001/{proxy-base-path}/{resource-path}  -H 'host: temp.hostalias.com'

または、ホスト エイリアスを /etc/hosts ファイルに追加します。たとえば、/etc/hosts に次の行を追加します。

192.168.1.31   temp.hostalias.com

次に、DNS エントリがあるかのようにリクエストを送信します。

curl -v http://myapis.apigee.net:9001/{proxy-base-path}/{resource-path}

インストール後の Edge コンポーネントの構成

インストール後に Edge を構成するには、.properties ファイルと Edge ユーティリティを組み合わせて使用します。たとえば、Edge UI で TLS/SSL を構成するには、.properties ファイルを編集して必要なプロパティを設定します。.properties ファイルを変更した場合は、影響を受ける Edge コンポーネントを再起動する必要があります。

.properties ファイルは /opt/apigee/customer/application ディレクトリにあります。各コンポーネントには、そのディレクトリに独自の .properties ファイルがあります。たとえば、router.properties や management-server.properties などです。

コンポーネントのプロパティを設定するには、対応する .properties ファイルを編集して、コンポーネントを再起動します。

> /opt/apigee/apigee-service/bin/apigee-service component restart

次に例を示します。

> /opt/apigee/apigee-service/bin/apigee-service edge-router restart

Edge を更新すると、/opt/apigee/customer/application ディレクトリ内の .properties ファイルが読み取られます。つまり、更新では、コンポーネントに設定したプロパティが保持されます。

Edge の構成の詳細については、Edge の構成方法をご覧ください。

Edge Router が /etc/rc.d/init.d/functions にアクセスできることを確認する

Edge Router と BaaS Portal はどちらも Nginx ルーターを使用しており、/etc/rc.d/init.d/functions への読み取りアクセス権が必要です。

自社のセキュリティ プロセスで /etc/rc.d/init.d/functions に対する権限の設定が義務付けられている場合、700 には設定しないでください。そうすると、Router は起動できません。権限を 744 に設定すると、/etc/rc.d/init.d/functions への読み取りアクセスを許可できます。

Edge コンポーネントでコマンドを呼び出す

Edge は、Edge のインストールを管理するために使用できる管理ユーティリティを /opt/apigee/apigee-service/bin にインストールします。たとえば、apigee-all ユーティリティを使用して、ノード上のすべての Edge コンポーネントの起動、停止、再起動、ステータスの確認を行うことができます。

/opt/apigee/apigee-service/bin/apigee-all stop|start|restart|status|version

apigee-service ユーティリティを使用して、個々のコンポーネントを制御、構成します。apigee-service ユーティリティの形式は次のとおりです。

/opt/apigee/apigee-service/bin/apigee-service component action

たとえば、Edge Router を再起動するには、次のようにします。

/opt/apigee/apigee-service/bin/apigee-service edge-router restart

ノードにインストールされているコンポーネントのリストは、/opt/apigee ディレクトリを調べることで確認できます。このディレクトリには、ノードにインストールされている Edge コンポーネントごとにサブディレクトリが含まれています。各サブディレクトリの先頭には、次のプレフィックスが付きます。

  • apigee - Edge で使用されるサードパーティ コンポーネント。例: apigee-cassandra。
  • edge - Apigee の Edge コンポーネント。たとえば、edge-management-server です。
  • edge-mint - 収益化コンポーネント。たとえば、edge-mint-management-server です。
  • baas - API BaaS コンポーネント。例: baas-usergrid。

コンポーネントのアクションの完全なリストはコンポーネント自体によって異なりますが、すべてのコンポーネントが次のアクションをサポートしています。

  • start、stop、restart
  • status, version
  • バックアップ、復元
  • install、uninstall

ログファイルへのアクセス

apigee-setup と setup.sh スクリプトのログファイルは、/tmp/setup-root.log に書き込まれます。

各コンポーネントのログファイルは、/opt/apigee/var/log ディレクトリにあります。各コンポーネントには独自のサブディレクトリがあります。たとえば、Management Server のログは次のディレクトリにあります。

/opt/apigee/var/log/edge-management-server

一般的な Yum コマンド

Linux 用の Edge インストール ツールは、Yum を使用してコンポーネントをインストール、更新します。ノードへのインストールを管理するには、複数の Yum コマンドを使用する必要があります。

  • すべての Yum キャッシュを消去します。
    sudo yum clean all
  • Edge コンポーネントを更新するには:
    sudo yum update componentName
    例:
    sudo yum update apigee-setup
    sudo yum update edge-management-server

ファイル システム構造

Edge は、すべてのファイルを /opt/apigee ディレクトリにインストールします。

このガイドと Edge 運用ガイドでは、ルート インストール ディレクトリを次のように表記しています。

<inst_root>/apigee

インストールでは、次のファイル システム構造を使用して Apigee Edge for Private Cloud をデプロイします。

ログファイル

コンポーネント

ロケーション

管理サーバー

<inst_root>/apigee/var/log/edge-management-server

ルーター

<inst_root>/apigee/var/log/edge-router

Message Processor

<inst_root>/apigee/var/log/edge-message-processor

Apigee Qpid サーバー

<inst_root>/apigee/var/log/edge-qpid-server

Apigee Postgres Server

<inst_root>/apigee/var/log/edge-postgres-server

Edge UI

<inst_root>/apigee/var/log/edge-ui

ZooKeeper

<inst_root>/apigee/var/log/apigee-zookeeper

OpenLDAP

<inst_root>/apigee/var/log/apigee-openldap

Cassandra

<inst_root>/apigee/var/log/apigee-cassandra

Qpidd

<inst_root>/apigee/var/log/apigee-qpidd

PostgreSQL データベース

<inst_root>/apigee/var/log/apigee-postgresql

データ

コンポーネント

ロケーション

管理サーバー

<data_root>/apigee/data/edge-management-server

ルーター

<data_root>/apigee/data/edge-router

Message Processor

<data_root>/apigee/data/edge-message-processor

Apigee Qpid エージェント

<data_root>/apigee/data/edge-qpid-server

Apigee Postgres エージェント

<data_root>/apigee/data/edge-postgres-server

ZooKeeper

<data_root>/apigee/data/apigee-zookeeper

OpenLDAP

<data_root>/apigee/data/apigee-openldap

Cassandra

<data_root>/apigee/data/apigee-cassandra/data

Qpidd

<data_root>/apigee/data/apigee-qpid/data

PostgreSQL データベース

<data_root>/apigee/data/apigee-postgres/pgdata