Amazon S3をドライブとしてマウントし、クラウドファイル共有を行う方法
Amazon S3 では、データはデータ保存の基本単位である”バケット”に格納されます。AWS の Web インターフェースを通じて、ユーザーがバケットにアクセスするための権限を設定できます。 Webブラウザを使わずにAWS S3にアクセスできるようにしたい場合は、Linux、Windows、macOSなどのオペレーティングシステムのインターフェースをユーザーが利用できるように設定できます。
コマンドラインからAmazon S3クラウドストレージにアクセスできることは、いくつかのシナリオで便利です。これは、グラフィカルユーザーインターフェース(GUI)を備えていないオペレーティングシステム、特にパブリッククラウド上で実行されている仮想マシン(VM)において、またファイルのコピーや作成などのタスクを自動化する際に特に役立ちます。 クラウドデータバックアップ.
この記事を読み進めて、Linux マシンでは Amazon S3 バケットをファイルシステムとして、Windows および macOS マシンではローカルディレクトリへのドライブとしてマウントし、ウェブブラウザを使わずに 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のWebインターフェース上でシークレットアクセスキーを確認できるのは、この場合のみです。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バケットにコピーしました。

LinuxでS3バケットを起動時に自動的にマウントする方法
LinuxマシンでS3FSを使用してS3バケットを自動マウントするように設定したい場合は、 passwd-s3fs ファイルの保存先 /etc/passwd-s3fs, これが標準の保存場所です。このファイルを作成した後は、 -o passwd_file 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 解放された後。以下の操作はコマンドラインインターフェースで行われ、サーバーやVM上で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 この例では、バケットに”is”が使用されており、次のように入力する必要があります。
6. - S3 API のエンドポイント。AWS を使用する場合は、この欄を空白のままにして、リージョンのデフォルトのエンドポイントを使用してください。押してください
Enter.エンドポイント>
- ロケーションの制約は、リージョンに合わせて設定する必要があります。タイプ
6を選択するには EU(アイルランド)リージョン “eu-west-1”.location_constraint>
6 - バケットの作成やオブジェクトの保存・コピー時に使用される、あらかじめ定義されたACLです。[Enter]キーを押してください。
Enterデフォルトのパラメータを使用するには。acl>
- 次の項目を指定してください。 サーバーサイドの暗号化アルゴリズム このオブジェクトをS3に保存する際に使用されます。今回のケースでは暗号化は無効になっているため、1(なし)と入力する必要があります。
- KMS ID を使用する場合は、キーの ARN を指定する必要があります。暗号化は使用されないため、次のように入力してください。
1(なし)。sse_kms_key_id>
1 - S3 に新しいオブジェクトを保存する際に使用するストレージクラスを選択してください。文字列を入力してください。標準のストレージクラスオプション(
2)は、今回のケースに適しています。 - 詳細設定を編集しますか? (y/n)
y/n>
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 ウェブインターフェースで設定された Amazon S3 バケット名です。

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

お使いの Windows にグラフィカルユーザーインターフェース(GUI)が搭載されている場合は、そのインターフェースを使用して、Amazon S3 クラウドストレージへのファイルのダウンロードやアップロードを行うことができます。Windows のインターフェース(グラフィカルユーザーインターフェースまたはコマンドラインインターフェース)を使用してファイルをコピーすると、データはすぐに同期され、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 と同様の方法で、Amazon S3 バケットを macOS にマウントできます。S3FS を macOS そして、権限とAmazonキーを設定します。
この例では、macOS 10.15 Catalinaを使用しています。この設定の原則は、より新しいバージョンでも適用できます。S3バケットの名前は blog-bucket01, macOSのユーザー名は user1、また、バケットのマウントポイントとして使用されるディレクトリは /Volumes/s3-bucket/.
設定を順を追って見ていきましょう。
-
<li>インストール 自作, これはmacOS用のパッケージマネージャーであり、オンラインのソフトウェアリポジトリからアプリケーションをインストールするために使用されます:
- インストール 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/ - バケットのマウントに成功しました。バケット内のファイルの閲覧、コピー、削除が可能です。

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















