메인 콘텐츠로 건너뛰기
이 문서는 EKB 제품의 성공적인 온프레미스 설치 및 배포에 필요한 사전 배포 전제 조건, 확인 단계, 고려 사항을 설명합니다. 배포를 진행하기 전에 고객의 환경이 올바르게 구성되고 모든 필수 요구 사항을 충족하는지 확인하기 위한 포괄적인 체크리스트 역할을 합니다.

전제 조건

접근 요구 사항

  • 서버 접근:
    • sudo 권한으로 배포 서버에 접근할 수 있는지 확인합니다.
    • 모든 필요한 네트워크 경로가 안전한 VPN 또는 전용 네트워크 구성을 통해 설정되어 있는지 확인합니다.
  • 사용자 권한:
    • 배포 팀에 필요한 접근 권한이 부여되어 있는지 확인합니다.
    • 필요한 2-factor 인증(2FA) 또는 보안 토큰이 설정되어 있는지 확인합니다.

시스템 요구 사항

운영 체계:                  Ubuntu 22 또는 RHEL 8.10 하드웨어 사양:            각 배포 티어별로 하드웨어가 다음 요구 사항을 충족하거나 초과하는지 확인합니다:
티어코어RAM (GB)SSD
SMALL16641TB
MEDIUM321282TB
LARGE맞춤형맞춤형맞춤형
  • GPU (EKB 플랫폼과 동일한 머신에 LLM을 배포하는 경우 필요)
  • SMALL: ~500(100 동시) 사용자를 단일 VM 16 코어, 64gb ram, 1TB SSD로 지원할 수 있습니다. 이 머신은 월 ~$600 비용이 듭니다. 이는 최소 규모 배포입니다.
  • MEDIUM: ~2000(500 동시) 사용자를 더 큰 머신 32 코어, 128gb ram, 2TB SSD로 지원할 수 있습니다. 이 머신은 월 ~$1,200 비용이 듭니다.
  • LARGE: ~10000(1000+ 동시) 사용자는 인프라가 요구 사항을 지원할 수 있도록 컨테이너에 걸쳐 배포해야 합니다. 일반적으로 최소 월 $2,000 비용이 듭니다. 추가 1,000 활성 사용자당 월 $2,000를 계산하는 것이 좋습니다. 이는 완전히 분산된 배포입니다.

배포 도구 및 소프트웨어 의존성

  • 배포 스크립트:
    • 검증되고 버전 관리되는 Bash 배포 스크립트.
  • 의존성 관리 도구:
    • Python 3
    • Git (최신 버전)
    • Docker (v27.1.1) 또는 Podman
  • 추가 도구 (선택 사항):
    • 고객의 모니터링 요구 사항에 따른 로깅 및 모니터링 도구(예: ELK Stack, Prometheus, Grafana).

자격 증명 및 키

  • 서버 자격 증명:
    • 모든 서버 접근 자격 증명이 최신 상태이고 안전하게 저장되어 있는지 확인합니다.
  • 애플리케이션 API 키 및 라이선스:
    • 모든 애플리케이션별 API 키와 라이선스(예: OpenAI, SERP, Sentry)가 사용 가능하고 유효한지 확인합니다.

사전 배포 체크리스트

하드웨어 및 시스템 확인

고객의 하드웨어 및 시스템 구성이 사양과 일치하는지 확인합니다:
# CPU 정보 확인

lscpu                         # Ubuntu와 RHEL 모두에서 작동

cat /proc/cpuinfo             # 더 자세한 CPU 정보


# 메모리 사용량 확인

free -h                       # 사람이 읽을 수 있는 형식의 메모리 사용량

cat /proc/meminfo             # 상세 메모리 정보


# 스토리지 사용량 확인
df -h                         # 디스크 사용량 표시

lsblk                         # 블록 디바이스 및 파티션 목록

3.2 소프트웨어 및 의존성 확인

모든 필요한 소프트웨어 구성 요소가 설치되고 올바르게 버전 관리되는지 확인합니다:

# Docker 버전 확인

docker --version              # Ubuntu와 RHEL 모두에 적용


# Docker Compose 버전 확인
docker compose version        # 최신 Docker 설정용

docker-compose --version      # 이전 설치용

```

# Python 버전 확인

python3 --version             # Python 3에 대한 선호 확인

python --version              # python3를 사용할 수 없는 경우 대체


# Git 버전 확인
git --version                 # Ubuntu와 RHEL 모두에 유효


3.3 네트워크 및 연결 확인

네트워크가 올바르게 구성되고 외부 의존성 또는 업데이트를 위한 충분한 인터넷 연결이 있는지 확인합니다:

# 인터넷 연결 가용성 확인

ping -c 4 google.com          # 네트워크 연결 확인을 위해 Google에 ping

curl -Is https://www.google.com | head -n 1  # curl을 사용한 대체 확인

3.4 추가 확인

서비스 및 포트
서비스경로매개변수내부 포트외부 포트
프론트엔드/FRONTEND_SUFFIX3000
Nginx/80, 443
백엔드/backendBACKEND_SUFFIX8001
자동화 도구/automatorAUTOMATOR_SUFFIX8002
Redis6379
RabbitMQ5672, 15672
Supabase Kong API 게이트웨이/supabaseSUPABASE_SUFFIX8000, 84438000, 8443 (관리자 전용)
Supabase Postgres6543
PostgreSQL (자동화 도구)5433
Redis (자동화 도구)6380
Ollama11434— (로컬에 Ollama를 배포하는 경우에만)
프로토콜 지원
서비스HTTPHTTPSWebSocket
프론트엔드
Nginx
백엔드
자동화 도구
Redis
RabbitMQ
Supabase Kong API 게이트웨이
Supabase Postgres
PostgreSQL (자동화 도구)
Redis (자동화 도구)
Ollama
참고: 모든 내부 머신은 서로 자유롭게 통신할 수 있어야 합니다. SSL(HTTPS) 연결을 사용하는 것이 좋습니다; PoC 중에는 HTTP가 지원됩니다.
방화벽 및 보안 설정: 방화벽 규칙이나 보안 그룹이 필요한 트래픽을 허용하는지 확인합니다.

일반 아키텍처

general-arc.png

아키텍처 다이어그램 – 온프레미스

명시된 전제 조건 리소스 할당이 있는 단일 가상 머신 박스의 배포 아키텍처 흐름 general-arc.png

AWS 클라우드 배포를 위한 배포 아키텍처 흐름

general-arc.png general-arc.png