# EW11 → 인터넷(AWS) 데이터 전송 검토 - 작성일: 2026-06-03 - 목적: ERV 각실제어 데이터(신규 PC 대시보드 0xAA 프로토콜)를 **EW11(RS-485↔WiFi)** 로 인터넷 서버에 전송 - 대상 장비: Elfin EW11A (Hi-Flying) - 관련 문서: - `EW11A manual/IOT_Device_Series_Software_Funtion_20250328.pdf` - `TestProgram/PC_ERV_Protocol.md` (전송할 프레임 규격) - `260526_EW11_검토.md` (기존: 로컬 HOMENET 연결 검토) --- ## 1. 결론 요약 **EW11 사용 가능.** 가장 적합한 방식은 **EW11 = TCP Client → AWS 자체 서버(EC2/Lightsail)** 이며, 우리 0xAA 바이너리 프레임이 **투명 전송(Transparent)** 으로 그대로 서버에 도달한다(PC 대시보드의 파서/프로토콜 코드를 서버에서 재사용 가능). - **AWS IoT Core 직결은 비권장** — IoT Core는 MQTT 연결 시 **X.509 클라이언트 인증서 기반 mutual TLS**(또는 커스텀 권한부여자)가 필수인데, EW11의 TLS는 매뉴얼상 **"no certificate method"**(클라이언트 인증서 제시 불가)라 직접 연결이 곤란하다. - 표준 IoT 스택이 필요하면 **EC2에 Mosquitto MQTT 브로커**를 띄우고 EW11 MQTT Client(user/password + 서버 TLS)로 붙이는 방식이 차선. --- ## 2. EW11 네트워크 기능 (매뉴얼 확인) | 기능 | 지원 | 비고 | |---|---|---| | TCP Client / TCP Server | ✅ | Client 모드로 외부 서버 접속 가능 | | UDP Client / Server | ✅ | | | Multiple Socket | ✅ | 최대 5 소켓 동시 | | HTTP (GET/POST) | ✅ | UART 데이터를 HTTP 본문/쿼리로 래핑, 헤더 커스텀 | | WebSocket Client | ✅ | | | **MQTT Client** | ✅ | Version 4(MQTT 3.1.1), Client ID/User/Password, Sub/Pub Topic, QoS | | 암호화 | ✅ | **AES**(CBC, 16자 키), **DES3**(24자), **TLS(인증서 없음)** | | TCP Keepalive / Reconnect | ✅ | 연결 끊김 자동 재접속 | | Register / Heartbeat | ✅ | 접속 시 장치 ID 전송, 주기적 하트비트 | | NTP | ✅ | 시각 동기 | > ⚠️ **TLS 제약**: "TLS use no certificate method" — 서버/클라이언트 인증서 검증을 하지 않는 단순 암호화. → AWS IoT Core(mutual TLS 강제) 직결 불가, HTTPS(API Gateway) 서버 인증서 검증도 신뢰 어려움. --- ## 3. 전송 토폴로지 ``` ERV 메인보드 (RS-485, 0xAA STATUS/ACK 프레임, 115200 8N1) │ A / B ┌────────┐ │ EW11 │ WiFi └────────┘────────── [현장 공유기] ──── 인터넷 ────┐ (TCP Client / MQTT Client, AES 암호화) │ ▼ ┌──────────────┐ │ AWS 서버 │ │ 0xAA 파서 + │ │ 저장 + 웹표시 │ └──────────────┘ ``` - PC 대시보드는 (a) 기존처럼 로컬 시리얼로 직결하거나, (b) 동일 0xAA 프레임을 AWS 서버에서 받아 보는 형태로 확장 가능. - 양방향(제어 CTRL_*)도 같은 TCP 소켓으로 가능(서버→EW11→ERV). --- ## 4. AWS 서버 옵션 비교 | 옵션 | 구성 | 우리 프로토콜 적합성 | 비용(개략) | 평가 | |---|---|---|---|---| | **A. EC2/Lightsail + 경량 TCP 서버** | EW11=TCP Client → 공인IP:Port. 서버가 0xAA 프레임 파싱·저장·웹표시 | ★★★ 바이너리 그대로 투명 전송, PC 파서 재사용 | t4g.nano ~$2~3/월, Lightsail $3.5~5/월 | **권장 1** | | **B. EC2 + Mosquitto(MQTT)** | EW11=MQTT Client(user/pass+TLS) → up/down 토픽 | ★★ 표준 IoT, 장치 다수 확장 유리 | EC2 비용 + 운영 | 권장 2 | | C. AWS IoT Core 직결 | EW11=MQTT Client | ✗ 클라이언트 인증서 필요(EW11 미지원) | 종량제 | **비권장**(브리지 필요) | | D. HTTP→API Gateway+Lambda+DynamoDB | EW11=HTTP POST | △ HTTPS 인증서 이슈 + 바이너리 본문 번거로움 + 주기 폴링형 펌웨어 필요 | 서버리스 종량제 | 부적합 | ### 권장안 상세 (옵션 A) 1. **AWS Lightsail**(가장 운영이 간단) 또는 **EC2 t4g.nano** 1대 + 고정 공인 IP. 2. 그 위에 경량 TCP 서버(Node.js/Python) 실행 → 포트 개방. 3. EW11을 **TCP Client** 로 설정(서버 공인 IP/포트, AES 암호화, Keepalive/Register 활성). 4. 서버는 `PC_ERV_Protocol.md` 와 동일한 파서(STX 0xAA → CMD/LEN/PAYLOAD → CRC16-MODBUS 검증)로 STATUS(0x81) 73B 해석 → DB/파일 적재 → 간단 웹대시보드 또는 API 제공. --- ## 5. EW11 설정 포인트 | 항목 | 권장값 | |---|---| | Serial Baudrate | **115200** (신규 PC 프로토콜 기준. 기존 HOMENET 9600과 다름 주의) | | Data/Parity/Stop | 8 / None / 1 | | Protocol | **TCP Client** (서버 공인 IP/포트) — 또는 MQTT | | Buffer Size | ≥ 최대 프레임(STATUS 78B 이상 여유) | | UART Auto-Frame | Frame Time(gap) 또는 Frame Length로 프레임 경계 정렬 (단, 프로토콜에 LEN 필드 있어 서버 재조립도 가능) | | Security | AES(16자 키) 활성 + 서버 동일 키 복호화 | | Keepalive / Reconnect / Heartbeat | 활성 | | NTP | 활성(타임스탬프 정확도) | 설정 도구: IOTService (`IOTService3.1.0_20220926/`) 또는 내장 웹페이지. --- ## 6. 보안 / 위험 평가 | 항목 | 평가 / 대책 | |---|---| | EW11 TLS 신뢰성 | "no certificate" → MITM 방어 약함. **AES 암호화 병행** 필수 | | 공인 포트 노출 | EC2 보안그룹 inbound를 **현장 공인 IP로 제한**, 불필요 포트 폐쇄 | | 권장 폐쇄망 | 가능하면 VPN / 4G 라우터 / 사설망 경유 | | WiFi 끊김 | EW11 자동 재접속 + 서버측 연결 상태 모니터링 | | 응답 지연 | WiFi+인터넷 RTT 수십~수백 ms. 모니터링/시나리오 제어엔 충분, 실시간 폐루프 제어엔 부적합 | | 트래픽 | STATUS 78B를 1초 주기 전송 시 ≈ 200MB/월 → 비용 영향 미미 | --- ## 7. 권장 진행 순서 1. AWS **Lightsail nano**(또는 EC2 t4g.nano) 1대 생성 + 고정 IP. 2. 경량 TCP 서버 작성(0xAA 파서는 `DashboardProtocol` 로직 이식) → 수신 로그 확인. 3. EW11 1대 확보 → IOTService로 TCP Client + AES + 115200 설정. 4. **루프백 시험**: PC(0xAA 프레임 송신) → EW11 → 서버 수신 파싱 검증. 5. **실연동**: ERV → EW11 → 서버 STATUS 적재 확인. 6. 보안그룹/암호화/재접속 안정성 시험 후 운영. --- ## 8. 비용 메모 (2026-06 기준, 변동 가능) - **EC2 t4g.nano**: us-east-1 약 $2~3/월 (ARM Graviton, 0.5GB RAM). t4g.small은 2026-12-31까지 750h/월 무료 체험. - **신규 AWS 계정**: 12개월 t3.micro 750h/월 무료. - **Lightsail**: 최저 $3.5/월(IPv6, 512MB/2vCPU/20GB/1TB), 공인 IPv4 포함 $5/월. 고정요금이라 가장 단순. - AWS IoT Core: 종량제(연결/메시지/규칙별 과금). 본 케이스에선 비권장. --- ## 9. 참고 - EW11 소프트웨어 기능: `EW11A manual/IOT_Device_Series_Software_Funtion_20250328.pdf` (1.4 Working Mode, 1.5 암호화, 1.17 Register, 1.18 Heartbeat) - AWS IoT Core 클라이언트 인증: https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html - 전송 프레임 규격: `TestProgram/PC_ERV_Protocol.md`