今回はS3Filesを使ってEC2へマウントし、EC2からファイル操作できることを確認する手順をまとめます。
S3Filesは2026年4月7日にAWSから発表された新しい機能で、S3バケットをファイルシステムとして扱える点が特長です。
本記事では、事前準備からマウント、動作確認、永続化までをひと通り整理しました。

目次

  1. はじめに
  2. この記事でやりたいこと
  3. 前提条件
  4. 構成イメージ
  5. 今回の環境
  6. 手順
  7. 詰まったポイント / ハマりどころ
  8. 永続化したい場合
  9. 使ってみた感想
  10. まとめ

1. はじめに

今回はS3Filesを使ってEC2へマウントし、S3をEC2上から扱えるようにする手順を確認します。

2. この記事でやりたいこと

  • EC2にS3Filesをマウントする
  • EC2からファイル操作できることを確認する
  • 最後に永続化の方法も確認する

3. 前提条件

今回の手順を実施する前に、以下の前提を満たしていることを確認します。

  • Linux系EC2インスタンスを利用している
  • efs-utilsがインストール済み、またはインストール可能である
  • 対象バケットが作成済みである
  • 対象バケットでバージョニングが有効になっている
  • マウントポイント用ディレクトリを作成可能である
  • マウントターゲット用セキュリティグループが作成済みである
  • EC2と同じVPCにファイルシステムを作成済みであること

4. 構成イメージ

マウントターゲット用のセキュリティグループを作成し、インバウンドルールでポート:2049を設定してEC2からの通信を許可します。 そのうえで、S3Filesでバケットをマウントする構成です。

構成イメージ

5. 今回の環境

今回使用する環境情報です。

OS Amazon Linux 2023
EC2タイプ t3.small
リージョン ap-northeast-1
S3バケット名 s3files-test-20260415
マウント先 /mnt/s3/fs1

6. 手順

①ファイルシステムを作成する

EC2を作成する前に、事前にファイルシステムを作成します。ファイルシステムはEC2と同じVPCに作成します。

ファイルシステム作成手順
  • 事前に作成してあるバケットの「ファイルシステム」タブから「ファイルシステムを作成」をクリック
    ファイルシステム作成画面1
  • VPCはEC2を作成するときと同じものを選択し、「ファイルシステムを作成」をクリック
    ファイルシステム作成画面2

②EC2を作成する

S3Filesを操作するEC2を作成します。

EC2作成手順
  • Amazon Linux 2023を選択
    EC2作成画面1
  • 「S3 ファイル」→「共有ファイルシステムを追加」の順にクリック
    EC2作成画面2
  • 先ほど作成した「ファイルシステムID」を入力後、「Save」をクリックし、「インスタンスを起動」をクリック
    EC2作成画面3

③マウントターゲット用セキュリティグループを作成する

マウントターゲット用のセキュリティグループを作成します。

セキュリティグループ作成手順
  • インバウンドルールにタイプ:NFS、プロトコル:TCP、ポート:2049を追加し、先ほど作成したEC2のセキュリティグループからの通信を許可する

④マウントターゲット用セキュリティグループに変更する

マウントターゲット用のセキュリティグループを、デフォルトのセキュリティグループから③で作成したものに変更します。

セキュリティグループ変更手順
  • 変更したいマウントターゲットを選択し、「編集」をクリック
    マウントターゲット編集画面1
  • ③で作成したセキュリティグループを選択し、「変更を保存」をクリック
    マウントターゲット編集画面2

⑤マウントポイントを作成する

次に、EC2上でマウント先ディレクトリを作成します。

マウントポイント作成手順
# mkdir -p /mnt/s3/fs1
# ls /mnt/s3/fs1

⑥efs-utilsをインストールする

必要パッケージが未導入の場合は、efs-utilsをインストールします。

efs-utilsインストール手順
# curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sh -s -- --install-launch-wizard
# rpm -q amazon-efs-utils
amazon-efs-utils-3.0.1-1.amzn2023.x86_64

⑦マウントを実行する

準備ができたら、実際にマウントを実行します。

マウント実行手順
# sudo mount -t s3files fs-0d55c3882e11f34c9:/ /mnt/s3/fs1

