LinuxでTencent Cloud COSをマウント — NetDriveの実験的Ubuntuビルド

読了目安 8 分 provider-guide tencent-cloud linux
Robin
RobinDeveloper Advocate
NetDriveの実験的Linuxビルドで、Tencent Cloud COSバケットをネイティブなUbuntuマウントポイントにマウント。SecretId設定、エンドポイント、確認手順。

あるショート動画プラットフォームのトランスコードパイプラインは、Tencent Cloud Object Storage(COS)から生のアップロードファイルを直接読み込む必要がある一群のUbuntuワーカー上で動いている——各ワーカースクリプトにSDKを組み込むのではなく、ffmpegジョブが開けるパスが一つあればいい。キューが1日に数千本のクリップを処理するようになると、各ジョブの前にソースファイルをコピーしてくるのはディスクと時間の無駄になる。NetDriveのLinuxビルドはCOSバケットを通常のUbuntuマウントポイントにマウントするので、ワーカーのファイル読み取りはバケットに直接届く——NetDriveがWindowsやmacOSユーザーにドライブレターで提供しているのと同じやり取りだ。

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

LinuxでTencent Cloud COSをマウント

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • COSバケットが通常のUbuntuマウントポイントとして現れる
  • ファイルはオンデマンドでストリーミングされる——ジョブ開始前にバケット全体をダウンロードする必要はない
  • 同じマシン上でS3、Alibaba Cloud、その他20以上のプロバイダーと並行して動作
WindowsmacOS
Linux版NetDriveをダウンロード →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

NetDriveのLinuxビルドにおけるTencent Cloud

NetDriveがTencent Cloudのサポートを追加したのはバージョン3.17.799(2022年11月)で、Alibaba Cloudが追加されたのと同じリリースだった。WindowsとmacOSではこのサポートは本番グレードとして扱われるが、Linuxでは特定のプロバイダーに対してではなく、Linuxビルド全体に付与されている**実験的(experimental)**ラベルの対象になる。現在の全デスクトッププラットフォーム共通のNetDriveリリースは3.19.7だ。

NetDrive for Linuxはaptやディストリビューションのパッケージマネージャーでは配布されておらず、github.com/NetDrive/installerのGitHubリリースとして提供され、対応する最小バージョンはUbuntu 16.04だ。

UbuntuへのNetDriveのインストール

  1. github.com/NetDrive/installerにアクセスし、自分のUbuntuバージョンに対応するリリースをダウンロードする。
  2. 同梱のリリースノートに従い、NetDriveがマウントを行う前に必要なドライバーコンポーネントをインストールする——この過程でsudoの入力を求められることがある。
  3. NetDriveパッケージをインストールする。
  4. ターミナルまたはデスクトップ環境のアプリケーションメニューからNetDriveを起動する。

LinuxビルドはWindowsやmacOSの更新とは別に、独自のリリーススケジュールで提供される。あるプラットフォームで今週リリースされた修正が、同じ週にLinuxビルドにも届くとは限らない——無人稼働のワーカーノードが特定のNetDriveの挙動に依存している場合は、知っておく価値がある。

Tencent COSの認証情報を集める

NetDriveを開く前に、これらをTencent Cloudコンソールからすべて集めておく。

  • SecretIdとSecretKeyCAM → API Keys(console.cloud.tencent.com/cam/capi)から取得。
  • バケット名<BucketName>-<AppId>の形式で表示される。例:raw-uploads-1250000001
  • リージョンとエンドポイント — 例えばap-guangzhouなら、エンドポイントはcos.ap-guangzhou.myqcloud.comになる。

手順:UbuntuでTencent Cloudに接続する

  1. NetDriveのDrive Managerを開き+ Add Driveをクリックする。
  2. 接続タイプの一覧からTencent Cloudを選択する。
  3. SecretIdとSecretKeyを入力し、エンドポイント(cos.<region>.myqcloud.com)と、AppIdサフィックスを含むバケット名をフルで入力する。
  4. マウントポイントを設定する——/mnt/cos-uploadsのようなパス、または自分のユーザーアカウントが書き込める空のディレクトリを指定する。
  5. Connectをクリックする。NetDriveがTencent COSに対して認証を行い、そのパスにバケットをマウントする。

クラウドストレージアカウントをローカルドライブとしてマウントするNetDrive——Linuxビルドがマウントポイントで提供するのと同じやり取り

依存する前にマウントを確認する

特に実験的ビルドでは、ファイルマネージャーだけを信用せず、ターミナルからマウントを確認する。

# Confirm the mount is listed
mount | grep cos

# Or just try listing it
ls /mnt/cos-uploads

NetDrive Linuxビルドでマウント後、クラウドドライブが正常に接続されたことを確認する

Connect後もマウントポイントが空のまま — ディレクトリが存在し、NetDriveを実行しているユーザーが書き込めることを確認する。書き込み不可または存在しないマウントポイントは、Linuxでの静かな失敗の最も一般的な原因だ。

初回の認証が失敗する — バケット名にAppIdサフィックスが含まれているか(raw-uploadsではなくraw-uploads-1250000001)、そしてエンドポイントのリージョンがコンソール上のバケットの実際のリージョンと一致しているかを再確認する。SecretIdとSecretKeyが正しくても、リージョンのミスマッチが接続拒否の最も一般的な原因だ。

オブジェクト数が多いバケットは初回の一覧表示が遅い — LinuxビルドはWindowsやmacOSと同じ方式でディレクトリ一覧をストリーミングするため、数万オブジェクトを持つバケットは初回のブラウズ時に表示まで少し時間がかかる。

書き込みの多いジョブ向けのバックグラウンドアップロード

各ジョブの後に処理済み出力をバケットに書き戻すトランスコードパイプラインの場合、NetDriveはそれらの書き込みをトリガーしたプロセスをブロックすることなく、バックグラウンドでキューに入れる。

マウントされたクラウドドライブへのファイル転送進捗を示すバックグラウンドアップロードキュー

これは、出力ファイルを引き渡した直後にキューの次の項目へすぐ進む必要があるワーカースクリプトにとって重要だ——アップロードの完了を待ってから続行する必要がない。

Linuxビルドで想定しておくべきこと

  • 別立てのリリースサイクル — Linuxドライバーは、WindowsやmacOSとは独立した独自のスケジュールで提供される。
  • パッケージマネージャー統合なし — インストールと更新はaptではなくGitHubリリースを通じて行う。
  • WindowsとmacOSが引き続き堅牢化の主対象 — 実験的ラベルが示す通り、無人稼働の本番ワーカー群をLinux上で運用する前に、自身のハードウェアで十分にテストすべき対象として扱う。

まとめ

UbuntuでTencent Cloud COSをマウントすれば、aptではなくGitHubで配布されるインストーラーを通じて、Linuxワーカー群にもNetDriveがWindowsやmacOSで提供しているのと同じドライブ形式のアクセスがもたらされる。より広くテストされたプラットフォームでの同じプロバイダーについてはMount Tencent Cloud on Windows with NetDriveを、Linux全体像についてはNetDrive on Ubuntu Linuxを、そしてこの同じLinuxビルド上での別のリージョン特化プロバイダーについてはMount Alibaba Cloud on Linux with NetDriveを参照。

— Robin, NetDrive