SteVe OCPP 서버 배포 완벽 가이드

SteVe OCPP 서버 배포 완벽 가이드

전기차 보급이 빠르게 확산됨에 따라 충전 인프라 관리는 운영자들의 핵심 과제가 되었습니다. SteVe는 OCPP 프로토콜을 지원하는 오픈소스 서버 구현체로,充电桩 네트워크를 효과적으로 관리할 수 있는 솔루션을 제공합니다. 본 가이드에서는 SteVe OCPP 서버의 배포부터 설정까지 단계별로 설명하겠습니다.

1. 배포 전 필수 준비사항

배포를 시작하기 전에 시스템 환경이 다음 조건을 충족하는지 확인해야 합니다:

  • Java 환경: JDK 21 이상
  • 빌드 도구: Maven
  • 데이터베이스: MySQL 또는 MariaDB (UTC 시간대 권장)

주의사항: 데이터베이스 설정이 배포成败를 결정합니다. MySQL 서버가 TCP 연결을 허용하도록 하고, my.cnf에서 skip-networking 옵션을 비활성화해야 합니다.

2. Docker를 통한 빠른 배포

신속한 환경 구축을 원한다면 Docker 배포를 권장합니다. 다음 명령어로 전체 서비스 스택을 시작할 수 있습니다:

docker-compose up -d

Docker 배포의 이점은 격리된 환경과 빠른 시작입니다. 기본 설정에서 웹 관리 인터페이스는 http://localhost:8180에서 접근할 수 있습니다.

3. 소스 코드 기반 전통적 배포

전통적인 배포 방식을 선호한다면 다음 단계를 따르세요.

3.1 프로젝트 소스 확보

git clone https://github.com/steve-community/steve

3.2 데이터베이스 초기화

MySQL에서 다음 초기화 스크립트를 실행합니다:

CREATE DATABASE chargingdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'chargeradmin'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON chargingdb.* TO 'chargeradmin'@'%';
FLUSH PRIVILEGES;

3.3 설정 파일 구성

src/main/resources/application-prod.properties 파일을 편집합니다. 주요 설정 항목은 다음과 같습니다:

  • 데이터베이스 연결: 실제 데이터베이스 환경에 맞게 연결 정보 설정
  • 서버 IP 주소: 서버의 정확한 IP로 설정
  • 웹 인터페이스 자격 증명: 기본 관리자 계정 정보 변경
  • HTTPS 설정: 키스토어 관련 속성 활성화 및 구성

3.4 프로젝트 빌드 및 실행

Maven으로 프로젝트를 빌드합니다:

./mvnw clean package -DskipTests

빌드 완료 후 애플리케이션을 실행합니다:

java -jar target/steve.jar --spring.profiles.active=prod

4. 핵심 기능 설정

4.1 충전기 관리 설정

SteVe는 다양한 OCPP 프로토콜 버전을 지원합니다: 1.2S, 1.2J, 1.5S, 1.5J, 1.6S, 1.6J. 충전기 추가 시 올바른 통신 주소를 설정해야 합니다:

  • SOAP 프로토콜: http://<서버IP>:<포트>/steve/services/CentralSystemService
  • WebSocket/JSON: ws://<서버IP>:<포트>/steve/websocket/CentralSystemService

4.2 보안 확장 기능

OCPP 1.6J 보안 확장은 기업급 보안 기능을 제공합니다:

  • 보안 프로파일 0-3: 비보안 모드부터 양방향 TLS 인증까지
  • 인증서 관리: 서명, 설치, 삭제 프로세스 완비
  • 보안 이벤트 모니터링: 실시간 보안 이벤트 로깅
  • 서명된 펌웨어 업데이트: 인증서 기반 검증의 암호화된 펌웨어

5. 성능 최적화 및 보안 강화

5.1 프로덕션 환경 권장 설정

  • 시간대 일관성: SteVe와 MySQL이 동일한 UTC 시간대 사용
  • 네트워크 격리: SteVe 인스턴스를 공용 네트워크에 직접 노출 금지
  • 정기 백업: 데이터베이스 백업 스케줄 수립

5.2 일반적인 문제 해결

충전기 연결 실패: chargeBox ID가 정확한지 확인하고 네트워크 연결 상태를 점검합니다.

웹 인터페이스 접근 불가: 포트 설정과 방화벽 규칙을 검증합니다.

데이터베이스 연결 오류: 데이터베이스 서비스 상태와 연결 파라미터를 확인합니다.

6. Kubernetes 클러스터 배포

대규모 배포가 필요한 경우 Kubernetes를 지원합니다:

  1. Docker 이미지를 빌드하여 프라이빗 레지스트리에 푸시
  2. k8s/yaml/Deployment.yaml의 이미지 태그 수정
  3. 네임스페이스 생성 후 설정 파일 적용

7. 실제 활용 시나리오

7.1 충전 상태 실시간 모니터링

커넥터 상태 페이지를 통해 모든 충전기의 연결 상태와 충전 진행률을 실시간으로 확인할 수 있습니다.

7.2 사용자 및 태그 관리

완전한 사용자 인증 체계와 RFID 카드 관리 기능을 제공하여 충전 서비스의 보안을 보장합니다.

7.3 거래 데이터 분석

상세한 거래 기록과 통계 분석을 통해 운영 의사결정을 데이터 기반으로 수행할 수 있습니다.

8. 운영 모니터링 및 문제 해결

안정적인 시스템 운영을 위해 모니터링 체계를 구축하는 것이 필수적입니다:

  • 로그 분석: 시스템 로그를 정기적으로 검토하고 이상 패턴 식별
  • 성능 모니터링: 시스템 리소스 사용량 모니터링
  • 보안 감사: 보안 이벤트 로그 정기 검토

9. 고급 기능 확장

비즈니스 성장에 따라 다음 확장 옵션을 고려할 수 있습니다:

  • 멀티테넌시 지원: 다양한 사업자를 위한 독립된 관리 공간 제공
  • API 통합: 웹 API를 통한 외부 시스템 데이터 연동
  • 사용자 정의 리포트: 비즈니스 요구사항에 맞는 분석 리포트 제작

10. 배포 성공 검증

배포 완료 후 다음 단계로 시스템 상태를 검증합니다:

  1. 웹 관리 인터페이스에 접근하여 설정한 자격 증명으로 로그인
  2. 테스트용 충전기를 추가하고 통신 연결 확인
  3. 충전 시뮬레이션을 실행하여 기능 완전성 검증

본 가이드를 참조하면 SteVe OCPP 서버의 성공적인 배포가 가능할 것입니다. Docker 기반 빠른 배포 maupun 소스 코드 빌드 방식 모두 안정적인 충전기 관리 플랫폼을 구축할 수 있습니다. 실제 운영 시에는 특정 비즈니스 요구사항에 따라 설정을 지속적으로 최적화하여 시스템이 항상 최상의 상태를 유지하도록 관리해야 합니다.

태그: ocpp java steve ev-charging docker

5월 21일 05:54에 게시됨