インストールの要件

ハードウェア要件

本番環境の高可用性インフラストラクチャでは、次の最小ハードウェア要件を満たしている必要があります。

次の動画は、インストール環境のサイズに関する全般的なガイダンスを示しています。

インストール トポロジで説明されているすべてのインストール シナリオに適用される、インストール コンポーネントの最小ハードウェア要件を次の表に示します。

この表のハードディスク要件は、オペレーティング システムが必要とするハードディスク容量とは別に必要となります。使用するアプリケーションとネットワーク トラフィックによっては、必要なリソースは下記より増減する場合があります。

インストール コンポーネント RAM CPU 最小ハードディスク
Cassandra 16 GB 8 コア 250 GB のローカル ストレージ(2,000 IOPS をサポートする SSD)
Message Processor/Router(同一マシン上) 16 GB 8 コア 100 GB
Message Processor(スタンドアロン) 16 GB 8 コア 100 GB
ルーター(スタンドアロン) 16 GB 8 コア 100 GB
分析 - 同じサーバー上の Postgres/Qpid 16GB* 8 コア* 500 GB ~ 1 TB** のネットワーク ストレージ***(1,000 IOPS 以上* をサポートする SSD バックエンドを推奨)
Analytics - Postgres マスターまたはスタンバイ(スタンドアロン) 16GB* 8 コア* 500 GB ~ 1 TB** ネットワーク ストレージ ***(1,000 IOPS 以上* をサポートする SSD バックエンドを推奨)
Analytics - Qpid(スタンドアロン) 8 GB 4 コア 30 GB ~ 50 GB のローカル ストレージ(SSD)

デフォルトの Qpid キューサイズは 1 GB ですが、2 GB に増やすことができます。容量を増やす場合は、Qpid ノードを追加します。

OpenLDAP/UI/Management Server 8 GB 4 コア 60 GB
UI/Management Server 4 GB 2 コア 60 GB
OpenLDAP(スタンドアロン) 4 GB 2 コア 60 GB

* スループットに基づいて Postgres のシステム要件を調整する

  • 250 TPS 未満: 1, 000 IOPS 以上をサポートするマネージド ネットワーク ストレージ *** を備えた 8 GB、4 コアを検討可能
  • 250 TPS 以上: 16 GB、8 コア、1,000 IOPS 以上をサポートするマネージド ネットワーク ストレージ***
  • 1, 000 TPS 以上: 16 GB、8 コア、2, 000 IOPS 以上をサポートするマネージド ネットワーク ストレージ***
  • 2, 000 TPS 以上: 32 GB、16 コア、2, 000 IOPS 以上をサポートするマネージド ネットワーク ストレージ***
  • 4, 000 TPS 以上: 64 GB、32 コア、4, 000 IOPS 以上をサポートするマネージド ネットワーク ストレージ***

** Postgres のハードディスクの値は、カスタム値なしの分析を Edge で取得する場合に基づきます。分析データにカスタム値を追加する場合は、それに応じてハードディスクのサイズを増やす必要があります。次の数式を使用して必要なストレージを計算します。

