Amazon S3をドライブとしてマウントしてクラウドファイル共有を行う方法
Amazon S3 では、データはデータ保存の基本単位である"バケット"に格納されます。AWS のウェブインターフェースを通じて、ユーザーがバケットにアクセスするための権限を設定できます。 Webブラウザを使わずにAWS S3にアクセスできるようにしたい場合は、Linux、Windows、macOSなどのオペレーティングシステムのインターフェースを使用できるように設定できます。
コマンドラインからAmazon S3クラウドストレージにアクセスできることは、いくつかのシナリオで便利です。これは、グラフィカルユーザーインターフェース(GUI)を持たないオペレーティングシステム、特にパブリッククラウド上で実行されている仮想マシン(VM)において、またファイルのコピーや作成などのタスクを自動化する際に特に役立ちます。 クラウドデータバックアップ.
この記事を読み進めれば、LinuxマシンではAmazon S3バケットをファイルシステムとしてマウントし、WindowsおよびmacOSマシンではローカルディレクトリへのドライブとしてマウントする方法がわかります。これにより、Webブラウザを使わずにAWS S3を利用できるようになります。
LinuxでS3バケットをファイルシステムとしてマウントする方法
AWSでは、サードパーティ製アプリケーションを使用してAmazon S3バケットを操作するためのAPIを提供しています。 Amazon API を使用すれば、S3 バケットと連携する独自のアプリケーションを作成することも可能です。S3FS を使用して S3 バケットを同じディレクトリにマウントすることで、Amazon S3 クラウドストレージへのファイルアップロードに同じパスを使用し、各コンピュータでも同じパスを提供できるアプリケーションを作成できます。このチュートリアルでは、S3FS を使用して Amazon S3 バケットを Linux ディレクトリにディスクドライブとしてマウントします。
S3FS これは、FUSE(ユーザー空間ファイルシステム)をベースにした特別なソリューションであり、S3バケットをLinuxオペレーティングシステムのディレクトリにマウントするために開発されました。これは、次のようにマウントするのと同様の仕組みです CIFSまたはNFS共有 ネットワークドライブとして。S3FSは無料のオープンソースソリューションです。
S3FSを使用してAmazon S3クラウドストレージをLinuxマシンにマウントすると、以下の操作が可能になります cp, mv, rm、およびその他のコマンドをLinuxコンソールで使用することで、マウントされたローカルドライブやネットワークドライブを操作する場合と同様に、ファイルを扱うことができます。
ここでは、Ubuntu 18.04 LTSを例に、Amazon S3バケットをLinuxのディレクトリにマウントしてみましょう。この手順では、Ubuntuの新規インストール環境を使用しています。新しいバージョンでも、同じ要領で操作できます。
- リポジトリツリーを更新します:
sudo apt-get update - Linux システムに既存の FUSE がインストールされている場合は、競合を避けるため、環境設定や fuse-f3fs のインストールを行う前に、その FUSE を削除してください。ここでは Ubuntu を新規インストールして使用しているため、
sudo apt-get remove fuseFUSE を削除するコマンド。 - インストール s3fs オンラインのソフトウェアリポジトリから:
sudo apt-get install s3fs - 次のものを生成する必要があります アクセスキーID そして 秘密アクセスキー アカウント(IAMユーザー)のAWSウェブインターフェースで。IAMユーザーにはS3へのフルアクセス権限が必要です。以下のリンクをご利用ください:
https://console.aws.amazon.com/iam/home?#/security_credentials注: Amazon S3 バケットは、権限が制限された一般ユーザーとしてマウントし、管理者権限を持つユーザーはキーの生成にのみ使用することをお勧めします。
- これらのキーは、AWS APIへのアクセスに必要です。AWSアクセスキーIDおよびAWSシークレットアクセスキーを生成するには、管理者権限が必要です。十分な権限をお持ちでない場合は、システム管理者にAWSキーの生成を依頼してください。管理者は、 ユーザー AWSコンソールの セキュリティ認証情報 をクリックしてタブを表示します アクセスキーを作成する ボタン。

