본문으로 건너뛰기

가상 머신 / 클라우드 설치

물리 H/W 가 아닌 VM (VMware / Hyper-V / KVM / Proxmox) 또는 퍼블릭 클라우드 (AWS EC2 / Azure VM / GCP) 환경에 게이트웨이를 깔 때 차이점만 정리. 신규 설치의 기본 절차는 빠른 설치 (2026.05+ 컨테이너) 입니다. H/W 전체 설치는 legacy native 박스 유지보수용으로만 참고하세요.

VM 에서 Docker 사용

2026.05+ 컨테이너 모드는 VM 안에서도 그대로 동작 — Docker 가 nested virt 가 아닌 cgroup/namespace 기반이라 VM 위에서도 native 와 같은 성능. cgroup MemoryMax=12G 가 VM 의 메모리 상한을 넘으면 조정 필요 (systemd drop-in 으로 MemoryMax=6G 등).


1. 사양 요구

등급vCPURAM디스크비고
소 (≤ 1k 태그)4 vCPU8 GB100 GB SSD개발/테스트
중 (1k–10k 태그)8 vCPU16 GB256 GB SSD + 1 TB운영 표준
대 (10k+ 태그)16 vCPU32 GB512 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) — 운영
AMIAmazon Linux 2 (Fedora 38 가 우선이지만 RHEL 계열 호환)
디스크gp3 (/opt 100 GB), gp3 (/data1 1 TB+) — io1/io2 는 Cassandra commitlog 용
Security Groupinbound 80 / 443 / 22 (관리자 IP 만), MQTT 1883 / OPC-UA 12000 (필요 시 — 보통 VPC 내부)
EFA / 향상된 네트워킹enabled (지연 시간 감소)
PlacementCluster 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 Networkingenabled
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. 더 알아보기