ハードウェア要件
本番環境グレードの環境で高可用性インフラストラクチャを実現するには、次の最小ハードウェア要件を満たす必要があります。
次の動画では、インストールのサイズ設定について大まかに説明しています。
インストール トポロジで説明されているすべてのインストール シナリオについて、インストール コンポーネントの最小ハードウェア要件を次の表に示します。
次の表のハードディスク要件は、オペレーティング システムが必要とするハードディスク容量に加えて適用されます。アプリケーションとネットワーク トラフィックに応じて、インストールに必要なリソースは下記の数よりも多くなることもあれば、少なくなることもあります。
インストール コンポーネント | 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 バックエンドが望ましい)* |
分析 - Postgres マスターまたはスタンバイ(スタンドアロン) | 16GB* | 8 コア* | 500 GB ~ 1 TB** のネットワーク ストレージ***(1,000 IOPS 以上をサポートする SSD バックエンドが望ましい)* |
アナリティクス - 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 のシステム要件を調整します。
** Postgres のハードディスクの値は、Edge によって取得され、すぐに使用できる分析に基づいています。分析データにカスタム値を追加する場合は、それに応じて値を増やす必要があります。必要なストレージを見積もるには、次の数式を使用します。
次に例を示します。
*** Postgresql データベースにはネットワーク ストレージが推奨されます。理由は次のとおりです。
|
さらに、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 バックエンドが推奨されます)か、上記の表のルールを使用します。 |
分析 - Postgres マスターまたはスタンバイ(スタンドアロン) | 16 GB | 8 コア | 500 GB ~ 1 TB のネットワーク ストレージ(1,000 IOPS 以上をサポートする SSD バックエンドが推奨されます)か、上記の表のルールを使用します。 |
アナリティクス - 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 モードに設定し、インストール後に再度有効にします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
「apigee」ユーザーを作成する
インストール手順では、「apigee」という名前の Unix システム ユーザーが作成されます。Edge のディレクトリとファイルは、Edge プロセスと同様に「apigee」が所有します。つまり、Edge コンポーネントは「apigee」ユーザーとして実行されます。必要に応じて、別のユーザーとしてコンポーネントを実行できます。
インストール ディレクトリ
デフォルトでは、すべてのファイルが /opt/apigee
ディレクトリに書き込まれます。このディレクトリの場所は変更できません。このディレクトリは変更できませんが、/opt/apigee からのシンボリック リンクの作成で説明されているように、/opt/apigee
を別の場所にマッピングするシンボリック リンクを作成できます。
このガイドの手順では、インストール ディレクトリは /opt/apigee
と記載しています。
/opt/apigee からのシンボリック リンクの作成
シンボリック リンクを作成する前に、まず「apigee」という名前のユーザーとグループを作成する必要があります。これは、Edge インストーラが作成するグループとユーザーと同じです。
シンボリック リンクを作成するには、bootstrap_4.52.00.sh ファイルをダウンロードする前に次の操作を行います。以下の手順はすべて、root ユーザーとして行う必要があります。
- 「apigee」ユーザーとグループを作成します。
groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
/opt/apigee
から目的のインストール ルートへのシンボリック リンクを作成します。ln -Ts /srv/myInstallDir /opt/apigee
ここで、/srv/myInstallDir は Edge ファイルの目的の場所です。
- インストール ルートとシンボリック リンクの所有権を「apigee」ユーザーに変更します。
chown -h apigee:apigee /srv/myInstallDir /opt/apigee
掲載ネットワークの設定
インストール前にネットワーク設定を確認することをおすすめします。インストーラは、すべてのマシンが固定 IP アドレスを持っていることを想定しています。次のコマンドを使用して、設定を確認します。
hostname
はマシンの名前を返します。hostname -i
は、他のマシンからアドレス指定可能なホスト名の IP アドレスを返します。
オペレーティング システムの種類とバージョンによっては、ホスト名が正しく設定されていない場合、/etc/hosts
と /etc/sysconfig/network
の編集が必要になることがあります。詳しくは、ご使用のオペレーティング システムのドキュメントをご覧ください。
サーバーに複数のインターフェース カードがある場合、「hostname -i」コマンドはスペース区切りの IP アドレスのリストを返します。デフォルトでは、Edge インストーラは返された最初の IP アドレスを使用しますが、常に正しい 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 ルーターを使用し、 セキュリティ プロセスで 権限を 744 に設定すると、 |
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
これらの値を設定するには:
- postgresql.properties ファイルを編集します。
vi /opt/apigee/customer/application/postgresql.properties
ファイルが存在しない場合は作成します。
- 上記のプロパティを設定します。
- 編集内容を保存します。
- 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」)に対するソフト / ハード 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 サポートでチケットを作成してください。
ネットワーク セキュリティ サービス(NSS)
ネットワーク セキュリティ サービス(NSS)は、セキュリティに対応したクライアント アプリケーションとサーバー アプリケーションの開発をサポートする一連のライブラリです。NSS v3.19 以降がインストールされていることを確認する必要があります。
現在のバージョンを確認するには:
yum info nss
NSS を更新するには:
yum update nss
詳しくは、RedHat のこちらの記事をご覧ください。
NSCD(ネームサービス キャッシュ デーモン)を使用する場合に IPv6 の DNS ルックアップを無効にする
NSCD(ネームサービス キャッシュ デーモン)をインストールして有効にしている場合、Message Processor は 2 つの DNS ルックアップ(IPv4 用と IPv6 用)を行います。NSCD を使用する場合は、IPv6 の DNS ルックアップを無効にする必要があります。
IPv6 の DNS ルックアップを無効にするには:
- すべての Message Processor ノードで、
/etc/nscd.conf
を編集します。 - 次のプロパティを設定します。
enable-cache hosts no
Google Cloud Platform での RedHat/CentOS 7 の IPv6 の無効化
Google Cloud Platform の RedHat 7 または CentOS 7 に Edge をインストールする場合は、すべての Qpid ノードで IPv6 を無効にする必要があります。
IPv6 を無効にする手順については、お使いの OS バージョンの RedHat または CentOS のドキュメントをご覧ください。たとえば、次のことができます。
- エディタで
/etc/hosts
を開きます。 - 次の行の 1 列目に「#」文字を挿入し、コメントアウトします。
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- ファイルを保存します。
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-Socket |
rpm2cpio |
ユーザーの追加 |
bash |
hostname |
ls |
sed |
wc |
bc |
id |
net-tools |
sudo |
wget |
curl |
libaio |
perl(procps から) |
tar |
xerces-c |
Cyrus-Sasl | libdb4 | pgrep(procps から) | tr | おいしい |
date |
libdb-cxx |
ps |
uuid |
chkconfig |
dirname | libibverbs | pwd | UNAME | |
echo | librdmacm | python |
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:80
、api.mycompany.com:443
、test.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 プロキシ バンドルのベースパスが異なる場合、API プロキシ バンドルはエンドポイントを共有できます。たとえば、あるベースパスを http://api.mycompany.com:80/
として定義し、別のベースパスを http://api.mycompany.com:80/salesdemo
として定義できます。
この場合、http://api.mycompany.com:80/ トラフィックを 2 つの IP アドレス(VM1 では 111.111.111.111
、VM2 では 111.111.111.222
)に分割する、なんらかのロードバランサまたはトラフィック ディレクターが必要です。この機能は特定のインストールに固有のもので、ローカル ネットワーク グループによって構成されます。
ベースパスは、API のデプロイ時に設定されます。上記の例では、ホスト エイリアスが api.mycompany.com
でポートが 80
に設定された仮想ホストを使用して、組織 mycompany-org
に mycompany
と testmycompany
の 2 つの API をデプロイできます。デプロイでベースパスを宣言しないと、ルーターは受信リクエストを送信する API を認識できません。
ただし、/salesdemo
のベース URL で API testmycompany
をデプロイすると、ユーザーは http://api.mycompany.com:80/salesdemo
を使用してその API にアクセスします。/
のベース URL で API mycompany をデプロイすると、ユーザーは URL http://api.mycompany.com:80/
で API にアクセスします。
ライセンス
Edge の各インストールには、Apigee から取得した一意のライセンス ファイルが必要です。Management Server をインストールするときに、ライセンス ファイルへのパス(/tmp/license.txt など)を指定する必要があります。
ライセンス ファイルはインストーラによって /opt/apigee/customer/conf/license.txt
にコピーされます。
ライセンス ファイルが有効な場合、管理サーバーは有効期限と許可された Message Processor(MP)の数を検証します。いずれかのライセンス設定が期限切れの場合は、/opt/apigee/var/log/edge-management-server/logs
でログを確認できます。この場合は、Apigee Edge サポートに移行の詳細をお問い合わせください。
ライセンスをお持ちでない場合は、Apigee セールスまでお問い合わせください。