- その アクセスキーを作成する ポップアップウィンドウをクリック .csvをダウンロード ファイル またはクリック 表示 ~の下で 秘密のアクセスキー 行名。AWSのウェブインターフェース上でシークレットアクセスキーを確認できるのは、この場合のみです。AWSアクセスキーIDとシークレットアクセスキーは、安全な場所に保管してください。

- アクセスキーが含まれているダウンロード済みのCSVファイルは、たとえばMicrosoft Office 365のExcelなどで開くことができます。

- Ubuntuのコンソールに戻り、S3FSを使用してS3バケットをマウントするために必要なAWSアクセスキーとシークレットアクセスキーを保存するための設定ファイルを作成します。そのためのコマンドは次のとおりです:
echo ACCESS_KEY:SECRET_ACCESS_KEY > PATH_TO_FILE変更 ACCESS_KEY AWSアクセスキーに、および SECRET_ACCESS_KEY 秘密アクセスキーを指定します。
この例では、AWSキーを含む設定ファイルをユーザーのホームディレクトリに保存します。キーを含むファイルは、権限のない者がアクセスできない安全な場所に保存するようにしてください。
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - キーがファイルに書き込まれたかどうかを確認してください:
cat ~/.passwd-s3fs - に適切なアクセス権を設定してください passwd-s3fs アクセスキーが保存されているファイル:
chmod 600 ~/.passwd-s3fs - S3バケットのマウントポイントとして使用するディレクトリを作成します。この例では、ホームディレクトリ内に"Amazon cloud drive S3"というディレクトリを作成します。
mkdir ~/s3-bucket既存の空のディレクトリを使用することもできます。
- このチュートリアルで使用されるバケットの名前は blog-bucket01. その text1.txt ファイルが当社の blog-bucket01 Linuxのディレクトリにバケットをマウントする前に、Amazon S3内で。ドット(.) バケット名に。

- バケットをマウントしましょう。以下のコマンドを使用して、バケット名、マウントポイントとして使用するディレクトリのパス、およびAWSアクセスキーとシークレットアクセスキーが記載されたファイルを設定してください。
s3fs bucket-name /path/to/mountpoint -o passwd_file=/path/passwd-s3fs私たちのケースでは、バケットをマウントするために使用するコマンドは次のとおりです:
s3fs blog-bucket01 ~/s3-bucket -o passwd_file=~/.passwd-s3fs - バケットがマウントされました。コマンドを実行して、このバケットが(blog-bucket-01)が取り付けられています s3-バケット ディレクトリ:
mount | grep bucketdf -h | grep bucket - バケットがマウントされたディレクトリの内容を確認してみましょう:
ls -al ~/s3-bucket下のスクリーンショットをご覧いただければわかるように、 test1.txt 以前にWebインターフェース経由でアップロードされたファイルが存在し、コンソール出力に表示されています。

- それでは、Linuxコンソールでハードディスクに新しいファイルを作成し、そのファイルをS3バケットにコピーしてみてください。
echo test2 > test2.txtcp test2.txt ~/s3-bucket/ - バケット内のファイルが表示されているAWSのウェブページを更新してください。新しい test2.txt Linuxコンソール上で、S3バケットがマウントされているディレクトリを使用して、ファイルをS3バケットにコピーします。

