システム要件
PlantPulse プラットフォームを安定的に運用するためのハードウェア / OS / ネットワーク要件をご案内します。検証済みの標準環境を基準に作成されています。
概要
| 区分 | 最小 (開発 / テスト) | 標準 (運用) | 大規模 |
|---|---|---|---|
| CPU | 16 vCPU | 32 vCPU | 48+ vCPU |
| メモリ | 64 GB | 128 GB | 256 GB+ |
| OS ディスク | 200 GB | 256 GB | 512 GB |
| データ ディスク | 200 GB (SSD) | 1 TB (NVMe SSD) | 4 TB+ (NVMe SSD) |
| ネットワーク | 1 Gbps | 1 Gbps | 10 Gbps |
| OS | RHEL/Rocky/Oracle 8.x | RHEL/Rocky/Oracle 9.x | 同一 |
| JDK | OpenJDK 21 LTS | OpenJDK 21 LTS | OpenJDK 21 LTS |
検証環境: 運用検証環境(reference dev server)は 48 vCPU / 188 GB RAM / 4.8 TB NVMe SSD / RHEL 9 / Temurin OpenJDK 21.0.11 LTS で運用中です。
ハードウェア
CPU
- 推奨: 32 vCPU 以上 (Intel Xeon、AMD EPYC、ARM Graviton など)
- IIoT エンジンは 36 スレッド パイプラインを使用 (
engine.pipeline.threads) - Spark 分散分析は
PP_CLUSTER_CORESだけ追加で使用 - コア数が多いほど同時メッセージ処理量 ↑
メモリ
- 基本 128 GB 以上 · 運用推奨 256 GB
- メモリはページキャッシュとして Cassandra / Kafka のパフォーマンスに直接影響
- Cassandra ヒープ: ホストメモリの 1/4 (最大 32 GB)
- コンテナメモリ上限:
DOCKER_PP_MEMORYでホストメモリの 90% まで可能
ディスク
OS / データ ディスク分離推奨: OS ディスク (
/) とデータ ディスク (/data1) を分離するとバックアップ / 拡張 / 障害隔離が容易になります。
/ # OS 디스크 (256 GB)
└── opt/kopens/ # PlantPulse 바이너리 설치
/data1/ # 데이터 디스크 (1 TB+ NVMe SSD)
├── pp-data/ # Cassandra · PostgreSQL · MinIO · Valkey
├── pp-temp/ # Spark / 처리 임시
└── pp-backup/ # 백업 산출물
| マウント | 容量 | ディスク種類 | 用途 |
|---|---|---|---|
/ | 256 GB | SSD | OS、バイナリ |
/data1 | 1 TB+ | NVMe SSD 必須 | メインデータ |
/data2 ~ /dataN | 1 TB+ | NVMe SSD | (オプション) Cassandra データ / commitlog 分離 |
Cassandra ディスク最適化 (高度な設定)
大規模環境で commitlog とデータを別々のディスクに配置すると、書き込みスループットが大幅に向上します。
/data1/pp-data/cassandra/data/ # SSTable (대용량 NVMe)
/data2/pp-data/cassandra/commitlog/ # commitlog (별도 NVMe, sync I/O)
オペレーティングシステム
サポート OS
| OS | バージョン | 検証 | 推奨 |
|---|---|---|---|
| Oracle Linux | 8.x, 9.x | ✓ | 推奨 |
| RHEL | 8.x, 9.x | ✓ | 推奨 |
| Rocky Linux | 8.x, 9.x | ✓ | 推奨 |
| AlmaLinux | 8.x, 9.x | ✓ | |
| Ubuntu | 20.04+ | ✓ | |
| Amazon Linux | 2, 2023 | ✓ |
以下の全ての案内は RHEL/Rocky/Oracle 9.x を基準としています。Ubuntu / Amazon Linux を使用する場合、パッケージコマンド(
apt/yum) だけ環境に合わせて変更してください。
Java (JDK)
PlantPulse は Java 21 LTS ベースです。setup.sh / tools/java/ が自動インストールします。
$ java -version
openjdk version "21.0.11" 2026-04-21 LTS
OpenJDK Runtime Environment Temurin-21.0.11+10 (build 21.0.11+10-LTS)
手動インストールが必要な場合:
# RHEL/Rocky/Oracle
dnf install -y java-21-openjdk java-21-openjdk-devel
# Ubuntu
apt-get install -y openjdk-21-jdk
JAVA_HOME 環境変数が自動登録され、全モジュールは JAVA_TOOL_OPTIONS="-Duser.language=${PP_LANG} -Duser.timezone=${PP_TZ}" で統合適用されます。
ネットワーク / ホスト名
ホスト名
hostnamectl set-hostname plantpulse-prod-01
# /etc/hosts
vi /etc/hosts
# 첫 행 직후에 추가:
# 192.168.0.41 plantpulse-prod-01 plantpulse-prod-01.local
静的 IP
サーバー IP が変更されるとクラスタ / クライアント接続が切断されるため、必ず静的 IP を使用します。
# NetworkManager (RHEL 9+)
nmcli con mod ens33 ipv4.method manual \
ipv4.addresses 192.168.0.41/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns "168.126.0.1 8.8.8.8"
nmcli con up ens33
時刻同期 (必須)
分散コンポーネント (Cassandra、Kafka など) はノード間の時刻精度に非常に敏感です。
dnf install -y chrony
systemctl enable --now chronyd
chronyc tracking # 동기화 상태 확인
chronyc -a makestep # 즉시 동기화
OS チューニング (必須)
以下の値は install.sh(ワンラインインストール / Docker インストール) が 自動で適用する値です。手動環境でのみ同じように直接設定してください。
ファイルディスクリプタ / プロセス上限
# /etc/security/limits.conf
* - memlock unlimited
* - nofile 1048576
* - nproc 32768
* - as unlimited
カーネルパラメータ
# /etc/sysctl.conf (install.sh 자동 적용)
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 10
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 1024
vm.max_map_count = 1048576
vm.overcommit_memory = 0
fs.file-max = 1048576
sysctl -p /etc/sysctl.conf
Swap 無効化
データベース / Java プロセスは swap を避ける必要があります。
swapoff --all
# /etc/fstab 의 swap 라인 주석 처리
sed -i '/swap/s/^/#/' /etc/fstab
SELinux
setup.sh が自動で permissive に切り替えます。手動で変更する場合:
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
ネイティブライブラリ
Cassandra パフォーマンス向上用ライブラリ。
dnf install -y jna jemalloc jemalloc-devel zstd libpq
ディスク I/O チューニング
NVMe SSD
# /etc/udev/rules.d/60-ioscheduler.rules
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
ACTION=="add|change", KERNEL=="sd*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
# 즉시 적용
udevadm trigger
HDD (運用非推奨)
echo mq-deadline > /sys/block/sdb/queue/scheduler
blockdev --setra 128 /dev/sdb
ファイアウォール
install.sh は firewalld を 有効化(systemctl enable --now firewalld)し、プラットフォームに必要なポートを自動で開放します。ファイアウォールを外部(企業ファイアウォール / クラウドセキュリティグループ)で管理している場合は SKIP_FW=1 でこのステップをスキップしてください。
手動環境で直接開放する例:
systemctl enable --now firewalld
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=7443/tcp
firewall-cmd --permanent --add-port=4950/tcp
firewall-cmd --permanent --add-port=1883/tcp
firewall-cmd --permanent --add-port=1884/tcp
firewall-cmd --permanent --add-port=9092/tcp
firewall-cmd --permanent --add-port=9094/tcp
firewall-cmd --reload
全ポートリストは ポート構成情報 を参照してください。
上位ファイアウォール / クラウドセキュリティグループ: 企業 / クラウドファイアウォールは別なので合わせて許可してください。プライベートネットワーク帯域 (RFC 1918、Tailscale CGN) は信頼できる IP で source 制限を推奨します。
外部アクセス / 公開推奨
| 外部公開 | ポート | 推奨 |
|---|---|---|
| ウェブコンソール | 80, 443, 7443 | nginx/HAProxy 経由推奨 |
| ヘルスチェック | 4950 | 監視システムのみ (HTTPS) |
| MQTT (外部デバイス) | 1884 (TLS), 18884 | TLS 推奨 |
| Kafka 外部クライアント | 9094 (TLS) | TLS 必須 |
| データゲートウェイ | 5500 | API キー + TLS |
DB / メッセージング PLAINTEXT ポート / JMX は プライベートネットワークのみ に制限してください。
サポートブラウザ
ウェブコンソールは最新の標準ブラウザをサポートします。
| ブラウザ | 最小バージョン | 推奨 |
|---|---|---|
| Google Chrome | 100+ | 推奨 |
| Microsoft Edge | 100+ | ✓ |
| Firefox | 100+ | ✓ |
| Safari | 15+ | ✓ |
インストール前チェックリスト
インストール前に以下を確認してください。
- CPU 16+ vCPU、メモリ 64+ GB、データディスク 200+ GB
- データディスクが別途
/data1にマウント - OS RHEL/Rocky/Oracle 8+ または Ubuntu 20.04+
- 静的 IP 設定
-
chronyd有効化 (時刻同期) - ホスト名 +
/etc/hosts登録 - swap 無効化
-
nofile 1048576など limits 適用 -
vm.max_map_countなど sysctl 適用 - ファイアウォールポリシー (外部公開ポート明確)
- DNS 正常動作 (
getent hosts <hostname>) - インターネットアクセス または クローズドネットワークバンドル準備
次のステップ
- 迅速にインストール → ワンラインインストール (推奨)
- コンテナベースインストール → Docker インストール
- ホスト直接インストール → バイナリインストール
- ポート競合確認 → ポート構成情報