macOSでMinIOをマウント—NetDriveでセルフホストS3ストレージにアクセス

読了目安 7 分 provider-guide minio macos
Steve
SteveSenior Engineer
NetDriveでMinIOバケットをmacOSドライブとしてマウントする方法。macOS 14 Sonoma以降対応、Apple Silicon対応。設定後はCLI不要。

チームは先四半期、ベアメタル上にMinIOクラスタを立ち上げました。DevOpsエンジニアはmc CLIやS3 SDKに慣れていますが、デザイナーやプロジェクトマネージャーはそうではありません。彼らはただassetsバケットからPSDファイルを開きたいだけで、そのためにITへチケットを出したくはないのです。NetDriveはMinIOバケットを直接macOSのFinderにマッピングするので、バケットはUSBドライブのように見え、誰の邪魔にもなりません。

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

Finderで MinIO バケットを閲覧—CLI は不要

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

  • 任意のMinIOインスタンスに対応: ローカルVM、ベアメタル、クラウドホスト型のいずれでも
  • NetDrive 3.14以降はApple Siliconネイティブ対応—Rosettaのオーバーヘッドなし
  • 非同期アップロードにより、転送がバックグラウンドで実行されている間もアプリの応答性を維持
WindowsmacOS
Download NetDrive for macOS →

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

接続前に必要なもの

MinIOはS3互換APIを公開しているため、NetDriveはカスタムエンドポイントを指定したAmazon S3プロバイダー経由でアクセスします。NetDriveを開く前に以下を用意してください。

  • アクセスキーとシークレットキー — MinIOコンソールのIdentity → Service Accountsから取得するか、MinIO管理者から提供してもらいます。
  • エンドポイントURL — MinIO APIポートのベースURL。ローカルサーバーの場合: http://192.168.1.50:9000。TLS終端されたデプロイの場合: https://minio.example.com
  • バケット名 — MinIOコンソールのBucketsタブで確認できます。
  • リージョン — MinIOインスタンスにカスタムリージョンが設定されていない限りus-east-1を使用します。MinIOはこの値を無視しますが、S3クライアントは送信する必要があります。

NetDrive 3.18以降はmacOS 14(Sonoma)以上が必要です。Apple SiliconのMacはバージョン3.14.309以降、互換レイヤーなしでNetDriveをネイティブ実行します。

複数のS3互換プロバイダーが設定されたmacOS版NetDriveドライブマネージャー

NetDriveをMinIOに接続する

NetDriveのメニューバーアイコン(画面上部のクラウドアイコン)をクリックし、Open Drive Managerを選択します。

  1. **+**をクリックして新しいドライブを追加します。
  2. プロバイダー一覧からAmazon S3を選択します—MinIOは同じAPIを使用します。
  3. EndpointフィールドにMinIOサーバーのベースURLを入力します: http://192.168.1.50:9000またはhttps://minio.example.com。ここにバケット名は含めないでください。
  4. MinIOのAccess KeySecret Keyを対応するフィールドに貼り付けます。
  5. Regionus-east-1に設定します(MinIOで明示的にリージョンを設定している場合はそのリージョン)。
  6. Connectをクリックします。NetDriveがMinIOサーバーに接続し、バケット一覧を取得します。
  7. マウントするバケットを選択し、OKをクリックします。
  8. ドライブに名前を付けます—例えばMinIO Assets—そして永続的にアクセスできるようAuto MountAt Loginに設定します。
  9. Mountをクリックします。

バケットはFinderのサイドバーのLocations配下に、AirDropやネットワーク共有と並んで表示されます。ファイルをドラッグして入れたり、ダブルクリックで開いたりすれば、あとはFinderが処理してくれます。

TLSとパススタイルアドレッシング

ほとんどのMinIOデプロイでつまずくポイントが2つあります。

自己署名証明書。 MinIOサーバーがmacOSに認識されない証明書を使用している場合(ホームラボや社内デプロイでよくあります)、接続はTLSハンドシェイクエラーで失敗します。最もクリーンな対処法は、内部CAをmacOSキーチェーンに追加することです。キーチェーンアクセスを開き、File → Import Itemsを選択して、CA証明書をインポートします。Always Trustとしてマークしてください。あるいは、純粋にローカルなトラフィックであれば、エンドポイントフィールドにhttp://を入力してHTTPに切り替えることもできます。

パススタイルバケットアドレッシング。 MinIOはデフォルトで、バーチャルホスト形式(http://bucket-name.server:9000)ではなくパススタイルアドレッシング(http://server:9000/bucket-name)を使用します。NetDriveのS3互換プロバイダーもデフォルトでパススタイルを使用するため、両者は追加設定なしで一致します。MinIOデプロイがバーチャルホスト形式に設定されている場合は、*.minio.example.comに一致するDNSワイルドカードがあることを確認し、エンドポイントを適宜更新してください。

macOS FinderでローカルドライブとしてMinIOバケットが表示されている様子

大容量ファイルとマルチパートアップロード

VMスナップショット、データベースダンプ、非圧縮動画など大容量オブジェクトを保持するバケットでは、次の2つの設定が信頼性を高めます。

非同期アップロードモード。 ドライブマネージャーでMinIOドライブを右クリックし、Properties → Upload Mode → Asyncを選択します。アプリケーションは書き込み成功の確認を即座に受け取り、NetDriveは実際のMinIOへのアップロードをバックグラウンドでキューに入れます。メニューバーアイコンにはリアルタイムの進捗が表示され、他の進行中のアップロードを中断することなく個別の転送をキャンセルできます。

マルチパートしきい値。 NetDriveはバージョン3.5.434で導入されたS3マルチパートアップロードを、5GBを超えるオブジェクトに使用します。20GBのデータベーススナップショットは単一の直列ストリームではなく並列チャンクとしてアップロードされるため、リモートのMinIOサーバーに一般的に接続するVPNやWANリンク上でより堅牢です。

まとめ

MinIOのS3互換APIにより、NetDriveを含むあらゆるS3対応ツールにとってドロップイン先として利用できます。マウントすれば、バケットは通常のフォルダのように振る舞います。Finderのプレビューは機能し、Spotlightはファイル名をインデックスでき、どのアプリケーションもストレージが別サーバー上にあることを知る必要はありません。

同じS3プロバイダーの手順は、他のS3互換サービスにも通用します。エンドポイントの違いについてはMount Wasabi on macOSを、チームがMinIOとホスト型AWSサービスを併用している場合はMount Amazon S3 on macOSを参照してください。

— Steve, NetDrive