メインコンテンツまでスキップ

システム要件

PlantPulse プラットフォームを安定的に運用するためのハードウェア / OS / ネットワーク要件をご案内します。検証済みの標準環境を基準に作成されています。

概要

区分最小 (開発 / テスト)標準 (運用)大規模
CPU16 vCPU32 vCPU48+ vCPU
メモリ64 GB128 GB256 GB+
OS ディスク200 GB256 GB512 GB
データ ディスク200 GB (SSD)1 TB (NVMe SSD)4 TB+ (NVMe SSD)
ネットワーク1 Gbps1 Gbps10 Gbps
OSRHEL/Rocky/Oracle 8.xRHEL/Rocky/Oracle 9.x同一
JDKOpenJDK 21 LTSOpenJDK 21 LTSOpenJDK 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 GBSSDOS、バイナリ
/data11 TB+NVMe SSD 必須メインデータ
/data2 ~ /dataN1 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 Linux8.x, 9.x推奨
RHEL8.x, 9.x推奨
Rocky Linux8.x, 9.x推奨
AlmaLinux8.x, 9.x
Ubuntu20.04+
Amazon Linux2, 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, 7443nginx/HAProxy 経由推奨
ヘルスチェック4950監視システムのみ (HTTPS)
MQTT (外部デバイス)1884 (TLS), 18884TLS 推奨
Kafka 外部クライアント9094 (TLS)TLS 必須
データゲートウェイ5500API キー + TLS

DB / メッセージング PLAINTEXT ポート / JMX は プライベートネットワークのみ に制限してください。

サポートブラウザ

ウェブコンソールは最新の標準ブラウザをサポートします。

ブラウザ最小バージョン推奨
Google Chrome100+推奨
Microsoft Edge100+
Firefox100+
Safari15+

インストール前チェックリスト

インストール前に以下を確認してください。

  • 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>)
  • インターネットアクセス または クローズドネットワークバンドル準備

次のステップ