インストールの要件

ハードウェア要件

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

次の動画では、インストールのサイジングに関する概要を説明しています。

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

これらの表のハードディスク要件は、オペレーティング システムに必要なハードディスク容量に加えて必要となるものです。アプリケーションとネットワーク トラフィックによっては、インストールに必要なリソースが以下に示すものより多くなる場合や、少なくなる場合があります。

設置コンポーネント RAM CPU ハードディスクの最小要件
Cassandra(スタンドアロン) 16 GB 8 コア 250 GB のローカル ストレージ(SSD、2,000 IOPS をサポート)
同じマシン上の Cassandra/Zookeeper 16 GB 8 コア 250 GB のローカル ストレージ(SSD、2,000 IOPS をサポート)
同じマシン上の Message Processor/Router 16 GB 8 コア 100 GB
Message Processor(スタンドアロン) 16 GB 8 コア 100 GB
ルーター(スタンドアロン) 8 GB 8 コア 100 GB
Analytics - Postgres/Qpid(同じサーバー上) 16GB* 8 コア* 500 GB ~ 1 TB** のネットワーク ストレージ***(SSD バックエンドが望ましい)、1,000 IOPS 以上をサポート*
Analytics - Postgres マスターまたはスタンバイ(スタンドアロン) 16GB* 8 コア* 500 GB ~ 1 TB** のネットワーク ストレージ***(SSD バックエンドが望ましい)、1,000 IOPS 以上をサポート*
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 未満: 8 GB、4 コア。1, 000 IOPS 以上をサポートするマネージド ネットワーク ストレージ***を検討できます。
  • 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 は、今日のほとんどの環境/ストレージ/ネットワーク サブシステムで、その場で調整できます。
  • ストレージ レベルのスナップショットは、バックアップと復元のソリューションの一部として有効にできます。

また、収益化サービスをインストールする場合のハードウェア要件は次のとおりです(オールインワン インストールではサポートされていません)。

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

250 TPS を超えるインストールの場合、1, 000 IOPS をサポートするローカル ストレージを備えた HDD をおすすめします。

Cassandra ネットワーク帯域幅の要件

Cassandra は Gossip プロトコルを使用して、ネットワーク トポロジに関する情報を他のノードと交換します。Gossip の使用と Cassandra の分散性(読み書き操作のために複数のノードと通信する)により、多くのデータがネットワークを通じて転送されます。

Cassandra には、ノードあたり 1 Gbps 以上のネットワーク帯域幅が必要です。本番環境にインストールする場合は、より高い帯域幅を使用することをおすすめします。

Cassandra の最大レイテンシまたは 99 パーセンタイルのレイテンシは 100 ミリ秒未満にする必要があります。

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

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

前提条件: EPEL リポジトリを有効にする

インストールに進む前に、EPEL(Extra Packages for Enterprise Linux)リポジトリが有効になっていることを確認します。Red Hat、CentOS、Oracle Linux 9.x の場合は、次のコマンドを使用します。

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo rpm -ivh epel-release-latest-9.noarch.rpm

Java

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

インストールを実行するユーザーの JDK のルートを JAVA_HOME 環境変数が指していることを確認します。

SELinux

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

「apigee」ユーザーの作成

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

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

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

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

シンボリック リンクを作成する前に、まず「apigee」という名前のユーザーとグループを作成する必要があります。これは、Edge インストーラによって作成されたグループおよびユーザーと同じです。

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

  1. 「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

掲載ネットワークの設定

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

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

次の表に、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

Rocky 9.X の言語 / 地域の設定

Rocky 9.X を使用している場合は、システム全体のロケール設定でシステムが LANG=en_US.utf8 で構成されていることを確認します。これを構成するには、次のコマンドを実行します。

dnf -y -q install langpacks-en
localectl set-locale LANG=en_US.utf8
reboot

システム制限

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

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

RHEL 8 以降で IPv6 を無効にする

Google Cloud Platform で RHEL 8 以降のバージョンに Edge をインストールする場合は、すべての Qpid ノードで IPv6 を無効にする必要があります。

IPv6 を無効にする手順については、OS ベンダーが提供するドキュメントをご覧ください。たとえば、Red Hat Enterprise Linux のドキュメントに関連情報が記載されています。

Amazon Linux の前提条件

Amazon Linux 2023.9/2023.10/2023.11 で新規インストールを行うか、4.53.01 から 4.54.00 にアップグレードする(Amazon Linux 2023.9/2023.10/2023.11 で)前に、/etc/yum.repos.d/amazonlinux.repo ファイルを編集します。[amazonlinux] を含むセクションには、パッケージが Amazon からではなく apigee-thirdparty からダウンロードされるように、exclude=postgresql18、luajit* を含める必要があります。

ツール

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

awk

expr

libxslt

rpm

unzip

basename

grep

lua-socket

rpm2cpio

useradd

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

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

時刻の同期

サーバーの時刻を同期させることをおすすめします。まだ構成されていない場合は、ntpdate ユーティリティまたは同等のツールを使用して、サーバーの時刻が同期されているかどうかを確認できます。たとえば、yum install ntp または同等のコマンドを使用してユーティリティをインストールできます。これは、LDAP 設定を複製する場合に特に便利です。サーバーのタイムゾーンは UTC に設定する必要があります。

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

virtual という用語は、IT 分野でよく使われます。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 ルーターが実行されている場合があります。ルーターは、次の架空の例のように仮想ホスト エンドポイントを公開します。

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

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 プロキシ バンドルは、ベースパスが異なる場合、エンドポイントを共有できます。たとえば、1 つのベースパスを 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/ トラフィックを分割するロードバランサまたは Traffic Director が必要です。この機能は、特定のインストールに固有のものであり、ローカル ネットワーキング グループによって構成されます。

ベースパスは、API のデプロイ時に設定されます。上記の例では、api.mycompany.com のホスト エイリアスと 80 に設定されたポートを持つ仮想ホストを使用して、組織 mycompany-org に 2 つの API(mycompany と testmycompany)をデプロイできます。デプロイでベースパスを宣言しないと、ルーターは受信リクエストをどの API に送信すればよいかわかりません。

ただし、ベース URL が /salesdemo の 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 セールスにお問い合わせください。