리눅스에서 알리바바 클라우드 마운트하기 — NetDrive 실험 빌드

4분 읽기 provider-guide alibaba-cloud linux
Alex
AlexPrincipal Engineer
NetDrive의 실험적 리눅스 빌드로 알리바바 클라우드 OSS 버킷을 우분투 마운트 지점으로 연결합니다. RAM 키, 엔드포인트 설정, 확인 절차까지 다룹니다.

우분투 서버에서 돌아가는 데이터 파이프라인이 알리바바 클라우드 OSS 버킷에 저장된 모델 체크포인트를 읽어야 하는데, 팀의 도구는 SDK 호출이 아니라 일반 파일시스템 경로를 기대한다. 체크포인트가 수백 기가바이트에 달하는 상황에서 버킷 전체를 먼저 내려받는 방식은 애초에 취지를 무너뜨린다. NetDrive의 리눅스 빌드는 해당 OSS 버킷을 일반 우분투 마운트 지점에 마운트하므로, 학습 스크립트의 open() 호출이 Windows나 macOS에 마운트된 버킷에서와 마찬가지로 오브젝트에 직접 도달한다.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

리눅스에서 알리바바 클라우드 OSS 마운트하기

NetDrive 는 Google Drive, OneDrive, S3, SFTP, WebDAV 등을 Windows 와 macOS 에서 일반 드라이브처럼 보이게 합니다 — 동기화도, 전체 다운로드도 없이.

  • OSS 버킷이 일반 우분투 마운트 지점으로 나타남
  • 파일을 요청 시점에 스트리밍 — 동기화 클라이언트나 버킷 전체 다운로드 불필요
  • S3, Wasabi, 텐센트 클라우드 등 20개 이상의 다른 제공업체와 함께 실행
WindowsmacOS
리눅스용 NetDrive 다운로드 →

무료 체험. 평생 라이선스와 구독 플랜 제공.

이 작업에서 마운트 지점이 SDK보다 나은 이유

알리바바 클라우드 자체 도구인 ossutil CLI나 OSS SDK는 스크립트가 처음부터 그것을 호출하도록 작성된 경우에는 잘 작동한다. 하지만 사용자가 직접 통제할 수 없는 대상이라면 사정이 다르다. torch.load()가 로컬 경로를 열기를 기대하는 학습 작업, 로그 내보내기 디렉터리 전체에 대한 grep, 또는 오브젝트 스토리지 API를 다루도록 다시 작성될 일이 없는 레거시 도구가 그런 경우다. NetDrive는 이러한 읽기 요청을 마운트 지점을 통해 버킷에 대응시키므로, 경로로 파일을 여는 어떤 것이든 수정 없이 작동한다.

알리바바 클라우드 지원은 텐센트 클라우드가 추가된 것과 같은 릴리스인 버전 3.17.799(2022년 11월)부터 NetDrive에 포함되어 있다. 현재 릴리스인 3.19.7은 다른 모든 플랫폼과 마찬가지로 리눅스 빌드에서도 권장된다.

NetDrive mounting a cloud storage account as a local drive — the same core interaction the Linux build provides at a mount point

우분투에 NetDrive 설치하기

NetDrive for Linux는 우분투의 패키지 저장소가 아니라 GitHub를 통해 배포된다.

  1. github.com/NetDrive/installer로 이동해 사용 중인 우분투 버전에 맞는 릴리스를 다운로드한다.
  2. 해당 저장소의 릴리스 노트를 따라, NetDrive가 무엇이든 마운트하기 전에 필요로 하는 드라이버 구성요소를 설치한다.
  3. NetDrive 패키지 자체를 설치한다.
  4. NetDrive를 실행한다. 첫 실행 시 드라이버 구성요소를 로드하며, 이 과정에서 sudo를 요구할 수 있다.

최소 지원 버전은 Ubuntu 16.04다. 업데이트가 apt upgrade가 아니라 GitHub 릴리스로 제공되므로, 이 점은 해당 서버를 다루는 운영 문서 어디에든 반드시 기록해 두어야 한다. 리눅스 빌드에는 NetDrive의 비교 페이지 전반에 적용되는 것과 동일한 실험적 라벨이 붙는다. Windows와 macOS가 테스트의 대부분을 차지하므로, 리눅스 OSS 마운트는 스스로 먼저 검증하지 않은 무인 프로덕션 작업보다는 개발용 서버, 학습 노드, CI 러너에 더 어울린다.