bytes of storage needed =

  (# bytes of analytics data/request) *

  (requests/second) *

  (seconds/hour) *

  (hours of peak usage/day) *

  (days/month) *

  (months of data retention)

例:

(2K bytes) * (100 req/sec) * (3600 secs/hr) * (18 peak hours/day) * (30 days/month) * (3 months retention)

= 1,194,393,600,000 bytes or 1194.4 GB of storage needed

*** ネットワーク ストレージが Postgresql データベースに推奨されている理由は次のとおりです。

  • 必要に応じて、ストレージ サイズを動的にスケールアップすることが可能。
  • ネットワーク IOPS は、近年の環境/ストレージ/ネットワーク サブシステムの多くで、稼働中に調整が可能。
  • バックアップおよびリカバリ ソリューションの一部として、ストレージ レベルのスナップショットを有効にすることが可能。

さらに、Monetization Services をインストールする場合のハードウェア要件を次に示します(Monetization Services はオールインワン インストールではサポートされません)。

Monetization を使用するコンポーネント RAM CPU ハードディスク
Management Server(Monetization Services を使用) 8 GB 4 コア 60 GB
分析 - 同一サーバー上の Postgres/Qpid 16 GB 8 コア 500 GB ~ 1 TB のネットワーク ストレージ(1,000 IOPS 以上をサポートする SSD バックエンドを推奨、または上記の表のルールを使用)
Analytics - Postgres マスターまたはスタンバイ(スタンドアロン) 16 GB 8 コア 500 GB ~ 1 TB のネットワーク ストレージ(1,000 IOPS 以上をサポートする SSD バックエンドを推奨、または上記の表のルールを使用)
Analytics - Qpid(スタンドアロン) 8 GB 4 コア 40 GB ~ 500 GB のローカル ストレージ(SSD または高速 HDD)

必要な処理能力が 250 TPS を超える場合は、1, 000 IOPS をサポートするローカル ストレージを備えた HDD を推奨

オペレーティング システムとサードパーティ ソフトウェアの要件

以下のインストール手順と付属のインストール ファイルは、サポートされているソフトウェアとサポート対象バージョンに記載されているオペレーティング システムとサードパーティ ソフトウェアでテストされています。

Java

インストール前に、サポート対象の Java 1.8 が各マシンにインストールされている必要があります。サポートされている JDK の一覧については、サポート対象ソフトウェアとサポート対象バージョンをご覧ください。

インストールを行うユーザーの JAVA_HOME 環境変数に JDK のルート ディレクトリが設定されていることを確認します。

SELinux

SELinux の設定によっては、Edge コンポーネントのインストールと起動で問題が発生することがあります。必要に応じて、インストール中に SELinux を無効にするか permissive モードに設定し、インストール後に再度 SELinux を有効にすることが可能です。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。

「apigee」ユーザーの作成

インストール手順において、「apigee」という UNIX システムのユーザーが作成されます。Edge のディレクトリとファイルは、Edge プロセスと同じく、「apigee」が所有者となります。つまり、Edge コンポーネントは「apigee」ユーザーとして実行されます。必要に応じて、コンポーネントを別のユーザーとして実行することも可能です。

インストール ディレクトリ

デフォルトでは、インストーラはすべてのファイルを /opt/apigee ディレクトリに書き込みます。このディレクトリの場所は変更できません。このディレクトリは変更できませんが、/opt/apigee からのシンボリック リンクの作成で説明されているように、シンボリック リンクを作成して /opt/apigee を別の場所にマッピングできます。

このガイドの手順では、インストール ディレクトリを /opt/apigee と記載しています。

シンボリック リンクを作成する前に、まず「apigee」というユーザーとグループを作成してください。このグループとユーザーは、Edge インストーラが作成するものと同じです。

シンボリック リンクを作成するには、bootstrap_4.52.00.sh ファイルをダウンロードする前に次の手順を行います。これらの手順はすべて root ユーザーで行う必要があります。

  1. 「apigee」ユーザーと「apigee」グループを作成します。
    groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
  2. /opt/apigee から目的のインストール ルートへのシンボリック リンクを作成します。
    ln -Ts /srv/myInstallDir /opt/apigee

    ここで、/srv/myInstallDir は Edge ファイルのインストール先ディレクトリです。

  3. インストール ルートとシンボリック リンクの所有者を「apigee」ユーザーに変更します。
    chown -h apigee:apigee /srv/myInstallDir /opt/apigee

掲載ネットワークの設定

インストール前にネットワーク設定を確認することを推奨します。インストーラは、すべてのマシンが固定 IP アドレスを持っていることを想定しています。次のコマンドを使用して設定を確認します。

  • hostname はマシンの名前を返します。
  • hostname -i は、他のマシンからアドレス参照できるホスト名の IP アドレスを返します。

オペレーティング システムの種類とバージョンによっては、ホスト名が正しく設定されていない場合に /etc/hosts/etc/sysconfig/network を編集しなければならないことがあります。詳細については、使用しているオペレーティング システムのドキュメントをご覧ください。

サーバーに複数のインターフェース カードが搭載されている場合、「hostname -i」コマンドはスペースで区切られた IP アドレスのリストを返します。デフォルトでは、Edge インストーラは返された最初の IP アドレスを使用しますが、すべての状況で正しいとは限りません。この代替手段として、インストール構成ファイルで次のプロパティを設定できます。

ENABLE_DYNAMIC_HOSTIP=y

このプロパティを「y」に設定すると、インストール プロセスの一環として、使用する IP アドレスを選択するよう求められます。デフォルト値は n です。詳細については、Edge 構成ファイル リファレンスをご覧ください。

TCP ラッパー

TCP ラッパーは、一部のポートの通信をブロックし、OpenLDAP、Postgres、Cassandra のインストールに影響する可能性があります。これらのノードで /etc/hosts.allow/etc/hosts.deny をチェックし、必要な OpenLDAP ポート、Postgres ポート、Cassandra ポートにポート制限が設定されていないことを確認します。

iptables

Edge の必須ポートにおいて、ノード間の接続を妨げる iptables ポリシーが存在しないことを確認します。必要に応じて、次のコマンドを使用してインストール中は iptables を停止できます。

sudo/etc/init.d/iptables stop

CentOS 7.x の場合は次のコマンドとなります。

systemctl stop firewalld

ディレクトリへのアクセス

次の表に、Edge プロセスから特別な要件がある Edge ノード上のディレクトリを示します。

サービス ディレクトリ 説明
ルーター /etc/rc.d/init.d/functions

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

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

権限を 744 に設定すると、/etc/rc.d/init.d/functions への読み取りアクセスが許可されます。

Zookeeper /dev/random Zookeeper クライアント ライブラリを機能させるため、乱数生成ツール /dev/random への読み取りアクセス権が必要です。/dev/random の読み取りがブロックされている場合、Zookeeper サービスは起動できません。

Cassandra

すべての Cassandra ノードがリングに接続されている必要があります。Cassandra は、信頼性とフォールト トレランスを確保するため、複数のノードにデータレプリカを保持します。各 Edge キースペースのレプリケーション戦略によって、レプリカが配置される Cassandra ノードが決まります。詳細については、Cassandra のレプリケーション係数と整合性レベルについてをご覧ください。

Cassandra は、使用可能なメモリに基づいて Java ヒープサイズを自動的に調整します。パフォーマンスの低下が見られる場合やメモリ消費量が多い場合は、Java リソースのチューニングをご覧ください。

Edge for Private Cloud をインストールした後、/opt/apigee/apigee-cassandra/conf/cassandra.yaml ファイルを調べて、Cassandra が正しく構成されていることを確認できます。たとえば、Edge for Private Cloud インストール スクリプトによって次のプロパティが設定されたことを確認します。

  • cluster_name
  • initial_token
  • partitioner
  • seeds
  • listen_address
  • rpc_address
  • snitch

PostgreSQL データベース

Edge をインストールした後、システムで使用可能な RAM 容量に基づいて、PostgreSQL データベースの設定を調整できます。

conf_postgresql_shared_buffers = 35% of RAM      # min 128kB
conf_postgresql_effective_cache_size = 45% of RAM
conf_postgresql_work_mem = 512MB       # min 64kB

上記の値を設定するには:

  1. postgresql.properties ファイルを編集します。
    vi /opt/apigee/customer/application/postgresql.properties

    ファイルが存在しない場合は作成します。

  2. 上記のプロパティを設定します。
  3. 編集内容を保存します。
  4. PostgreSQL データベースを再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

システム制限

Cassandra ノードと Message Processor ノードで、次のシステム制限が設定されていることを確認します。

  • Cassandra ノードでは、/etc/security/limits.d/90-apigee-edge-limits.conf でインストール ユーザー(デフォルトは「apigee」)に対して soft および hard の memlock、nofile、アドレス空間(as)の制限を設定します。次に例を示します。
    apigee soft memlock unlimited
    apigee hard memlock unlimited
    apigee soft nofile 32768
    apigee hard nofile 65536
    apigee soft as unlimited
    apigee hard as unlimited
    apigee soft nproc 32768
    apigee hard nproc 65536
  • Message Processor ノードでは、/etc/security/limits.d/90-apigee-edge-limits.conf でオープン ファイル記述子の最大数を 64, 000 に設定します。次に例を示します。
    apigee soft nofile 32768
    apigee hard nofile 65536

    必要に応じて、制限の値を増やせます。たとえば、一度に大量の一時ファイルを開く場合はこの値を増やします。

  • Router または Message Processor の system.log に次のエラーが表示される場合は、ファイル記述子の制限が低すぎる可能性があります。

    "java.io.IOException: Too many open files"
    

    ユーザー制限は次のコマンドで確認できます。

    # su - apigee
    $ ulimit -n
    100000
    

    ファイル記述子の制限を 100000 に設定した後もオープン ファイル数の上限に達する場合は、トラブルシューティングを受けるために Apigee Edge サポートでチケットを開いてください。

Network Security Services(NSS)

Network Security Services(NSS)は、セキュリティが有効なクライアントやサーバー アプリケーションの開発をサポートするライブラリです。NSS v3.19 以降がインストールされていることを確認します。

現在のバージョンを確認するには:

yum info nss

次のコマンドで NSS をアップデートします。

yum update nss

詳細については、RedHat のこちらの記事をご覧ください。

NSCD(ネームサービス キャッシュ デーモン)を使用する場合に IPv6 の DNS ルックアップを無効化

NSCD(ネームサービス キャッシュ デーモン)をインストールして有効にしている場合、Message Processor は IPv4 用と IPv6 用の 2 つの DNS ルックアップを行います。NSCD を使用する場合は、IPv6 の DNS ルックアップを無効にしてください。

IPv6 の DNS ルックアップを無効にするには:

  1. すべての Message Processor ノードで /etc/nscd.conf を編集します。
  2. 次のプロパティを設定します。
    enable-cache hosts no

Google Cloud Platform 上の RedHat/CentOS 7 で IPv6 を無効にする

Google Cloud Platform 上の RedHat 7 または CentOS 7 に Edge をインストールする場合、すべての Qpid ノードで IPv6 を無効にしてください。

IPv6 を無効にする手順については、お使いのバージョンの RedHat または CentOS ドキュメントをご覧ください。たとえば、次のようなことができます。

  1. エディタで /etc/hosts を開きます。
  2. 次の行の 1 列目に「#」文字を挿入し、コメントアウトします。
    #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  3. ファイルを保存します。

AWS AMI

Red Hat Enterprise Linux 7.x の AWS Amazon Machine Image(AMI)に Edge をインストールする場合は、まず次のコマンドを実行してください。

yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

ツール

インストーラでは、EL5 または EL6 が提供する標準バージョンで次の UNIX ツールを使用します。

awk

expr

libxslt

rpm

unzip

basename

grep

Lua ソケット

rpm2cpio

useradd

bash

hostname

ls

sed

wc

bc

id

net-tools

sudo

wget

curl

libaio

perl(from procps)

tar

xerces-c

cyrus-sasl libdb4 pgrep(from procps) tr おいしい

date

libdb-cxx

ps

uuid

chkconfig

ディレクトリ名 libibverbs pwd uname  
エコー librdmacm python    

ntpdate

サーバーの時刻を同期させることをおすすめします。これには ntpdate ユーティリティを使用できます。このユーティリティはサーバーの時刻が同期しているかどうかを確認します。ntpdate は yum install ntp を使用してインストールできます。これは、OpenLDAP 設定を複製する場合に特に便利です。サーバーのタイムゾーンを UTC で設定してください。

OpenLDAP 2.4

オンプレミス インストールには OpenLDAP 2.4 が必要です。サーバーがインターネットに接続できる場合は、Edge インストール スクリプトによって OpenLDAP がダウンロードされ、インストールされます。サーバーがインターネットに接続していない場合は、Edge インストール スクリプトを実行する前に、OpenLDAP がインストールされていることを確認する必要があります。RHEL/CentOS では、yum install openldap-clients openldap-servers を実行することで OpenLDAP をインストールできます。

13 ホスト インストールと 2 つのデータセンターを使用する 12 ホスト インストールでは、OpenLDAP をホストするノードが複数あるため、OpenLDAP レプリケーションが必要です。

ファイアウォールと仮想ホスト

IT の世界では virtual(仮想)という用語が頻繁に使われており、これは Apigee Edge for Private Cloud のデプロイメントと仮想ホストにも当てはまります。明確にするために説明すると、virtual という用語には、主に次の 2 つの用途があります。

  • 仮想マシン(VM): 必須ではありませんが、一部のデプロイでは VM テクノロジーを使用して、Apigee コンポーネント用に分離されたサーバーを作成します。VM ホストには、物理ホストと同様に、ネットワーク インターフェースとファイアウォールを設定できます。
  • 仮想ホスト: Apache 仮想ホストに類似したウェブ エンドポイント。

VM 内のルーターは、複数の仮想ホストを公開できます(ただし、ホスト エイリアスまたはインターフェース ポートがそれぞれ異なる必要があります)。

たとえば、1 台の物理サーバー A で「VM1」、「VM2」という 2 つの VM を稼働できます。「VM1」が仮想イーサネット インターフェースを公開し、VM 内で「eth0」という名前が付けられ、仮想化マシンまたはネットワーク DHCP サーバーによって IP アドレス 111.111.111.111 が割り当てられているとします。また、VM2 が仮想イーサネット インターフェースを公開し、同じく「eth0」という名前が付けられ、IP アドレス 111.111.111.222 が割り当てられているとします。

この場合、2 つの VM のそれぞれで Apigee Router を稼働させることができます。この例では、これらのルーターは次のように仮想ホストのエンドポイントを公開します。

VM1 の Apigee Router は、その eth0 インターフェース(複数の IP アドレスを持つ)で api.mycompany.com:80api.mycompany.com:443test.mycompany.com:80 の 3 つの仮想ホストを公開します。

VM2 のルーターは api.mycompany.com:80 を公開します(VM1 が公開するものと同じ名前とポート)。

物理ホストのオペレーティング システムにネットワーク ファイアウォールがある場合は、仮想化インターフェース(111.111.111.111:{80, 443}111.111.111.222:80)で公開されているポートに向かう TCP トラフィックを通過させるようにファイアウォールを構成する必要があります。また、各 VM のオペレーティング システムは eth0 インターフェースに独自のファイアウォールを提供することができ、これらもポート 80 と 443 のトラフィックの接続を許可する必要があります。

ベースパスは、デプロイした別の API プロキシへの API 呼び出しのルーティングに関連する 3 番目のコンポーネントです。API プロキシ バンドルは、異なるベースパスを持つ場合に特定のエンドポイントを共有できます。たとえば、http://api.mycompany.com:80/http://api.mycompany.com:80/salesdemo という別々のベースパスを定義できます。

この場合、2 つの IP アドレス(VM1 の 111.111.111.111 と VM2 の 111.111.111.222)の間で http://api.mycompany.com:80/ トラフィックを分割するなんらかの種類のロードバランサまたはトラフィック ディレクターが必要です。この機能は特定のインストールに固有のもので、ローカル ネットワーク グループによって構成されます。

ベースパスは API をデプロイするときに設定します。上記の例では、api.mycompany.com というホスト エイリアスとポート 80 の仮想ホストを持つ組織 mycompany-org に対して 2 つの API(mycompanytestmycompany)をデプロイできます。デプロイでベースパスを宣言しないと、ルーターは受信リクエストの送信先の API を認識しません。

ただし、ベース URL が /salesdemo の API testmycompany をデプロイすると、ユーザーは http://api.mycompany.com:80/salesdemo を使用してその API にアクセスします。ベース URL を / に設定して API mycompany をデプロイすると、ユーザーは URL http://api.mycompany.com:80/ で API にアクセスします。

ライセンス

Edge のインストールごとに、Apigee から取得した固有のライセンス ファイルが必要となります。管理サーバーをインストールするときに、ライセンス ファイルのパスを指定する必要があります(例: /tmp/license.txt)。

ライセンス ファイルはインストーラによって /opt/apigee/customer/conf/license.txt にコピーされます。

ライセンス ファイルが有効な場合は、その有効期限と許可された Message Processor(MP)の数が検証されます。いずれかのライセンス設定が期限切れの場合は、/opt/apigee/var/log/edge-management-server/logs にあるログでそれを調べることができます。その場合は、Apigee Edge サポートに移行の詳細をお問い合わせください。

ライセンスをお持ちでない場合は、Apigee Sales にお問い合わせください。