LinuxでS3バケットを自動マウントする方法
LinuxマシンでS3FSを使用してS3バケットを自動マウントするように設定するには、 passwd-s3fs ファイルの保存 /etc/passwd-s3fs(これが標準の保存場所です)。このファイルを作成した後、 -o パスワードファイル AWSキーを含むファイルの保存場所を手動で設定するためのキー。
- 作成する /etc/passwd-s3fs ファイル:
vim /etc/passwd-s3fs注: もし vim お使いのLinuxにテキストエディタがまだインストールされていない場合は、次のコマンドを実行してください。
apt-get install vimコマンド。 - 前述の手順に従って、AWSのアクセスキーとシークレットアクセスキーを入力してください。
AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP
別の方法として、キーを /etc/passwd-s3fs 次のコマンドでファイルを保存します:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP > /etc/passwd-s3fs - 必要な権限を /etc/passwd-s3fs ファイル:
chmod 640 /etc/passwd-s3fs - FUSEの設定ファイルを編集します:
vim /etc/fuse.conf - のコメントを外す user_allow_other Linuxマシン上で、他のユーザー(root以外のユーザー)によるファイル共有にAmazon S3を使用できるようにしたい場合は、この文字列を設定してください。

- 開く /etc/fstab テキストエディタを使って:
vim /etc/fstab - ファイルの最後に次の行を追加してください:
s3fs#blog-bucket01 /home/user1/s3-bucket/ fuse _netdev,allow_other,url=https://s3.amazonaws.com 0 0
- 編集した内容を保存する /etc/fstab ファイルを保存して、テキストエディタを終了します。
注: 所有者とグループを設定したい場合は、
-o uid=1001 -o gid=1001 -o mp_umask=002パラメータ(ユーザーID、グループID、およびumaskの数値は、設定に応じて変更してください)。キャッシュを有効にする場合は、-ouse_cache=/tmpパラメータ(代わりにカスタムディレクトリを設定する) /tmp/ (必要に応じて)。retries パラメータを使用すると、バケットが最初にマウントされなかった場合に、マウントを再試行する回数を設定できます。例えば、retries=55トライを記録した。 - Ubuntuマシンを再起動し、システムの起動時にS3バケットが自動的にマウントされるかどうかを確認します:
init 6 - Linuxマシンが起動するまでお待ちください。
- コマンドを実行して、AWS S3 バケットが自動的にマウントされたかどうかを確認できます。 s3-バケット Ubuntuの起動時のディレクトリ。
mount | grep bucket
df -h | grep bucket
ls -al /home/user1/s3-bucket/
今回のケースでは、Ubuntuの起動時にAmazonのクラウドストレージS3が指定されたLinuxディレクトリに自動的にマウントされました(下のスクリーンショットを参照)。設定は正常に適用されました。
S3FSは、以下の操作にも対応しています rsync およびファイルのキャッシュ機能により、トラフィックを削減します。
WindowsでAmazon S3クラウドストレージをマウントする
試してみてください wins3fsこれは、Amazon S3クラウドストレージをWindowsのネットワークドライブとしてマウントするための、S3FSと同等のソリューションです。しかし、このセクションでは、 rclone. Rclone は、Amazon S3 バケットなどのクラウドストレージをマウントおよび同期するために使用できるコマンドラインツールです。 Google Cloud Storage, Google ドライブ, Microsoft OneDrive、DropBoxなど。
Rclone は、公式ウェブサイトやGitHubからダウンロードできる無料のオープンソースツールです。必要なバージョンの rclone 以下のリンクのいずれかから:
公式サイトの直接リンクを使ってみましょう:
このワークフローは、新しいバージョンの rclone 解放された後。以下の操作はコマンドラインインターフェースで行われ、サーバーや仮想マシン上でGUIを使用せずにWindowsを利用しているユーザーにとって役立つ場合があります。
- 開く Windows PowerShell として 管理者.
- ダウンロードして保存するディレクトリを作成する rclone ファイル:
mkdir c:rclone - 作成されたディレクトリに移動します:
cd c:rclone - ダウンロード rclone 上記の直接リンクをご利用ください。別のバージョンをダウンロードする場合は、リンク内のバージョン番号を編集してください。
Invoke-WebRequest -Uri "https://downloads.rclone.org/v1.51.0/rclone-v1.51.0-windows-amd64.zip" -OutFile "c:rclonerclone.zip" - ダウンロードしたアーカイブからファイルを抽出します:
Expand-Archive -path 'c:rclonerclone.zip' -destinationpath '.' - ディレクトリの内容を確認してください:
dir - ファイルは次の場所に解凍されます C:rclonerclone-v1.51.0-windows-amd64 この場合。
注: この例では、 rclone ファイルを解凍した後のディレクトリは rclone-v1.51.0-windows-amd64。ただし、ドット(.) を含むディレクトリ名。ディレクトリ名を rclone-v1-51-win64例えば。
- 抽出されたファイルを C:rclone ディレクトリ名にドットが含まれないようにするには:
cp C:rclonerclone-v1.51.0-windows-amd64*.* C:rclone - 実行 rclone 設定モードでは:
.rclone.exe config - このコンフィギュレータは、コマンドラインモードでウィザードとして動作します。ウィザードの各ステップで、必要なパラメータを選択する必要があります。
- 種類
nそして、押してくださいEnterを選択するには 新しいリモートオプション.n/s/q>
n
- S3バケットの名前を入力してください:
名前:>
blog-bucket01 - 名前を入力したら、設定するクラウドストレージの種類を選択してください。入力してください
4Amazon S3 クラウドストレージを選択するには。ストレージ>
4 - S3プロバイダーを選択してください。入力してください
1Amazon Web Services S3 を選択するには。プロバイダー>
1 - 実行環境からAWSの認証情報を取得する(trueまたはfalse)。
1デフォルトでは (false) が使用されます。Enter何も入力せずにデフォルト値を使用する。env_auth>
1 - AWSアクセスキーを入力してください:
access_key_id>
AKIA4SK3HPQ9FLWO8AMB - 秘密のアクセスキーを入力してください:
- 接続する地域。 EU(アイルランド) eu-west-1 この例ではバケットにこれを使用しており、次のように入力する必要があります
6. - S3 APIのエンドポイント。AWSを使用する場合は、この欄を空白のままにすると、リージョンのデフォルトのエンドポイントが使用されます。押す
Enter.エンドポイント>
- ロケーションの制約は、地域に一致するように設定する必要があります。タイプ
6を選択するには EU(アイルランド)リージョン “eu-west-1”.location_constraint>
6 - バケットの作成やオブジェクトの保存・コピー時に使用される既定のACL。押す
Enterデフォルトのパラメータを使用するには。acl>
- 指定してください サーバーサイドの暗号化アルゴリズム このオブジェクトをS3に保存する際に使用されます。今回のケースでは暗号化は無効になっているため、1(なし)と入力する必要があります。
- KMS ID を使用する場合は、キーの ARN を指定する必要があります。暗号化は使用されないため、次のように入力してください
1(なし)。sse_kms_key_id>
1 - S3に新しいオブジェクトを保存する際に使用するストレージクラスを選択してください。文字列を入力してください。標準のストレージクラスオプション(
2)は、今回のケースに適しています。 - 詳細設定を編集しますか? (はい/いいえ)
はい/いいえ>
n - 設定と入力内容を確認してください
y(はい)すべてが正しい場合。 - 種類
q設定ウィザードを終了するには。e/n/d/r/c/s/q>
q - Rclone Amazon S3 クラウドストレージに対応するよう設定されました。Windows マシンで日付と時刻が正しく設定されていることを確認してください。設定が正しくない場合、S3 バケットを Windows マシンにネットワークドライブとしてマウントする際にエラーが発生する可能性があります: 時刻が正しく設定されていない可能性があります。リクエスト時刻と現在時刻の差が大きすぎます.
- 実行 rclone そのディレクトリ内で
rclone.exeがどこにあるかを確認し、AWSアカウントで利用可能なバケットを一覧表示します:.rclone.exe lsd blog-bucket01: - 入力できます
c:rclone~へPath環境変数。これにより、 rclone rclone.exe が保存されているディレクトリに移動することなく、任意のディレクトリから実行できます。 - 上のスクリーンショットにあるように、Amazon S3 クラウドストレージへのアクセスは正しく設定されており、バケットの一覧が表示されています( blog-bucket01 (このチュートリアルで使用されているもの)。
- インストール チョコレーティこれは、オンラインリポジトリからアプリケーションをインストールするために使用できるWindows用のパッケージマネージャーです:
Set-ExecutionPolicy Bypass -Scope Process -Force; `iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - WinFSP (Windows File System Proxy) は、Linux の FUSE に相当する Windows 向けツールであり、高速かつ安定しており、ユーザーモードのファイルシステムを作成することができます。
Chocolatey リポジトリから WinFSP をインストールします:
choco install winfsp -y - これで、Amazon S3 バケットを Windows システムにネットワークドライブとしてマウントできるようになりました。それでは、 blog-bucket01 として S:
.rclone mount blog-bucket01:blog-bucket01/ S: --vfs-cache-mode full最初の"blog-bucket"は、rclone設定ウィザードの最初のステップで入力したバケット名であり、コロン(:)の後に定義されている2つ目の"blog-bucket"は、AWSのWebインターフェースで設定されたAmazon S3バケット名です。

- 接続されているすべてのディスクとパーティションを表示する:
gdr -PSProvider 'FileSystem' - マップされたネットワークドライブの内容を確認してください:
ls S: - S3バケットがネットワークドライブ(S:)としてマウントされました。このバケットには3つのtxtファイルが保存されています。 blog-bucket01 別のWindows PowerShellインスタンスまたはWindowsコマンドラインを使用して、Amazon S3クラウドストレージに保存します。

お使いのWindowsにグラフィカルユーザーインターフェース(GUI)が搭載されている場合、そのインターフェースを使用してAmazon S3クラウドストレージへのファイルのダウンロードやアップロードを行うことができます。Windowsのインターフェース(GUIまたはコマンドラインインターフェース)を使用してファイルをコピーすると、データは瞬時に同期され、WindowsのインターフェースとAWSのWebインターフェースの両方に新しいファイルが表示されます。
もし押すと Ctrl+C または、CMDまたはPowerShellのウィンドウを閉じる rclone が実行中である場合(そのCMDまたはPowerShellインスタンスに"The service clone has been started"と表示されている場合)、Amazon S3バケットはマウントポイント(この場合はS:)から切断されます。
Windowsの起動時にS3バケットをマウントする方法を自動化する方法
Windowsの起動時にバケットが自動的にネットワークドライブとしてマウントされると便利です。WindowsでS3バケットを自動的にマウントするように設定する方法を見ていきましょう。
- 作成する rclone-S3.cmd ファイルは C:rclone ディレクトリ。
- その文字列を rclone-S3.cmd ファイル:
C:rclonerclone.exe mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- CMDファイルを保存してください。このCMDファイルを実行すれば、S3バケットを手動でマウントするためのコマンドを直接入力する手間が省けます。
- をコピーして rclone-S3.cmd すべてのユーザーのスタートアップフォルダにファイルを配置する:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
- 代わりに、次の場所へのショートカットを作成することもできます C:WindowsSystem32cmd.exe そして、ターゲットのプロパティにS3バケットをマウントするために必要な引数を設定します:
C:WindowsSystem32cmd.exe /k cd c:rclone & rclone mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- 次に、編集したショートカットをWindowsのスタートアップフォルダに追加します:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
一つだけ小さな欠点があります。それは、"rclone サービスが起動しましたWindowsマシンにS3バケットをネットワークドライブとしてマウントした後、""というメッセージが表示されます。Windowsのスケジュール機能や、Windowsサービスの作成・設定および自動起動の設定が可能な無料ツールであるNSSMを使用して、S3バケットの自動マウントを設定してみてください。
macOSでS3バケットをファイルシステムとしてマウントする
Linux と同様に、macOS でも Amazon S3 バケットをマウントできます。S3FS をインストールする必要があります。 macOS そして、権限とAmazonキーを設定します。
この例では、macOS 10.15 Catalinaを使用しています。この設定の原則は、より新しいバージョンでも適用できます。S3バケットの名前は blog-bucket01、macOSのユーザー名は ユーザー1、そしてバケットのマウントポイントとして使用されるディレクトリは /Volumes/s3-bucket/.
設定を順を追って見ていきましょう。
- インストール 自作これは、オンラインのソフトウェアリポジトリからアプリケーションをインストールするために使用されるmacOS用のパッケージマネージャーです:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - インストール osxfuse:
brew cask install osxfuse - システムを再起動します:
sudo shutdown -r now - S3FSのインストール:
brew install s3fs - S3FSのインストールが完了したら、Amazon S3バケットのアクセスキーとシークレットアクセスキーを設定してください。バケットを1回だけマウントする場合や、マウントする頻度が低い場合は、現在のセッション限定のキーを定義することができます:
export AWSACCESSKEYID=AKIA4SK3HPQ9FLWO8AMBexport AWSSECRETACCESSKEY=esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP - マウントされたバケットを定期的に使用する場合は、macOSのユーザーアカウントでS3FSが使用する設定ファイルにAWSキーを設定してください:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - 複数のバケットや、それらにアクセスするためのキーがある場合は、以下の形式で定義してください:
echo bucket-name:access-key:secret-key > ~/.passwd-s3fs - 所有者のみが読み取りおよび書き込みアクセスを行えるよう、適切な権限を設定してください:
chmod 600 ~/.passwd-s3fs - Amazon S3 バケットのマウントポイントとして使用するディレクトリを作成します:
sudo mkdir -p /Volumes/s3-bucket/ - 作成したディレクトリの所有者として、あなたのユーザーアカウントを設定する必要があります:
sudo chown user1 /Volumes/s3-bucket/

- S3FSを使用してバケットをマウントします:
s3fs blog-bucket01 /Volumes/s3-bucket/ - ダイアログウィンドウにmacOSのセキュリティ警告が表示されます。クリックしてください
Open System PreferencesS3FSアプリケーションおよび関連する接続を許可するため。

- その セキュリティ & プライバシー ウィンドウのロックアイコンをクリックして変更を有効にし、その後
Allowボタン。
- マウントコマンドをもう一度実行してください:
s3fs blog-bucket01 /Volumes/s3-bucket/ - 警告メッセージがポップアップ表示されます: ターミナルがネットワークボリューム上のファイルにアクセスしようとしています.
- バケットが装着されているか確認してください:
mount | grep bucket - バケツの中身を確認してください:
ls -al /Volumes/s3-bucket/ - バケットの作成に成功しました。バケット内のファイルの閲覧、コピー、削除が可能です。

以下の設定で、ユーザーログイン時にS3バケットをマウントするように設定できます。 launchd.
結論
主要なオペレーティングシステムでAmazon S3クラウドストレージをファイルシステムとしてマウントする方法を知っておけば、Amazon S3とのファイル共有がより便利になります。Amazon S3バケットは、LinuxやmacOSではS3FSを使用することで、また rclone またはWindowsではwins3fsを使用します。Amazon S3バケットをオペレーティングシステムのローカルディレクトリにマウントした後、データをS3バケットにコピーするプロセスを自動化すると、Webインターフェースを使用する場合に比べて便利です。
オペレーティングシステムのインターフェースを使用して、データをAmazon S3にコピーし、バックアップを作成することができます。また、AWS APIを利用してS3バケットにアクセスする専用のバックアップアプリケーションを試してみることもできます。 NAKIVO Backup & Replication これは、S3バケットをバックアップ先として統合的にサポートする、包括的なデータ保護ソリューションです。このソリューションを使用すると、VMware VM、Hyper-V VM、およびEC2インスタンス内のデータをAmazon S3にバックアップできます。















