DJI FlightHub 2 퍼블릭 클라우드 배포 가이드
이 가이드는 Amazon Web Services (AWS) 및 Microsoft Azure 클라우드 서버에 FlightHub 2 On-Premises를 배포하는 권장 방법을 설명합니다. 서버 구성 요구 사항, 설치 전 준비, 종속성 설치, Azure vGPU 드라이버 구성을 다룹니다.
1서버 구성 요구 사항
연결할 Dock 수, Terra 필요 여부, 실제 스토리지 및 라이브스트림 요구 사항에 따라 클라우드 서버 구성을 선택하십시오.
1.1 기본 하드웨어 요구 사항
권장 하드웨어 구성 및 용량은 다음과 같습니다.
| 구성 항목 | 권장 구성 | 구성 참고 사항 |
|---|---|---|
| CPU | 최소 8코어부터 시작 | Dock 5대를 연결할 경우 8코어부터 시작하고, Terra가 필요하면 최소 12코어로 구성하십시오. Dock 10대 이상을 연결할 경우 최소 16코어를 권장하며, Terra가 필요하면 최소 20코어로 구성하십시오. |
| 메모리 | 최소 32 GB부터 시작 | Dock을 10대보다 많이 연결할 경우 계획한 메모리 용량을 늘리십시오. |
| 데이터 디스크 | 시스템 디스크: 512 GB 이상 데이터 디스크: 2,048 GB 이상 | 실제 미디어 저장 요구 사항에 따라 데이터 디스크 용량을 결정하되, 최소 2,048 GB부터 시작하십시오. |
| 네트워크 대역폭 | 라이브스트림 요구 사항에 따라 구성 | 동시 라이브스트림 요구 사항에 따라 대역폭을 선택하십시오. 동시 라이브스트림마다 5 Mbps를 확보하고, 전체적으로 약 10%의 추가 채널 대역폭을 확보하십시오. |
1.2 기본 소프트웨어 요구 사항
운영 체제, 컨테이너 환경 및 GPU 관련 구성 요소는 다음과 같습니다.
| 소프트웨어 구성 요소 | 버전 요구 사항 또는 구성 방법 | 참고 사항 |
|---|---|---|
| 운영 체제 | Ubuntu Server 24.04 LTS | AWS 및 Azure의 권장 구성은 모두 Ubuntu 24.04를 사용합니다. |
| NVIDIA Container Toolkit | Terra 모델 재구성을 배포할 때만 필요 | 배포 보조 스크립트를 사용하여 종속성을 준비하십시오. |
| NVIDIA 드라이버 | Terra 모델 재구성을 배포할 때만 필요 | 일반 환경에서는 sudo ubuntu-drivers devices를 사용하여 권장 드라이버를 확인하십시오. Azure vGPU 환경은 전용 드라이버 구성 절차를 참조하십시오. |
1.3 AWS 권장 구성
- 기본 EC2 인스턴스
c5.4xlarge. 미디어 저장 요구 사항이 더 높으면c5d.4xlarge를 선택하십시오- 스토리지 요구 사항
- io1부터 시작하고, 미디어 파일 읽기, 쓰기 및 작업이 빈번하면 io2를 고려하십시오
- 디스크 용량
- 시스템 디스크: 최소 500 GB. 데이터 디스크: 2,048 GB부터 시작. 많은 비행 미디어를 저장해야 하면 용량을 더 늘리십시오
- 운영 체제
- Linux (Ubuntu 24.04)
- 기본 EC2 인스턴스
g5.8xlarge- 스토리지 요구 사항
- io1부터 시작하고, 미디어 파일 읽기, 쓰기 및 작업이 빈번하면 io2를 고려하십시오
- 디스크 용량
- 시스템 디스크: 최소 500 GB. 데이터 디스크: 2,048 GB부터 시작. 많은 비행 미디어를 저장해야 하면 용량을 더 늘리십시오
- 운영 체제
- Linux (Ubuntu 24.04)
1.4 Azure 권장 구성
- 기본 VM
Standard_D16s_v6- 스토리지 요구 사항
- Premium SSD부터 시작하고, 미디어 파일 읽기, 쓰기 및 작업이 빈번하면 Premium SSD v2를 고려하십시오
- 디스크 용량
- 시스템 디스크: 최소 500 GB. 데이터 디스크: 2,048 GB부터 시작. 많은 비행 미디어를 저장해야 하면 용량을 더 늘리십시오
- 운영 체제
- Linux (Ubuntu 24.04)
- 기본 VM
Standard NV36ads A10 v5- 스토리지 요구 사항
- Premium SSD부터 시작하고, 미디어 파일 읽기, 쓰기 및 작업이 빈번하면 Premium SSD v2를 고려하십시오
- 디스크 용량
- 시스템 디스크: 최소 500 GB. 데이터 디스크: 2,048 GB부터 시작. 많은 비행 미디어를 저장해야 하면 용량을 더 늘리십시오
- 운영 체제
- Linux (Ubuntu 24.04)
2설치 전 준비
설치를 시작하기 전에 다음 준비를 완료하십시오.
- 라이선스 및 설치 패키지 다운로드 URL 확보: 절차는 "라이선스 및 설치 패키지 다운로드"를 참조하십시오.
- 배포 보조 스크립트 확보: install_helper.sh를 다운로드하여 대상 클라우드 서버에 업로드하십시오.
- 네트워크 환경 준비: APT 등의 도구가 종속성 패키지와 필요한 파일을 가져올 수 있도록, 설치 중에 클라우드 서버가 필요한 소프트웨어 저장소 및 다운로드 URL에 접근할 수 있는지 확인하십시오.
- 포트 사용 가능 여부 확인: 배포에 필요한 포트를 다른 서비스가 사용하고 있지 않은지 확인하십시오. 포트 요구 사항은 "네트워크 요구 사항"을 참조하십시오.
명령 실행 환경
SSH를 통해 대상 클라우드 서버에 로그인하고, 배포 보조 스크립트가 있는 디렉터리에서 이후 스크립트 명령을 실행하십시오. 시스템 구성 또는 소프트웨어 설치 명령은 sudo 권한이 있는 계정으로 실행하십시오.
3환경 확인 및 종속성 설치
3.1 스크립트 실행 권한 부여
배포 보조 스크립트를 업로드한 후 다음 명령을 실행하십시오.
chmod +x install_helper.sh
3.2 설치 전 검사 실행
check 명령을 실행하여 운영 체제와 현재 환경이 설치 요구 사항을 충족하는지 확인하십시오.
sudo ./install_helper.sh check
검사 출력 예시는 다음과 같습니다. 실제 출력은 서버 환경에 따라 다를 수 있습니다.
Starting pre-install read-only checks.
Platform check passed: Ubuntu 24.04.4 LTS (x86_64)
[Check] Ubuntu apt candidate versions
chrony detected, skipping systemd-timesyncd candidate check.
Pass: resolvable install candidates exist for curl, aria2 and verification tools (read-only).
[Check] apt install transaction
Pass: current apt state can resolve installation dependencies (dry-run).
[Check] Time synchronization service
chrony detected, skipping systemd-timesyncd.
...
검사 실패 시 조치
실패한 검사 항목(일반적으로 빨간색으로 표시)이 있으면 안내에 따라 원인을 조사하고 문제를 해결한 후 검사를 다시 실행하십시오. 이후 배포에 영향을 주지 않도록 설치를 계속하기 전에 이러한 문제를 해결하십시오.
3.3 종속성 설치
검사를 통과하면 다음 명령을 실행하여 종속성 패키지를 설치하십시오.
sudo ./install_helper.sh pre_install
설치 중 스크립트에서 Terra 관련 구성 요소를 설치할지 묻습니다.
是否需要安装 Terra(含 Nvidia driver 和 toolkit)?
Install Terra (including Nvidia driver and toolkit)? [y/n]:
- Terra가 필요한 경우:
y를 입력한 후 Enter 키를 누르십시오. - Terra가 필요하지 않은 경우:
n을 입력한 후 Enter 키를 누르십시오.
Terra 관련 종속성을 설치할 때 NVIDIA 드라이버를 다운로드하고 로컬에서 컴파일해야 할 수 있습니다. 시간이 걸릴 수 있으므로 설치가 완료될 때까지 기다리십시오.
Azure vGPU 환경
Azure vGPU를 사용하는 경우 호환되는 NVIDIA 드라이버를 수동으로 설치하십시오. "드라이버 구성" 섹션의 전용 드라이버 구성을 완료한 후 GPU 상태를 확인하십시오.
Terra 관련 종속성을 설치하도록 선택한 경우의 출력 일부는 다음과 같습니다. 드라이버 이름과 버전은 실제 서버 환경에 따라 달라집니다.
[安装 / Install] nvidia-driver-595-open
...
完成 / Done: nvidia-driver-595-open.
Terra 安装完成 / Terra installation completed.
pre_install 完成 / pre_install completed.
3.4 GPU 상태 확인 (Terra 사용 시)
일반 GPU 환경에서는 드라이버를 설치한 후 다음 명령을 실행하십시오.
nvidia-smi -L > /dev/null && echo "success"
success가 출력되면 GPU 조회 명령이 정상적으로 실행된 것입니다. 이 메시지가 표시되지 않으면 드라이버 설치 상태와 명령이 반환한 오류를 확인하십시오.
Terra 배포를 선택하지 않았다면 이 확인을 건너뛰십시오. 외부 데이터 디스크를 사용하는 경우 먼저 "외부 데이터 디스크 마운트" 섹션을 완료하십시오. 사용하지 않는 경우 "설치 패키지 확보 및 압축 해제" 섹션으로 이동하여 설치 패키지를 확보하십시오. Azure vGPU 환경에서는 먼저 다음 섹션을 완료하십시오.
4Azure vGPU 드라이버 구성
이 섹션은 NVIDIA 드라이버 구성이 필요한 Azure vGPU 인스턴스에 적용됩니다. 다른 환경에서는 외부 데이터 디스크를 사용하는 경우 "외부 데이터 디스크 마운트" 섹션으로, 사용하지 않는 경우 "설치 패키지 확보 및 압축 해제" 섹션으로 이동하십시오.
사용하는 vGPU 모델과 호환되는 Azure GRID 드라이버를 선택하십시오. 드라이버 선택 및 설치 요구 사항은 Microsoft 공식 문서 "Linux를 실행하는 N 시리즈 VM에 NVIDIA GPU 드라이버 설치"를 참조하십시오.
이 작업의 영향
다음 작업에는 기존 NVIDIA 드라이버 제거와 서버 재시작이 포함됩니다. GPU 서비스 중단이 허용되는 시점에 실행하고, 서버가 재시작되면 SSH를 통해 다시 연결하십시오.
4.1 기존 NVIDIA 드라이버 제거
sudo apt-get purge -y 'nvidia-*' 'libnvidia-*'
sudo apt-get autoremove -y
4.2 빌드 도구 설치
sudo apt update && sudo apt install -y build-essential
4.3 호환되는 Azure GRID 드라이버 다운로드
현재 인스턴스에 맞는 드라이버 다운로드 URL을 확인한 후 다음 명령을 실행하십시오. <azure_grid_driver_url>을 실제 다운로드 URL로 바꾸고 양쪽 따옴표는 유지하십시오.
wget -O NVIDIA-grid-azure.run "<azure_grid_driver_url>"
다운로드 URL 예시: NVIDIA-Linux-x86_64-595.91.07-grid-azure.run. 이 URL은 예시로만 제공됩니다. 사용하기 전에 Microsoft 공식 문서를 참조하여 현재 인스턴스와의 호환성을 확인하십시오.
4.4 드라이버 설치 및 서버 재시작
sudo chmod +x NVIDIA-grid-azure.run
sudo ./NVIDIA-grid-azure.run --silent
드라이버가 정상적으로 설치되었는지 확인한 후 재시작 명령을 실행하십시오.
sudo reboot
4.5 드라이버 설치 확인
서버가 재시작되면 SSH를 통해 다시 로그인하고 다음 명령을 실행하십시오.
nvidia-smi -L > /dev/null && echo "success"
success가 출력되면 GPU 조회 명령이 정상적으로 실행된 것입니다. 확인에 실패하면 드라이버와 인스턴스의 호환성을 확인하고 설치 로그를 검토하십시오.
5외부 데이터 디스크 마운트
퍼블릭 클라우드 인스턴스에서 새로 연결한 빈 외부 데이터 디스크를 사용하는 경우, 다운로드 및 설치를 계속하기 전에 파티션을 생성하고 포맷한 후 마운트하십시오. 이후 DJI FlightHub 2 설치 패키지를 /fh_data 아래에서 다운로드, 업로드, 압축 해제 및 설치하고, 이후 작업에도 이 디렉터리를 사용하십시오.
데이터 손실 위험
이 섹션은 새로 추가한 빈 데이터 디스크에만 적용됩니다. 파티션 테이블을 생성하고 포맷하면 대상 디스크의 모든 데이터가 삭제됩니다. 명령을 실행하기 전에 실제 환경에 맞게 장치 자리표시자를 바꾸고, 대상 장치가 시스템 디스크가 아닌지 다시 확인하십시오. 디스크에 이미 데이터가 있으면 이 섹션의 파티션 생성 및 포맷 명령을 실행하지 마십시오.
5.1 외부 데이터 디스크 식별
먼저 디스크, 파티션, 파일 시스템 및 마운트 지점을 확인하십시오. 클라우드 콘솔에서 구성한 디스크 용량과 비교하여 새 데이터 디스크를 식별하고, 전체 장치 이름을 기록하십시오.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
sudo fdisk -l
AWS 및 Azure의 장치 이름에는 /dev/nvme1n1, /dev/xvdb 또는 /dev/sdc 등이 있을 수 있습니다. 실제 출력을 기준으로 확인하십시오. 다음 명령에서 /dev/<data_disk>는 전체 데이터 디스크를 가리키며, 시스템 디스크나 기존 파티션을 가리키지 않습니다.
5.2 fdisk로 파티션 생성
/dev/<data_disk>를 이전 단계에서 확인한 전체 디스크의 장치 이름으로 바꾼 후 fdisk를 실행하십시오.
sudo fdisk /dev/<data_disk>
대화형 인터페이스에서 다음 옵션을 순서대로 입력하십시오. 세 번의 Enter 입력은 각각 기본값을 적용하여 사용 가능한 공간 전체를 차지하는 파티션을 생성합니다.
g
n
Enter
Enter
Enter
w
g: 새 GPT 파티션 테이블을 생성합니다.n: 새 파티션을 생성하고 기본 파티션 번호, 시작 섹터 및 마지막 섹터를 적용합니다.w: 파티션 테이블을 기록하고 종료합니다.
lsblk를 다시 실행하여 새 파티션 이름을 확인하십시오. NVMe 디스크 파티션은 일반적으로 /dev/nvme1n1p1과 같은 이름을 사용하며, 다른 디스크는 /dev/xvdb1 또는 /dev/sdc1과 같은 이름을 사용할 수 있습니다. 이후 모든 명령에서 /dev/<data_partition>는 이 새 파티션을 가리킵니다.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
5.3 포맷 및 최초 마운트
파티션 이름이 올바른지 확인한 후 새 파티션을 ext4로 포맷하고 /fh_data에 마운트하십시오.
sudo mkfs.ext4 /dev/<data_partition>
sudo mkdir -p /fh_data
sudo mount /dev/<data_partition> /fh_data
5.4 부팅 시 자동 마운트 구성
새 파티션의 UUID를 조회하고 출력에서 UUID="..."의 값을 복사하십시오.
sudo blkid /dev/<data_partition>
/etc/fstab를 편집하십시오.
sudoedit /etc/fstab
파일 끝에 다음 줄을 추가하십시오. <uuid>를 방금 확보한 UUID 값으로 바꾸고 따옴표나 꺾쇠괄호는 넣지 마십시오.
UUID=<uuid> /fh_data ext4 defaults,nofail 0 2
5.5 마운트 확인 및 디렉터리 권한 설정
현재 마운트를 해제한 후 /etc/fstab에 따라 다시 마운트하여 구성이 올바른지 확인하십시오.
sudo umount /fh_data
sudo mount -a
findmnt /fh_data
findmnt에 /fh_data와 해당 데이터 디스크 파티션이 표시되면 마운트 구성이 정상적으로 작동하는 것입니다. 그런 다음 디렉터리 소유권을 현재 배포 계정에 할당하십시오.
sudo chown "$USER:$USER" /fh_data
이후 단계의 작업 디렉터리
다음 섹션부터는 설치 패키지를 항상 /fh_data에서 다운로드, 업로드, 압축 해제 및 설치하십시오. 이후 DJI FlightHub 2 사용 중 생성되는 데이터도 이 디렉터리에 연결된 데이터 디스크에 저장해야 합니다.
6설치 패키지 확보 및 압축 해제
환경 준비를 완료한 후 /fh_data로 이동하고, 다음 방법 중 하나를 사용하여 DJI FlightHub 2 설치 패키지를 이 디렉터리에 배치하십시오.
cd /fh_data
- 설치 패키지를 로컬 컴퓨터에 다운로드한 후 클라우드 서버의
/fh_data디렉터리에 업로드합니다. - 설치 패키지 다운로드 URL을 사용하여 클라우드 서버의
/fh_data디렉터리에 직접 다운로드합니다.
6.1 보조 스크립트로 다운로드 (선택 사항)
배포 보조 스크립트는 멀티스레드 다운로드를 지원합니다. 사용하려면 보조 스크립트가 /fh_data에 있는지 확인한 후 해당 디렉터리에서 다음 명령을 실행하십시오.
cd /fh_data
./install_helper.sh download "<package_url>" "<save_filename>"
<package_url>: 실제 설치 패키지 다운로드 URL입니다.<save_filename>: 서버에 설치 패키지를 저장할 때 사용할 파일 이름입니다.
각 자리표시자 전체를 실제 값으로 바꾸고 꺾쇠괄호는 넣지 마십시오. URL의 특수 문자나 파일 이름의 공백이 명령 실행에 영향을 주지 않도록 따옴표는 유지하십시오.
6.2 설치 패키지 압축 해제
다운로드 또는 업로드가 완료되면 자리표시자를 실제 파일 이름으로 바꾸고 /fh_data 디렉터리에서 다음 명령을 실행하십시오.
cd /fh_data
tar xf "<save_filename>"
7DJI FlightHub 2 설치
DJI FlightHub 2는 버전에 따라 설치 절차가 다를 수 있습니다. /fh_data 아래에서 압축을 해제한 설치 패키지 디렉터리에서 설치를 시작하고, 사용 중인 설치 패키지 버전에 해당하는 사용자 매뉴얼에 따라 설치를 완료하십시오. 이후 사용 중 생성되는 데이터도 /fh_data에 연결된 데이터 디스크에 저장해야 합니다.
현재 온라인 설치 절차는 "설치 마법사 실행"을 참조하십시오.