가상 머신 / 클라우드 설치
물리 H/W 가 아닌 VM (VMware / Hyper-V / KVM / Proxmox) 또는 퍼블릭 클라우드 (AWS EC2 / Azure VM / GCP) 환경에 게이트웨이를 깔 때 차이점만 정리. 신규 설치의 기본 절차는 빠른 설치 (2026.05+ 컨테이너) 입니다. H/W 전체 설치는 legacy native 박스 유지보수용으로만 참고하세요.
2026.05+ 컨테이너 모드는 VM 안에서도 그대로 동작 — Docker 가 nested virt 가 아닌 cgroup/namespace
기반이라 VM 위에서도 native 와 같은 성능. cgroup MemoryMax=12G 가 VM 의 메모리 상한을 넘으면
조정 필요 (systemd drop-in 으로 MemoryMax=6G 등).
1. 사양 요구
| 등급 | vCPU | RAM | 디스크 | 비고 |
|---|---|---|---|---|
| 소 (≤ 1k 태그) | 4 vCPU | 8 GB | 100 GB SSD | 개발/테스트 |
| 중 (1k–10k 태그) | 8 vCPU | 16 GB | 256 GB SSD + 1 TB | 운영 표준 |
| 대 (10k+ 태그) | 16 vCPU | 32 GB | 512 GB NVMe + 2 TB | 대규모 |
CPU 오버커밋 주의 — 호스트가 CPU 를 1:4 이상 오버커밋하면 Cassandra commitlog flush 가 지연돼 알람 형태로 나타남. dedicate 권장.
2. 디스크 구성 — 권장
/opt 와 /data1 을 별도 디스크 (또는 별도 LVM 볼륨) 으로 분리하면:
- 업그레이드 시
/opt/kopens를 갈아끼워도/data1/pp-data(사용자 flows / Cassandra / 백업) 보존 - 디스크 IO 부하 분리 (Cassandra commitlog vs sstable)
/dev/sda → / (OS) ~ 50 GB
/dev/sdb → /opt ~ 100 GB SSD (게이트웨이 코드)
/dev/sdc → /data1 ~ 1 TB+ (시계열 데이터)
3. VMware vSphere
| 권장 |
|---|
| 가상 H/W 버전 ≥ 14 (ESXi 6.7+) |
| VMXNET3 NIC (Intel E1000 보다 빠름) |
| paravirtual SCSI (LSI Logic 보다 처리량) |
| CPU reservation 활성화 (Cassandra 안정성) |
| Memory reservation 활성화 — 풀 sized (밸룬 비활성화) |
tools.guestlib.enableHostInfo = TRUE 추가 — 호스트 시각 동기 |
4. KVM / Proxmox
| 권장 |
|---|
cpu host 모드 (passthrough) |
virtio NIC + virtio-blk / virtio-scsi |
qemu-guest-agent 설치 (게스트 헬스 체크) |
| Memory ballooning 비활성화 (Cassandra heap 안정성) |
디스크 캐시 모드 = none (지연 시간 ↓) 또는 writeback (처리량 ↑) |
5. Hyper-V
| 권장 |
|---|
| Generation 2 (UEFI) |
| Dynamic Memory 비활성화 (Cassandra heap 가변 → swap 발생) |
| Integration Services 최신 버전 (시각 동기) |
가상 NIC 의 Adapter Type = Synthetic (Legacy 아님) |
6. 퍼블릭 클라우드
6.1 AWS EC2
| 항목 | 권장 |
|---|---|
| 인스턴스 | m5.xlarge (4 vCPU / 16 GB) — 중소 / m5.2xlarge (8/32) — 운영 |
| AMI | Amazon Linux 2 (Fedora 38 가 우선이지만 RHEL 계열 호환) |
| 디스크 | gp3 (/opt 100 GB), gp3 (/data1 1 TB+) — io1/io2 는 Cassandra commitlog 용 |
| Security Group | inbound 80 / 443 / 22 (관리자 IP 만), MQTT 1883 / OPC-UA 12000 (필요 시 — 보통 VPC 내부) |
| EFA / 향상된 네트워킹 | enabled (지연 시간 감소) |
| Placement | Cluster placement group (대규모) |
AWS PrivateLink / VPC Peering 으로 온프레 PLC 망 과 연결.
6.2 Azure VM
| 항목 | 권장 |
|---|---|
| 사이즈 | D4s_v5 (4 vCPU / 16 GB) — 중소 / D8s_v5 — 운영 |
| 디스크 | Premium SSD (P30 / P40) for /data1 |
| Accelerated Networking | enabled |
| ExpressRoute / VPN | 온프레 PLC 와 연결 |
6.3 GCP
| 항목 | 권장 |
|---|---|
| 머신타입 | e2-standard-4 — 중소 / n2-standard-8 — 운영 |
| 디스크 | pd-ssd (Cassandra commitlog 1k IOPS 보장) |
| Cloud Interconnect / VPN | 온프레 연결 |
7. 클라우드-온프레 PLC 망 연결
PLC 는 보통 온프레 (공장 내) 에 있고 게이트웨이가 클라우드에 있으면 직접 통신 불가. 두 가지 패턴:
패턴 A — 클라우드 게이트웨이 + 온프레 게이트웨이
[PLC] ─── [온프레 게이트웨이] ─── (Sparkplug B / MQTT) ─── [클라우드 게이트웨이] ─── [상위 플랫폼]
온프레 게이트웨이가 PLC 수집 + Sparkplug 발행, 클라우드 게이트웨이가 수신/통합. 권장 패턴.
패턴 B — VPN / SD-WAN 으로 PLC 망 직접 도달
[PLC] ─── [VPN 게이트웨이] ──VPN── [클라우드 게이트웨이] ─── [상위 플랫폼]
지연시간 증가 + 회선 비용. 작은 사이트 1-2개에만 권장.
8. 부팅 자동화 (cloud-init)
VM / 클라우드에서 인스턴스 부팅 시 자동 설치 — cloud-init user-data 예시:
#cloud-config
package_update: true
write_files:
- path: /root/pp-edge-install.env
owner: root:root
permissions: '0600'
content: |
export EDGE_ID=EDGE_VM_001
export SITE_ID=SITE_00001
export SERVER_HOST=192.168.0.41
export SERVER_API_KEY=<platform-api-key>
runcmd:
- mkdir -p /data1 /opt/kopens
- . /root/pp-edge-install.env && bash < <(curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh)
- bash /opt/kopens/install/bin/health.sh
운영 환경에서는 고정 edge.id / 고정 site.id 를 cloud-init 에서 명시적으로 지정.
9. 자주 빠지는 함정 (VM / 클라우드 특화)
| 증상 | 원인 / 해결 |
|---|---|
| Cassandra 가 자주 죽음 | 메모리 ballooning 활성화. 고정 메모리로 변경 |
| MQTT keepalive 타임아웃 자주 | 클라우드의 NAT idle timeout 짧음. app.properties 의 keepalive 60→30 초 |
| 부팅 후 시각이 1970년 | 가상 시각 동기 비활성화. VMware tools / qemu-guest-agent 설치 |
| 디스크 IO 가 느림 | gp2 / standard HDD. gp3 또는 SSD 로 |
| OPC-UA 인증서 매번 invalid | 가상 호스트명 변경 (DHCP). 인증서 SAN 에 모든 가능 IP/호스트명 포함 |
| 네트워크 throughput 부족 | virtio / VMXNET3 / Accelerated Networking 활성화 안 함 |
10. 더 알아보기
- 표준 설치: 빠른 설치
- 프로덕션 인수 기준: 프로덕션 인수 기준
- legacy native: (legacy) H/W 전체 설치
- 폐쇄망: 오프라인 / 폐쇄망 설치
- 네트워크 토폴로지: 네트워크 구성 (NIC 배치)
- 설치 후 체크리스트: 설치 직후 체크리스트