연결 전에 필요한 것

  • AccessKey ID와 AccessKey Secret — 알리바바 클라우드 콘솔에서 OSS 권한으로 범위를 제한한 RAM 사용자를 만들고, 계정 루트 키가 아니라 해당 사용자 아래에서 키 쌍을 생성한다.
  • OSS 엔드포인트oss-cn-hangzhou.aliyuncs.com이나 oss-us-west-1.aliyuncs.com처럼 버킷의 리전별 엔드포인트로, 버킷 Overview 페이지에서 확인할 수 있다.
  • 버킷 이름 — 마운트할 버킷의 정확한 이름.

단계별 안내: 우분투에서 알리바바 클라우드 연결하기

  1. NetDrive의 Drive Manager를 열고 + Add Drive를 클릭한다.
  2. 연결 유형 목록에서 Alibaba Cloud를 선택한다.
  3. AccessKey ID와 Secret, OSS 엔드포인트, 버킷 이름을 입력한다.
  4. 마운트 지점을 설정한다/mnt/oss-checkpoints와 같은 경로나 쓰기 권한이 있는 임의의 빈 디렉터리를 지정한다.
  5. Connect를 클릭한다. NetDrive가 인증을 수행하고 해당 경로에 버킷을 마운트한다.

의존하기 전에 마운트를 확인하기

GUI만 믿지 말고 터미널에서 실제로 마운트되었는지 확인한다.

# Confirm the mount is listed
mount | grep oss

# Or just try listing it
ls /mnt/oss-checkpoints

Confirming that a cloud drive connected successfully after mounting

목록이 처음에 비어 있다면 잠시 기다린다. 오브젝트 수가 많은 버킷은 루트를 채우는 데 몇 초 정도 걸릴 수 있다. 그래도 여전히 비어 있다면, 다른 무엇보다 먼저 AccessKey 쌍과 엔드포인트를 다시 확인한다. 리전 엔드포인트 불일치는 OSS 연결이 첫 시도에서 인증에 실패하는 가장 흔한 원인이다.

작업 실행 후 처리된 출력 오브젝트 묶음을 버킷에 다시 밀어 넣는 것처럼 쓰기 작업이 많은 작업의 경우, NetDrive는 해당 전송을 백그라운드에서 큐에 넣을 뿐 이를 트리거한 프로세스를 막지 않는다.

Background upload queue showing file transfer progress to a mounted cloud drive

리눅스 빌드에서 감안해야 할 점

  • 별도의 릴리스 주기 — 리눅스 드라이버 구성요소는 자체 일정으로 출시되므로, Windows나 macOS에 적용된 수정 사항이 같은 주에 리눅스까지 자동으로 반영되지는 않는다.
  • apt 연동 없음 — 설치와 업데이트는 우분투 기본 패키지 관리자가 아니라 GitHub 릴리스를 통해 이루어진다.
  • Windows와 macOS가 안정화된 대상이다 — NetDrive 공식 가이드는 이 두 플랫폼을 프로덕션에 적합한 것으로 취급하며, 리눅스는 실험적이라고 표시한다. 무인 프로덕션 작업에 리눅스 OSS 마운트를 투입하기 전에 직접 하드웨어에서 충분히 테스트해야 한다.

마무리

우분투에서 알리바바 클라우드 OSS를 마운트하면 apt가 아니라 GitHub에 있는 설치 프로그램을 통해, Windows와 macOS에서 NetDrive가 제공하는 것과 동일한 드라이브 방식의 접근을 리눅스 서버에서도 그대로 누릴 수 있다. 테스트가 더 많이 이루어진 플랫폼에서 같은 제공업체를 다루는 내용은 Windows에서 NetDrive로 알리바바 클라우드 마운트하기macOS에서 NetDrive로 알리바바 클라우드 마운트하기를 참고한다. 리눅스에 대한 더 폭넓은 내용은 우분투 리눅스에서의 NetDrive를 참고한다.

— Alex, NetDrive