⑧マウント状態を確認する

マウント後は、各種コマンドで状態を確認します。

マウント確認手順
# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           957M     0  957M   0% /dev/shm
tmpfs           383M  500K  383M   1% /run
/dev/nvme0n1p1  8.0G  1.8G  6.2G  23% /
tmpfs           957M     0  957M   0% /tmp
/dev/nvme0n1p128 10M  1.3M  8.7M  13% /boot/efi
tmpfs           192M     0  192M   0% /run/user/0
127.0.0.1:/     8.0E     0  8.0E   0% /mnt/s3/fs1

# mount | grep '/mnt/s3/fs1'
127.0.0.1:/ on /mnt/s3/fs1 type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,port=20641,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)

# ls -la /mnt/s3/fs1
total 20
drwxr-xr-x. 3 root root 10240 Apr 21 05:31 .
drwxr-xr-x. 3 root root    17 Apr 17 01:42 ..
drwx------. 2 root root 10240 Apr 15 04:58 .s3files-lost+found-fs-0d55c3882e11f34c9
-rw-r--r--. 1 root root   531 Apr 21 05:32 os-info
-rw-r--r--. 1 root root     0 Apr 15 07:13 test.txt
-rw-r--r--. 1 root root    20 Apr 21 01:53 test1.txt

⑨読み書きテストを行う

最後に、テストファイルを作成してS3側へ反映されるかを確認します。

テストファイル作成手順
# cat /etc/os-release > /mnt/s3/fs1/os-info
# cat /mnt/s3/fs1/os-info
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.11.20260413"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
VENDOR_NAME="AWS"
VENDOR_URL="https://aws.amazon.com/"
SUPPORT_END="2029-06-30"

S3にテストファイルが作成されたことを確認します。
S3への反映確認画面

7. 初回マウント時のエラー対策

マウント時に以下のエラーが出る場合

# mount -t s3files fs-0d55c3882e11f34c9:/ /mnt/s3/fs1
Warning: config file does not have stunnel_debug_enabled item in section mount.. You should be able to find a new config file in the same folder as current config file /etc/amazon/efs/s3files-utils.conf. Consider update the new config file to latest config file. Use the default value [stunnel_debug_enabled = False].

設定ファイルを編集し、[mount] セクションに以下の設定を追加することで回避できる場合があります。

# vi /etc/amazon/efs/s3files-utils.conf
# diff /etc/amazon/efs/s3files-utils.conf /etc/amazon/efs/s3files-utils.conf.bak
56d55
< #stunnel_debug_enabled = False

8. 永続化したい場合

再起動後も自動でマウントしたい場合は、/etc/fstab に設定を追加します。

# echo 'fs-0d55c3882e11f34c9:/ /mnt/s3/fs1 s3files _netdev 0 0' | sudo tee -a /etc/fstab
# cat /etc/fstab
#
UUID=1bc1d419-553e-4a88-91ca-fa9f67d175e5 / xfs defaults,noatime 1 1
UUID=BAA9-6338 /boot/efi vfat defaults,noatime,uid=0,gid=0,umask=0077,shortname=winnt,x-systemd.automount 0 2
fs-0d55c3882e11f34c9:/ /mnt/s3/fs1 s3files _netdev 0 0
#

設定追加後は、再起動前に構文チェックを兼ねてテストしておくと安全です。

# sudo mount -a
# df -h

再起動後は、以下のようなコマンドでマウント状態を確認します。

# df -h
# mount | grep '/mnt/s3/fs1'
# ls -la /mnt/s3/fs1

9. 使ってみた感想

S3をローカルファイルシステムのような感覚で扱えるのは便利で、EC2上のアプリケーションからファイルパスベースで操作できるため用途によっては実装をシンプルにできますが、トラブルに備えて事前にマウント確認や永続化設定を検証しておくのがよさそうです。

10. まとめ

S3Filesを使うとEC2からS3を扱いやすくなります。 事前にセキュリティグループやマウントポイント、必要パッケージを整理しておくことで、導入をスムーズに進めやすくなります。 今回の流れをベースに、必要に応じて永続化や運用時の監視設定も追加していくとよいと思います。

11. 参考サイト